saifarko commited on
Commit
73fd6db
·
verified ·
1 Parent(s): 003cdce

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -0
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ import numpy as np
4
+ from statsmodels.tsa.arima.model import ARIMA
5
+ from sklearn.metrics import mean_squared_error, mean_absolute_percentage_error
6
+ import plotly.graph_objects as go
7
+
8
+ def forecast_stock(days_ahead):
9
+ df = pd.read_excel("Microsoft_stock_data.xlsx")
10
+ df['Date'] = pd.to_datetime(df['Date'])
11
+ df = df.sort_values('Date')
12
+
13
+ data = df['Close'].values
14
+
15
+ model = ARIMA(data, order=(1,1,1))
16
+ fitted = model.fit()
17
+
18
+
19
+ forecast = fitted.forecast(steps=int(days_ahead))
20
+
21
+
22
+ fig = go.Figure()
23
+ fig.add_trace(go.Scatter(x=df['Date'].tail(100), y=data[-100:], name='Historical'))
24
+ future_dates = pd.date_range(start=df['Date'].iloc[-1], periods=int(days_ahead)+1)[1:]
25
+ fig.add_trace(go.Scatter(x=future_dates, y=forecast, name='Forecast'))
26
+ fig.update_layout(title='Stock Price Forecast', xaxis_title='Date', yaxis_title='Price')
27
+
28
+ return fig
29
+
30
+ with gr.Blocks() as demo:
31
+ gr.Markdown("# 📈 Time Series Forecasting: ARIMA vs LSTM")
32
+ gr.Markdown("**Microsoft Stock Price Forecasting** - This app demonstrates ARIMA model forecasting.")
33
+
34
+ days = gr.Slider(1, 90, value=30, label="Days to Forecast")
35
+ plot = gr.Plot()
36
+
37
+ demo.load(forecast_stock, days, plot)
38
+ days.change(forecast_stock, days, plot)
39
+
40
+ demo.launch()