具有巨大上限的FBProphet物流模型将导致零值预测

时间:2020-05-07 01:06:05

标签: python-3.x fbprophet

在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

The first figure is the normal one

第二个图形的部分数据,当上限值远大于趋势时,所有历史和预测值都奇怪地变为零

            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

This figure is the one with the issue

这是我的代码

    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)

enter image description here

对为什么会发生这种情况有任何想法吗?我们该如何解决?评论? 2美分?谢谢!

0 个答案:

没有答案