有没有一种方法可以使用SKlearn获得滑动嵌套交叉验证?

时间:2019-06-14 15:45:22

标签: python scikit-learn time-series cross-validation

我目前正在处理一些时间序列数据,并且正在使用TimeSeriesSplit来将我的数据集拆分为正向链接交叉验证拆分。

因此,如果我有100个数据点-并且我分为3个分割。 1.我在1-25训练。测试26-50。 2.在1-50上训练。测试51-75。 3.乘1-75火车。在76-100上测试。

将此称为扩展窗口示例。

我想知道是否有一种方法可以在每次训练时向前滑动训练窗口,所以它不是从0开始。我正在尝试实现类似于图的滑动窗口方案

enter image description here

1 个答案:

答案 0 :(得分:0)

不幸的是,sklearn中没有专门用于时间序列交叉验证的滑动窗口CV。但是,将StratifiedKFold或KFold与参数shuffle=False一起使用可以模拟非随机化。请注意,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 pandascollections库按索引进行拆分。熊猫对与时间序列相关的概念也提供了很好的支持,例如滚动窗口。