Python 3.x 努力理解fbprophet库中交叉验证函数的参数

Python 3.x 努力理解fbprophet库中交叉验证函数的参数,python-3.x,machine-learning,prediction,cross-validation,facebook-prophet,Python 3.x,Machine Learning,Prediction,Cross Validation,Facebook Prophet,基本上,我每天有780次观察,我想从中训练80%的数据,剩下的20%用于交叉验证。 因此,我理解我将使用: df_cv = cross_validation(m, initial='624 days', horizon='156 days') 如果初始日期对应于我要训练的第一个nº观察值,并确定我要用于交叉验证的剩余nº观察值的水平 我认为我没有正确地应用它,因为它似乎是一个截止日期,我真的不明白这是为了什么 我如何实现我的目标,即使用最初80%的观察值来训练数据,最后20%用于交叉验证 提前

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

df_cv = cross_validation(m, initial='624 days', horizon='156 days')
如果初始日期对应于我要训练的第一个nº观察值,并确定我要用于交叉验证的剩余nº观察值的水平

我认为我没有正确地应用它,因为它似乎是一个截止日期,我真的不明白这是为了什么

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


提前感谢

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

800天总数据集
初始=624==列车数据集的大小
地平线=20==预测规模
期间=10(默认值=地平线的1/2)=截止日期之间的间隔为增量

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

因此,最后20%可用于不同时间范围的交叉验证