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