5折交叉验证_时序问题中的交叉验证怎么做?

问题引入


在平时的项目中主要做的分类或者回归的问题比较多,对于时序的一些问题的建模的话,在交叉验证的这个角度应该如何去选择训练集和测试集呢?

问题解答

交叉验证(CV)是一项很流行的技术,用于调节超参数,是一种具备鲁棒性的模型性能评价技术。两种最常见的交叉验证方式分别是 k 折交叉验证和 hold-out 交叉验证。那么可以很明显的看到,我们的时序问题中肯定不能用k折交叉验证,因为时序的数据是有依赖的。

目前来说主要的在时间序列建模中的交叉验证方法主要有

1.预测后一半(Predict Second Half)
这种方法如下图,只有一次训练/测试分割。它的优势是这种方法易于实现;然而,它仍然面临着任意选择测试集的局限性。前一半数据(按照时间分割的)作为训练集,后一半数据成为测试集。验证集的大小可以根据给定问题的不同而变化(例如图中的例子用一天的数据作为验证集),但是保证验证集的时间顺序在训练子集后面是非常重要的。

0540ff7c4eb79d8729b1c72f7b941d6b.png

2.日前向链(Day Forward-Chaining)

预测后一半嵌套交叉验证方法的一个缺陷是 hold-out 测试集的任意选择会导致在独立测试集上预测误差的有偏估计。简单说就是一次太少,进行多次训练/测试分割可以解决这个问题。使用日前向链技术是一种基于前向链(Forward-Chaining)的方法(在文献中也被称为 rolling-origin evaluation(Tashman,2000)和 rolling-origin-recalibration evaluation(Bergmeir & Benitez,2012))。将每天的数据作为测试集,并将以前的所有数据分配到训练集中。简单的来说就是滑动预测,这点从图中可以明了,就不做详细的介绍了。

42d4975dee387e4efb7334e6e42d0b63.png

参考

[1] https:// blog.csdn.net/Datawhale /article/details/102547892
[2] https:// zhuanlan.zhihu.com/p/38 947625
[3] https:// zhuanlan.zhihu.com/p/98 532085

欢迎关注我的公众号,第一时间追踪相关面试题和总结:百面机器学习。回复干货获取相关资料和面试题总结(定期更新)。

023bbb9d7ab011f3111bcc1fb1bf297c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值