在python 3 Fbprophet 0.6中,我注意到Fbprohet中有一个奇怪的事实或bug(?)。我注意到,如果上限值远大于趋势值,它将只是将所有预测值归零:
第一个图形的部分数据正常且有效:
ds y cap
147 2020-04-27 994171.0 1299997.0
148 2020-04-28 994171.0 1299997.0
149 2020-04-29 994171.0 1299997.0
150 2020-04-30 994171.0 1299997.0
151 2020-05-01 994171.0 1299997.0
第二个图形的部分数据,当上限值远大于趋势时,所有历史和预测值都奇怪地变为零
ds y cap
147 2020-04-27 5114514.0 1.046000e+09
148 2020-04-28 5121244.0 1.046000e+09
149 2020-04-29 5128124.0 1.046000e+09
150 2020-04-30 5135264.0 1.046000e+09
151 2020-05-01 5141464.0 1.046000e+09
这是我的代码
m=Prophet(growth = 'logistic', interval_width=1)
m.fit(df)
future = m.make_future_dataframe(periods=365)
future['cap'] = float(max)
forecast = m.predict(future)
pd.plotting.register_matplotlib_converters()
components_fig = m.plot_components(forecast)
axes = components_fig.get_axes()
axes[0].set_xlabel('Date')
axes[0].set_ylabel('Count')
axes[0].set_title(title)
但是,如果我删除了上限列,并且不使用逻辑拟合,则第二种情况将变得正常。
m=Prophet(interval_width=1)
m.fit(df)
future = m.make_future_dataframe(periods=365)
#future['cap'] = float(max)
forecast = m.predict(future)
pd.plotting.register_matplotlib_converters()
components_fig = m.plot_components(forecast)
axes = components_fig.get_axes()
axes[0].set_xlabel('Date')
axes[0].set_ylabel('Count')
axes[0].set_title(title)
对为什么会发生这种情况有任何想法吗?我们该如何解决?评论? 2美分?谢谢!