import streamlit as st import pandas as pd import os from model import load_ILINetDataset, preprocess_data, train_val_split, scale_train, train, predict, save_model, load_model, inverse_scale_predictions, plot_results, compute_mape st.title('Exponential Smoothing on ILINetDataset') if st.button(label='Get result chart'): path = f'./models' model_name = 'ExponentialSmoothing.pkl' if not os.path.exists(path=path): os.makedirs(path) if not model_name in os.listdir(path=path): dataset = load_ILINetDataset() prep_data = preprocess_data(dataset) train_ili, val_ili = train_val_split(prep_data) scaled_train_ili, scaler = scale_train(train_ili=train_ili) model = train(scaled_train_ili) save_model(model=model, path=path) else: model = load_model(path=os.path.join(path, model_name)) preds = predict(model=model, val_ili=val_ili) unscaled_preds = inverse_scale_predictions(preds, scaler) fig = plot_results(train_ili=train_ili, val_ili=val_ili, preds=unscaled_preds) st.pyplot(fig=fig) # figura contenente il grafico st.metric(label='MAPE', value='{:.2f}%'.format(compute_mape(preds=unscaled_preds, val=val_ili))) # mape # TODO add others metrics