python - 有没有办法使用 SKlearn 进行滑动嵌套交叉验证?

标签 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

最佳答案

不幸的是,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/

相关文章:

c++ - 从 C++ 中查找 python 函数参数

python - 是否有错误的顺序编码名称?

python - 在 ubuntu 14.04 中安装 Scikit-learn 时出错

python - 从现有的非 XML 文件读取 XML

python - 将 pandas float 系列转换为 int

python - sklearn.model_selection.cross_val_score的score函数公式是什么?

python - 使用 NearestNeighbors 和 word2vec 检测句子相似度

machine-learning - 为未遇到的输入创建神经网络

pandas - 使用 Dataframe.plot 函数在 pandas 时间序列上添加任意点

r - STL 中的错误,系列少于两个句点(错误?)