时间序列的蒙特卡罗交叉验证

交叉验证应用于时间序列需要注意是要防止泄漏和获得可靠的性能估计本文将介绍蒙特卡洛交叉验证。这是一种流行的TimeSeriesSplits方法的替代方法。

时间序列交叉验证

TimeSeriesSplit通常是时间序列数据进行交叉验证的首选方法。下图1说明了该方法的操作方式。可用的时间序列被分成几个大小相等的折叠。然后每一次折首先被用来测试一个模型,然后重新训练它。除了第一折只用于训练。

使用TimeSeriesSplit进行交叉验证的主要好处如下:

  • 它保持了观察的顺序。这个问题在有序数据集(如时间序列)中非常重要。
  • 它生成了很多拆分 。几次拆分后可以获得更稳健的评估。如果数据集不大,这一点尤其重要。

TimeSeriesSplit的主要缺点是跨折叠的训练样本量是不一致的。这是什么意思?

假设将该方法应用于图1所示的5次分折。在第一次迭代中,所有可用观测值的20%用于训练。但是,这个数字在上次迭代中是80%。因此,初始迭代可能不能代表完整的时间序列。这个问题会影响性能估计。

那么如何解决这个问题?

完整文章:

https://avoid.overfit.cn/post/d6ab5b4cd0e5476c91cae97c4564deb9

posted @ 2022-12-15 10:47  deephub  阅读(64)  评论(0编辑  收藏  举报