Prophet文档翻译( 三)饱和预测

饱和预测

增长预测

默认情况下,Prophet在其预测中使用线性模型。在预测增长时,通常存在一些最大可达点:总市场规模、总人口规模等。这被称为承载能力,预测应该在该点达到饱和状态。

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

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

我们必须在一个名为cap的列中指定承载能力。在这里,我们将假设一个特定的值,但通常应使用有关市场规模的数据或专业知识来设置该值。

# Python
df['cap'] = 8.5

需要注意的重要事项是,cap必须针对数据框中的每一行进行指定,并且它不一定是常量。如果市场规模在增长,那么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)

image

逻辑函数具有隐式最小值0,并且与达到承载能力时的饱和状态相同,也会在0处饱和。您也可以指定不同的饱和最小值。

饱和最小值

逻辑增长模型还可以处理饱和最小值,它使用与cap列指定最大值相同的方式,通过一个名为floor的列进行指定:

# 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)

image

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

posted @ 2023-05-16 23:34  明天OoO你好  阅读(395)  评论(0编辑  收藏  举报