Untitled
plain_text
a month ago
1.0 kB
5
Indexable
Never
def exp_smoothing_cross_validation(y,folds=12,pred_window=6): err_contatiner = pd.DataFrame(columns=['MAPE', 'RMSE', 'ME', 'MAE', 'MSE', 'SSE', 'SMAPE',"AIC"]) for i in range(len(y)-pred_window - folds+1,len(y)-pred_window+1): # splitting the data into train and test train = y.iloc[:i] test = y.iloc[i:i+pred_window] #model fitting model = ExponentialSmoothing(train, trend='add',freq="6M") model_fit = model.fit(smoothing_level=0.05) # forecasting fold_forecast = model_fit.forecast(pred_window) ## calculating errors and AIC of each fold fold_errors = utility.forecast_perf_metrics(test,fold_forecast) fold_errors = pd.DataFrame.from_dict(fold_errors,orient="index").T fold_errors["AIC"] = model_fit.aic err_contatiner = pd.concat([err_contatiner,fold_errors],axis=0,ignore_index=True) return err_contatiner.mean() err = exp_smoothing_cross_validation(otc_ppt_df["SEVERITY_ARC"].dropna()) err