【问题标题】:Problems with diagnostics of prophet forecast预言家预测的诊断问题
【发布时间】:2019-07-15 11:29:56
【问题描述】:

我正在研究芝加哥的犯罪数据集,并专门研究芝加哥犯罪率的未来预测(我有 2012 年到 2016 年的数据)。我使用 facebook 的先知包生成了预测。它工作得很好,一切都完成了。现在我想训练和测试我的模型。因此,我将数据集分成 70% 的训练和 30% 的测试。我训练了模型并对其进行了测试,最后我得到了一个不错的情节。我对诊断部分更感兴趣。 Prophet 提供了一个名为 cross_validation() 的函数,我使用它:df.cv<- cross_validation(m, initial = nrow(trainData), period = 365, horizon = nrow(testData), units = 'days') .问题就在这里,我总是收到这个错误并从昨天开始尝试修复它,但没有成功:

Fehler in generate_cutoffs(df, horizon.dt, initial.dt, period.dt) : 
Less data than horizon after initial window. Make horizon or initial shorter.

有人知道如何修复此错误并提供诊断列表吗?

我的训练/测试图是这样的:

我的火车数据集可以在这里下载:https://ufile.io/4e38c 我的测试数据集在这里:https://ufile.io/ds65p

我希望有人可以帮助我!这将是非常棒的,我将非常感激。提前致谢!

【问题讨论】:

    标签: dataset forecast train-test-split facebook-prophet


    【解决方案1】:

    交叉验证将应用于滑动窗口,根据设置执行截止。请在此处阅读文档: https://facebook.github.io/prophet/docs/diagnostics.html

    由于滑动窗口超出范围而出现的错误。试试这样:

    df.cv<- cross_validation(m, initial = 100, period = 100, horizon = 100, units = 'days') 
    

    【讨论】:

    【解决方案2】:

    我遇到了类似的问题,我设法通过使用 string 参数(例如 horizon="365 days" 而不是 int horizon = 365)来解决它。

    此解决方案适用于 Python 版本。

    【讨论】:

    • 他的例子是在 R 中而不是在 Python 中。在 Python 中你有 horizon="365 days" 而在 R 中你有 horizon=365
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 2021-05-13
    相关资源
    最近更新 更多