【问题标题】:Struggling to understand the parameters of the cross validation function in fbprophet library努力理解fbprophet库中交叉验证函数的参数
【发布时间】:2020-10-15 12:35:54
【问题描述】:

基本上我有 780 次(每日)观察,我想从中训练 80% 的数据,剩下的 20% 用于交叉验证。 因此我明白我将使用:

df_cv = cross_validation(m, initial='624 days', horizon='156 days')

其中初始日期对应于我想训练的第一个观察值,而我想用于交叉验证的剩余观察值。

我认为我没有正确应用它,因为它似乎是一个截止日期,我真的不明白它的用途。

如何实现我的目标,即使用最初 80% 的观察来训练数据,最后 20% 用于交叉验证?

提前谢谢你

【问题讨论】:

    标签: python-3.x machine-learning prediction cross-validation facebook-prophet


    【解决方案1】:

    截止日期用于确定在第一次验证迭代时(截止前)您的训练数据集中的内容以及将预测的内容(截止后)。如果您想使用 80% 作为训练数据,并且想要进行交叉验证,则不能将水平值设置为数据的 20%,因为这将只允许进行一次验证。您将需要一个较小的数字来用于范围,因为这决定了您预测每次迭代的天数。对于每个有序的验证迭代,FBProphet 将在截止和截止 + 地平线之间进行预测,然后添加周期以获得下一个截止。这是一个例子:

    800 天总数据集
    初始 = 624 == 训练数据集的大小
    水平线 = 20 == 大小待预测
    period = 10(默认 = 水平的 1/2)== 截止日期之间的间隔作为增量

    第一次迭代:训练 1-624,预测 625-644
    第二次迭代:训练 11-634,预测 635-654
    第三次迭代:训练 21-644,预测 645-664

    所以最后 20% 可以用于不同时间框架的交叉验证

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 1970-01-01
      • 2017-02-10
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      相关资源
      最近更新 更多