先知预测的诊断问题

时间:2019-02-21 14:07:55

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

我正在使用芝加哥的犯罪数据集,并专门研究芝加哥的犯罪率的未来预测(从2012年到2016年,我有数据)。我使用Facebook的先知软件包生成了一个预测。它工作得很好,一切都完成了。现在,我想训练和测试我的模型。因此,我将数据集分为70%训练和30%测试。我训练了模型并对其进行了测试,最后得到了一个不错的图。我对诊断部分进一步感兴趣。先知为我提供了一个名为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.

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

我的火车/测试区看起来像这样:

Train/Test Plot

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

我希望有人能帮助我!真的很棒,我真的很感激。预先感谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

我遇到了类似的问题,我设法使用了{strong> string 这样的参数,例如create Table dbo.provinces( int int not null identity, States nvarchar(100)) ,而不是 int horizon="365 days"

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