> 文章列表 > Prophet学习(三)饱和的预测与饱和最低

Prophet学习(三)饱和的预测与饱和最低

Prophet学习(三)饱和的预测与饱和最低

目录

饱和的预测(Forecasting Growth)

饱和最低(Saturating Minimum)


饱和的预测(Forecasting Growth)

默认情况下,Prophet使用线性模型进行预测。在预测增长时,通常有一个最大可达点:总市场规模、总人口规模等。这就是所谓的承载能力,预测应该在这一点饱和。

Prophet允许您使用具有指定承载能力的逻辑增长趋势模型进行预测。我们用维基百科上R(编程语言)页面的访问量日志来说明这一点:

# Python
df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_R.csv')

我们必须在列上限中指定承载能力。这里我们将假设一个特定的值,但这通常是根据关于市场规模的数据或专业知识来设置的。

# Python
df['cap'] = 8.5

需要注意的重要事项是,必须为数据帧中的每一行指定cap,并且它不必是常量。如果市场规模在增长,那么上限可以是一个递增的序列。

然后我们像以前一样拟合模型,除了传入一个额外的参数来指定逻辑增长:

# Python
m = Prophet(growth='logistic')
m.fit(df)

和前面一样,我们为未来的预测制作了一个数据框架,只是我们还必须指定未来的容量。这里我们将容量保持在与历史相同的值,并预测未来5年:

# Python
future = m.make_future_dataframe(periods=1826)
future['cap'] = 8.5
fcst = m.predict(future)
fig = m.plot(fcst)

逻辑函数的隐式最小值为0,它在0处饱和的方式与在容量处饱和的方式相同。也可以指定不同的饱和最小值。

饱和最低(Saturating Minimum)

逻辑增长模型还可以处理饱和最小值,它由一个列下限指定,与cap列指定最大值的方式相同:

# Python
df['y'] = 10 - df['y']
df['cap'] = 6
df['floor'] = 1.5
future['cap'] = 6
future['floor'] = 1.5
m = Prophet(growth='logistic')
m.fit(df)
fcst = m.predict(future)
fig = m.plot(fcst)

 要使用具有饱和最小值的逻辑增长趋势,还必须指定最大容量。

电脑装机网