小编Ang*_* Li的帖子

时间序列数据的滑动窗口训练/测试拆分

我有一个包含 36 个数据点的系列,我想对其进行滑动窗口训练和测试。我看过 TimeSeriesSplit() 但它只做类似的事情

('TRAIN:', array([0, 1, 2]), 'TEST:', array([3, 4, 5]))
('TRAIN:', array([0, 1, 2, 3, 4, 5]), 'TEST:', array([6, 7, 8]))
('TRAIN:', array([0, 1, 2, 3, 4, 5, 6, 7, 8]), 'TEST:', array([ 9, 10, 11]))
Run Code Online (Sandbox Code Playgroud)

我想有一个固定长度的 12 个滑动窗口,每次移动 1 个点,固定长度为 3 个滑动窗口,用于测试集。 例如

('TRAIN:', array([0,1,2,3,4,5,6,7,8,9,10,11]), 
 'TEST:', array([12,13,14]))
('TRAIN:', array([1,2,3,4,5,6,7,8,9,10,11,12]), 
 'TEST:', array([13,14,15]))
('TRAIN:', array([2,3,4,5,6,7,8,9,10,11,12,13]), 
 'TEST:', array([14,15,16]))
...
Run Code Online (Sandbox Code Playgroud)

我读了这篇文章(https://ntguardian.wordpress.com/2017/06/19/walk-forward-analysis-demonstration-backtrader/)并尝试

from sklearn.model_selection import TimeSeriesSplit
from sklearn.utils import indexable
from sklearn.utils.validation import _num_samples
import numpy as np

class …
Run Code Online (Sandbox Code Playgroud)

python machine-learning time-series sliding-window

3
推荐指数
1
解决办法
3214
查看次数