我目前正在处理一些时间序列数据,我正在使用 TimeSeriesSplit
为了将我的数据集拆分为正向链接交叉验证拆分。
所以如果我有 100 个数据点 - 我分成 3 个部分。
1. 我在 1-25 号训练。测试 26-50。
2. 1-50 训练。在 51-75 上测试。
3.在1-75上训练。在 76-100 上测试。
将此称为扩展窗口示例。
我想知道是否有办法在每次训练时将训练窗口向前滑动,使其不是从 0 开始。我正在尝试实现类似于图表的滑动窗口场景
最佳答案
不幸的是,sklearn 中没有专门用于时间序列交叉验证的滑动窗口 CV。但是,使用带有参数 shuffle=False
的 StratifiedKFold 或 KFold可以模拟非随机化。请注意,这也适用于 train_test_split
,这对于时间序列数据也很有用。
这是用于可视化各种交叉验证行为的 sklearn 文档页面:
https://scikit-learn.org/stable/auto_examples/model_selection/plot_cv_indices.html#sphx-glr-auto-examples-model-selection-plot-cv-indices-py
另一种选择是使用 Python pandas
按索引拆分或 collections
图书馆。 Pandas 对时间序列相关的概念也有很好的支持,比如滚动窗口。
关于python - 有没有办法使用 SKlearn 进行滑动嵌套交叉验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56601488/