final-project / prediction.py
mukhlishr's picture
Update prediction.py
acd7143
raw
history blame
No virus
1.63 kB
import streamlit as st
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from PIL import Image
import pickle
from statsmodels.tsa.arima.model import ARIMA
from datetime import datetime
st.set_page_config(
page_title = 'Forecasting',
layout = 'wide',
initial_sidebar_state='expanded'
)
def run():
# Membuat file
st.title( 'Time Series Forecasting')
# Membuat sub header
st.subheader('Best seller product')
# Menambahkan gambar
image = Image.open('ts.jpg')
st.image(image, caption='Time Series Analysis')
if __name__ == '__main__':
run()
# Load All Files
with open('mod_train.pkl', 'rb') as file_1:
mod_train = pickle.load(file_1)
# bikin fungsi
def run():
with st.form(key='forecast quantity'):
year = st.selectbox('Year', (2023,2024), index=0)
month = st.selectbox('Month', (1,2,3,4,5,6,7,8,9,10,11,12), index=3)
st.markdown('---')
submitted = st.form_submit_button('Predict')
data_inf = {
'year' : year,
'month': month
}
data_inf = pd.DataFrame([data_inf])
data_inf['date'] = data_inf.apply(lambda x: datetime(x[0], x[1], 1), axis=1)
data_inf.drop(['year','month'], axis=1, inplace=True)
data_inf=data_inf.set_index('date')
st.dataframe(data_inf)
if submitted:
#Predict Inference data
y_pred_test=mod_train.predict(start=data_inf.index[0],end=data_inf.index[-1])
y_pred_test=pd.DataFrame(y_pred_test)
y_pred_test.columns=['quantity_predict']
st.write('# Forcasted quantity for that month is : ', y_pred_test)
if __name__ == '__main__':
run()