我希望在11月份的整个月中以10分钟的间隔创建一个带有时间序列数据点的CSV,我希望以此来训练FB Prophet模型。该数据每周一次是非常季节性的,并且星期六和星期日的值始终低于工作日的值。这就是带有fbprophet
y_hat
值的数据(总是非负数)的样子:
这是我要获取模型的步骤:
df = pd.read_csv('./input.csv');
m = Prophet(weekly_seasonality=False)
m.add_seasonality('weekly', period=7, fourier_order=3)
m.fit(df)
future = m.make_future_dataframe(periods=10)
forecast = m.predict(future)
fig = m.plot(forecast).savefig('out.png')
但是,生成的10周期预测看起来很糟糕,尤其是考虑到训练数据中存在负值时:
我尝试调整period=
和fourier_order=
的值以及各种changepoint_prior_scale=
的值,但是预测值远不及训练数据。
使用Prophet(changepoint_prior_scale=0.50)
:
使用m.add_seasonality('weekly', period=5, fourier_order=5)
:
为了获得与受训数据没有太大不同的预测,我接下来应该开始尝试什么?我认为该问题是基于以下事实:我的数据点间隔为10分钟。因此,当我尝试将周期增加到每周7天的10分钟周期(1,008)时,我得到以下信息:
我正在寻找有关如何使用Prophet来更准确地预测此数据的更多信息,但是我认为在训练模型方面缺少一些信息。任何帮助将不胜感激!