我希望对我的时间序列数据执行前向验证。存在关于如何执行滚动窗口的大量文档:
或扩展窗口
但此验证与我的生产系统中的情况并不对应:我想每天重新训练一个模型,该模型将在未来 14 天进行预测。因此,我只会在之前的训练周期中添加一天的数据(其他方法在接下来的训练中添加的数据会折叠一整组长度为 的数据test_size
;在我的例子中为 14 天)。因此,我想用滑动窗口验证我的模型:
我的问题是我找不到可以完成这项工作的Python 库。sklearn 的TimeSeriesSplit没有此类选项。基本上我想提供 :
test_size
, n_fold
,min_train_size
和
if n_fold > (n_samples - min_train_size) % test_size
then 接下来training_set
从上一个折叠中提取数据test_set
我想合并2个数据帧:
DF1:
cik0 cik1 cik2
'MKTG, INC.' 0001019056 None None
1 800 FLOWERS COM INC 0001104659 0001437749 None
11 GOOD ENERGY INC 0000930413 None None
1347 CAPITAL CORP 0001144204 None None
1347 PROPERTY INSURANCE HOLDINGS, INC. 0001387131 None None
Run Code Online (Sandbox Code Playgroud)
DF2:
cik Ticker
0 0001144204 AABB
1 0001019056 A
2 0001387131 AABC
3 0001437749 AA
4 0000930413 AAACU
Run Code Online (Sandbox Code Playgroud)
预期结果:
cik0 cik1 cik2 ticker
'MKTG, INC.' 0001019056 None None A
1 800 FLOWERS COM INC 0001104659 0001437749 None AA
11 GOOD ENERGY …
Run Code Online (Sandbox Code Playgroud)