我尝试使用 Holt-Winters 算法预测时间序列。问题是,输出完全错误(此设置中的直线)。
我使用 statsmodels 实现,但不确定“seasonal_periods”参数。起初我尝试了 60*24,因为数据的频率为一分钟,季节性为一天。但是几分钟后我停止了算法,因为我认为运行时间不应该那么长。将参数设置为 365(每年的天数),我得到下图所示的结果。即使使用这个较慢的值,运行时间也是 5-10 分钟。这对于 Holt-Winters 算法是否常见?
这是我的代码:
model = ExponentialSmoothing(train_forecast_data_df, seasonal='mul', seasonal_periods=365).fit()
pred = model.predict(start=test_forecast_data_df.index.min(), end=test_forecast_data_df.index.max())
fig, ax = plt.subplots(1, 1, figsize=(16, 4))
ax.plot(train_forecast_data_df.index, train_forecast_data_df, label='Train')
ax.plot(pred.index, pred, label='Holt-Winters', alpha=0.7, c='r', linestyle='-')
ax.plot(test_forecast_data_df.index, test_forecast_data_df, label='Test', alpha=0.7)
ax.legend(loc='best')
我希望有一个人可以帮助我。