rmse = np.sqrt(metrics.mean_squared_error(test, fcst_pred_v))
    df3 = {'smoothing parameter':i, 'RMSE': rmse}
    temp_df = temp_df.append(df3, ignore_index=True)
temp_df.sort_values(by=['RMSE']).head(3) #anche questo è un risultato strano

#using values from grid search to fit the model
fitSES = SimpleExpSmoothing(np.asarray(train)).fit( smoothing_level = 0, optimized= False)
fcst_gs_pred = fitSES.forecast(3000)
timeseries_evaluation_metrics_func(test,fcst_gs_pred)

#Automated smoothing_level
fitSESauto = SimpleExpSmoothing(np.asarray(train)).fit( optimized= True, use_brute = True)
fcst_auto_pred = fitSESauto.forecast(3000)
timeseries_evaluation_metrics_func(test,fcst_auto_pred)

fitSESauto.summary()

#plotting...non fatto per ora
df_fcst_gs_pred = pd.DataFrame(fcst_gs_pred, columns=['Close_grid_Search'])
df_fcst_gs_pred["new_index"] = range(1229    , 1259)
df_fcst_gs_pred = df_fcst_gs_pred.set_index("new_index")

df_fcst_auto_pred = pd.DataFrame(fcst_auto_pred, columns=['Close_auto_search'])
df_fcst_auto_pred["new_index"] = range(1229    , 1259)
df_fcst_auto_pred = df_fcst_auto_pred.set_index("new_index")

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams["figure.figsize"] = [16,9]
plt.plot( train, label='Train')
plt.plot(test, label='Test')
示例#2
0
    66.834358381339, 40.8711884667851, 51.8285357927739, 57.4919099342262,
    65.2514698518726, 43.0612082202828, 54.7607571288007, 59.8344749355003,
    73.2570274672009, 47.6966237298, 61.0977680206996, 66.0557612187001
]

###
mdlFit = SimpleExpSmoothing(oildata, initialization_method="estimated").fit()
simple_res = mdlFit.forecast(steps=5)
print(simple_res.tolist())

###
mdlFit = Holt(air, initialization_method="estimated").fit()
holt_res = mdlFit.forecast(steps=5)
print(holt_res.tolist())

###
mdlFit = Holt(air, initialization_method="estimated", damped_trend=True).fit()
holt_res_damp = mdlFit.forecast(steps=5)
print(mdlFit.summary())
print(holt_res_damp.tolist())

###
mdlFit = ExponentialSmoothing(aust,
                              initialization_method="estimated",
                              seasonal_periods=4,
                              seasonal="add",
                              trend="add").fit()
hw_res = mdlFit.forecast(steps=5)
print(mdlFit.summary())
print(hw_res)