sklearn中时间序列数据的交叉验证

2024-04-28 21:20:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于时间序列数据交叉验证的问题。问题在于宏观预测,例如预测标准普尔500指数的1个月前价格;P500使用不同的月度宏变量。现在我了解了以下方法:应该/可以使用滚动交叉验证方法。即,始终删除旧的月度价值,然后添加新的(=滚动),然后预测未来几个月的S&;P500。但是现在,由于“数据泄漏”的担忧,在培训数据和预测下个月的价值之间应该总是有1个月的差距。我的问题是,我不明白为什么要在培训和验证之间始终使用1个间隙。我不认为这种方法存在数据泄漏问题

谢谢你的帮助


Tags: 数据方法标准时间序列价格指数交叉
1条回答
网友
1楼 · 发布于 2024-04-28 21:20:59

Scikit learn并没有涵盖时间序列模型交叉验证的所有基础。此外,还有许多模型仅存在于Statsmodels套件中

在任何情况下,您都在正确的轨道上寻找滚动窗口CVThis post说明了一些其他可用选项

如果您想创建一个定制函数来使用滑动窗口进行向前走验证,请查看this tutorial。它可以调整为滚动窗口CV

至于data leakage,您需要留出一个与您预测的h步数相等的间隙。这可以通过向前走验证来完成

假设您正在预测一个月前的股票价格,并且您在培训集中有截至2020年8月1日的数据。 您对2020年9月1日的预测不会使用泄漏的数据。在预测之后,您可以将2020年8月2日添加到训练集中,并继续前进。如果你不更新培训集,你可能会在9月底用8月初的信息预测数据,其中的间隔超过一个月

相关问题 更多 >