Update app.py
Browse files
app.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
|
| 2 |
import streamlit as st
|
| 3 |
import pandas as pd
|
|
|
|
| 4 |
from prophet import Prophet
|
| 5 |
import yfinance as yf
|
| 6 |
from sklearn.metrics import mean_absolute_error, mean_squared_error
|
|
@@ -61,22 +62,27 @@ def main():
|
|
| 61 |
|
| 62 |
st.subheader('Forecast Data')
|
| 63 |
st.write('The table below shows the forecasted stock prices along with the lower and upper bounds of the predictions.')
|
| 64 |
-
st.write(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].
|
| 65 |
|
| 66 |
st.subheader('Forecast Plot')
|
| 67 |
st.write('The plot below visualizes the predicted stock prices with their confidence intervals.')
|
| 68 |
fig1 = plot_plotly(model, forecast)
|
| 69 |
-
fig1.update_traces(marker=dict(color='red'), line=dict(color='
|
| 70 |
st.plotly_chart(fig1)
|
| 71 |
|
| 72 |
st.subheader('Forecast Components')
|
| 73 |
st.write('This plot breaks down the forecast into trend, weekly, and yearly components.')
|
| 74 |
fig2 = plot_components_plotly(model, forecast)
|
| 75 |
-
fig2.update_traces(line=dict(color='
|
| 76 |
st.plotly_chart(fig2)
|
| 77 |
|
| 78 |
st.subheader('Performance Metrics')
|
| 79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
actual = df['y']
|
| 81 |
predicted = forecast['yhat'][:len(df)]
|
| 82 |
metrics = calculate_performance_metrics(actual, predicted)
|
|
|
|
| 1 |
|
| 2 |
import streamlit as st
|
| 3 |
import pandas as pd
|
| 4 |
+
import numpy as np
|
| 5 |
from prophet import Prophet
|
| 6 |
import yfinance as yf
|
| 7 |
from sklearn.metrics import mean_absolute_error, mean_squared_error
|
|
|
|
| 62 |
|
| 63 |
st.subheader('Forecast Data')
|
| 64 |
st.write('The table below shows the forecasted stock prices along with the lower and upper bounds of the predictions.')
|
| 65 |
+
st.write(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].head())
|
| 66 |
|
| 67 |
st.subheader('Forecast Plot')
|
| 68 |
st.write('The plot below visualizes the predicted stock prices with their confidence intervals.')
|
| 69 |
fig1 = plot_plotly(model, forecast)
|
| 70 |
+
fig1.update_traces(marker=dict(color='red'), line=dict(color='white'))
|
| 71 |
st.plotly_chart(fig1)
|
| 72 |
|
| 73 |
st.subheader('Forecast Components')
|
| 74 |
st.write('This plot breaks down the forecast into trend, weekly, and yearly components.')
|
| 75 |
fig2 = plot_components_plotly(model, forecast)
|
| 76 |
+
fig2.update_traces(line=dict(color='white'))
|
| 77 |
st.plotly_chart(fig2)
|
| 78 |
|
| 79 |
st.subheader('Performance Metrics')
|
| 80 |
+
st.write("""
|
| 81 |
+
The metrics below provide a quantitative measure of the model’s accuracy:
|
| 82 |
+
- **Mean Absolute Error (MAE)**: A lower value indicates better performance.
|
| 83 |
+
- **Mean Squared Error (MSE)**: A lower value indicates better performance, and it penalizes larger errors more than MAE.
|
| 84 |
+
- **Root Mean Squared Error (RMSE)**: A lower value indicates better performance, similar to MSE, but in the same units as the target variable.
|
| 85 |
+
""")
|
| 86 |
actual = df['y']
|
| 87 |
predicted = forecast['yhat'][:len(df)]
|
| 88 |
metrics = calculate_performance_metrics(actual, predicted)
|