IvanStudent commited on
Commit
6458b87
·
1 Parent(s): 1217aab

Guardar mis cambios locales

Browse files
Files changed (1) hide show
  1. app.py +0 -52
app.py CHANGED
@@ -49,55 +49,3 @@ def main():
49
 
50
  if __name__ == "__main__":
51
  main()
52
- =======
53
- import streamlit as st
54
- import pandas as pd
55
- import matplotlib.pyplot as plt
56
- from statsmodels.tsa.arima.model import ARIMA
57
- import pickle
58
-
59
- def main():
60
- st.title("MLCast v1.1 - Intelligent Sales Forecasting System")
61
- uploaded_file = st.file_uploader("Upload your store data here (must contain Date and Sales)", type="csv")
62
-
63
- if uploaded_file is not None:
64
- df = pd.read_csv(uploaded_file)
65
- if 'Date' in df.columns and 'Sale' in df.columns:
66
- st.success("File uploaded successfully!")
67
- st.write(df.head())
68
- df['Date'] = pd.to_datetime(df['Date'])
69
- df_arima = df.rename(columns={'Date': 'ds', 'Sale': 'y'})
70
-
71
- with open('arima_sales_model.pkl', 'rb') as f:
72
- arima_model = pickle.load(f)
73
-
74
- forecast_period = 30
75
- forecast = arima_model.get_forecast(steps=forecast_period)
76
- forecast_index = pd.date_range(df['Date'].max(), periods=forecast_period + 1, freq='D')[1:]
77
- forecast_df = pd.DataFrame({'Date': forecast_index, 'Sales Forecast': forecast.predicted_mean})
78
-
79
- fig, ax = plt.subplots(figsize=(10, 6))
80
- ax.plot(df['Date'], df['Sale'], label='Historical Sales', color='blue')
81
- ax.plot(forecast_df['Date'], forecast_df['Sales Forecast'], label='Sales Forecast', color='red', linestyle='--')
82
- ax.set_xlabel('Date')
83
- ax.set_ylabel('Sales')
84
- ax.set_title('Sales Forecasting with ARIMA')
85
- ax.legend()
86
- st.pyplot(fig)
87
-
88
- st.sidebar.title("Adjust Forecast Range")
89
- start_date = st.sidebar.date_input('Start Date', df['Date'].min())
90
- end_date = st.sidebar.date_input('End Date', df['Date'].max())
91
- filtered_df = df[(df['Date'] >= pd.to_datetime(start_date)) & (df['Date'] <= pd.to_datetime(end_date))]
92
- fig_filtered, ax_filtered = plt.subplots(figsize=(10, 6))
93
- ax_filtered.plot(filtered_df['Date'], filtered_df['Sale'], label=f'Sales from {start_date} to {end_date}')
94
- ax_filtered.set_xlabel('Date')
95
- ax_filtered.set_ylabel('Sale')
96
- ax_filtered.set_title(f'Sales Forecasting from {start_date} to {end_date}')
97
- ax_filtered.legend()
98
- st.pyplot(fig_filtered)
99
- else:
100
- st.error("The uploaded file must contain at least 'Date' and 'Sales' columns.")
101
-
102
- if __name__ == "__main__":
103
- main()
 
49
 
50
  if __name__ == "__main__":
51
  main()