【问题标题】:Trying to Understand FB Prophet Cross Validation试图理解 FB Prophet 交叉验证
【发布时间】:2020-12-26 01:15:30
【问题描述】:

我有一个包含 84 个月销售额的数据集(从 2013 年 1 月到 2019 年 12 月)——只有几个月,而不是几天。

Month 01 | Sale 1

Month 02 | Sale 2

Month 03 | Sale 3

....     |   ...

Month 84 | Sale 84

通过可视化看起来模型非常适合......但我需要检查它......

所以我的理解是交叉 val 不支持月份,所以我所做的就是转换为使用天数(尽管我原来的 df 中没有天数信息)...

我想在前五年(60 个月)尝试我的模型,然后离开剩下的两年(24 个月),看看模型的预测效果如何......

所以我做了类似的事情:

cv_results = cross_validation( model = prophet, initial='1825 days', period='30 days', horizon = '60 days')

这有意义吗?

我没有理解截止日期和预测期的概念

【问题讨论】:

    标签: python machine-learning time-series cross-validation facebook-prophet


    【解决方案1】:

    我也为此苦苦挣扎了一段时间。但这是它的工作原理。初始模型将根据前 1,825 天的数据进行训练。它将预测未来 60 天的数据(因为 Horizo​​n 设置为 60)。然后,该模型将在初始周期 + 周期(在本例中为 1,825 + 30 天)进行训练,并预测接下来的 60 天。它将像这样继续,在训练数据中再增加 30 天,然后预测接下来的 60 天,直到没有足够的数据来执行此操作。

    总而言之,周期是每次交叉验证迭代中要添加到训练数据集中的数据量,而地平线是预测的距离。

    【讨论】:

    • 谢谢你,花了很长时间谷歌搜索它是如何工作的并遇到了这个答案。我认为整个过程的地平线是静止的,但如果我理解正确的话,它实际上是在每 30 天向训练数据中添加一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2020-05-07
    • 2020-08-29
    • 2018-08-02
    • 2016-10-31
    • 2012-12-31
    • 1970-01-01
    相关资源
    最近更新 更多