gpt4 book ai didi

python - 如何使用 Facebook Prophet 选择初始、期间、范围和截止值?

转载 作者:行者123 更新时间:2023-12-05 04:53:00 33 4
gpt4 key购买 nike

我的数据集中有大约 23300 个每小时的数据点,我尝试使用 Facebook Prophet 进行预测。要微调超参数,可以使用交叉验证:

from fbprophet.diagnostics import cross_validation

整个过程如下: https://facebook.github.io/prophet/docs/diagnostics.html

使用cross_validation需要指定initialperiodhorizo​​n:

df_cv = cross_validation(m, initial='xxx', period='xxx', horizon = 'xxx')

我现在想知道如何在我的案例中配置这三个值?如前所述,我有大约 23.300 个每小时数据点的数据。我应该取其中的一小部分作为范围,还是将数据的正确部分作为范围并不那么重要,我可以取任何看起来合适的值?

此外,cutoffs 也定义如下:

cutoffs = pd.to_datetime(['2013-02-15', '2013-08-15', '2014-02-15'])
df_cv2 = cross_validation(m, cutoffs=cutoffs, horizon='365 days')

这些 cutoffs 是否应该像上面那样均匀分布,或者我们可以像有人喜欢的那样单独设置 cutoffs 吗?

最佳答案

  • initial 是第一个训练期。这是最低限度开始训练所需的数据量。
  • horizo​​n 是您要评估预测的时间长度超过。假设一家零售店正在建立他们的模型他们可以预测下个月的销售额。地平线设置为 30days 在这里是有意义的,所以他们正在评估他们的模型在他们希望使用它的相同参数设置上。
  • period 是每次折叠之间的时间量。它可以是大于或小于地平线,甚至等于地平线。
  • cutoffs 是每个地平线开始的日期。

您可以通过查看此图像来理解这些术语 -

enter image description here学分:预测时间系列数据与Greg Rafferty 的 Facebook 先知

假设一家零售店想要一个能够预测下个月的模型每日销售额,他们计划在每个季度初运行该模型。他们有3年的数据

然后,他们会将初始训练数据设置为 2 年。他们想预测下个月的销售,因此将时间跨度设置为 30 天。他们计划运行该模型每个业务季度,因此将期限设置为 90 天。也显示在上图中。

让我们将这些参数应用到我们的模型中:

df_cv = cross_validation(model,
horizon='30 days',
period='90 days',
initial='730 days')

关于python - 如何使用 Facebook Prophet 选择初始、期间、范围和截止值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66278305/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com