5折交叉验证_关于时间序列问题的交叉验证

由于存在时间先后的问题,对于存在时间特性的分类或者回归问题不能简单的使用StratifiekdKFold或者KFold进行交叉验证,更不能shuffle,会带来一定的时序特征交叉的问题,比如用未来的数据来预测过去的数据,这样的交叉验证结果在业务上意义不大,在比赛中也很容易造成过拟合的问题。简单总结一下时间序列的交叉验证方法:

1、timeseriessplit

from 

比较常见的一种包含时序性的数据集的交叉验证的方法之一;

2、from :

TSCV: A Python package for Time Series Cross-Validation​www.zhengwenjie.net

作者介绍并且实现了另外的一些有意思的时序性数据的验证的方式:

e26e9c7ba0e0d2cc3c77952bf2e3d032.png
>>> 

p表示test数据集大小,是一个变动的窗口的大小,gap_before和gap_after显然如图是test数据集前后间隔的周期数,目前作者仅实现了数量没有实现比例的参数设置,不过问题不大,自己算算代入就可以了。


ad25fea016627ba70a80cf62abb073b1.png
>>> 

kfold的gap版,从上图就可以很直观的感受到了实现的原理了,参数的名字也很直观知道是控制啥的。。。这种方法不可避免用到未来的数据,不知道有木有用,比赛的时候试试吧。


02a118ae84d5fa360fb8734ab2e29af1.png
>>> 

实际上就是sklearn中的timeseriessplit的加入了gap版本的实现。


6f6ad015e99cfcff7efc47ae78ae7524.png
import 

实际上就是train_test_split的gap版本


底层用的sklearn的基类写的,所以可以和sklearn模板写的api互相兼容。没怎么尝试过这种验证方式,下次试试吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值