关于人工智能:9个时间序列交叉验证方法的介绍和对比

4次阅读

共计 2414 个字符,预计需要花费 7 分钟才能阅读完成。

评估性能对预测模型的开发至关重要。穿插验证是一种风行的技术。然而在解决工夫序列时,应该确保穿插验证解决了数据的工夫依赖性质。在之前的文章中,咱们也做过相应的介绍。

在本文中,咱们收集了工夫序列的罕用的 9 种穿插验证办法。这些包含样本外验证 (holdout) 或风行的 K -fold 穿插验证的几个扩大。

TimeSeriesSplits 通常是评估预测性能的首选办法。这种办法也称为工夫序列穿插验证。然而咱们这里列出的其余办法可能会有更好的后果。

Holdout

Holdout 是预计预测成果最简略的办法。它的工作原理是进行一次宰割(图 1)。该序列的第一局部用于训练模型。这个模型在保留的观测中进行测验。

个别状况下训练集大小通常设置为察看总数的 70%,能够应用 scikit-learn 中的 train_test_split 函数利用 Holdout。

如果工夫序列大小不大,应用单个宰割可能会导致不牢靠的预计。

工夫序列穿插验证

进行屡次拆分是个好主见。这样做能够在数据的不同局部上测试模型。一种办法是应用工夫序列穿插验证。上面是该技术的可视化形容:

工夫序列被分成 K 个间断的数据块。每个块首先用于测试模型,而后从新训练它。除了第一块,它只用于训练。工夫序列穿插验证就是 scikit-learn 中 TimeSeriesSplit 实现。

带间隙的工夫序列穿插验证

能够在上述技术中减少训练和验证之间的间隙(图 3)。这有助于减少两个样本之间的独立性。应用 TimeSeriesSplit 类中的 gap 参数引入这个间隙。

滑动工夫序列穿插验证

另一种利用工夫序列穿插验证的办法是滑动窗口(图 4)。在迭代之后老的数据块被抛弃。

这种办法可能在两种状况下有用:

  • 数据量微小
  • 旧的察看曾经过期了

这种变体也能够利用于训练样本和验证样本之间的间隙。

蒙特卡洛穿插验证

蒙特卡罗穿插验证是 TimeSeriesSplit 的另一种办法。下图是这种技术的直观图示。

与 TimeSeriesSplits 不同,每个迭代中的验证原点是随机抉择的。

K-Fold 穿插验证

K-fold 穿插验证 (图 6) 是一种用于评估模型性能的风行技术。它的工作原理是变换察看后果,并将它们调配给 K 个相等大小的折。而后每折都被用作验证而剩下的其余数据进行训练。

这种办法的次要长处是所有的观测后果都在某个时刻被用于验证。

然而整个过程是在观测是独立的假如下进行的。这对工夫序列来说是不成立的。所以最好抉择一种尊重察看的工夫程序的穿插验证办法。

然而在某些状况下,K-fold 穿插验证对工夫序列是有用的。例如,当工夫序列是安稳的或样本量很小时。你能够在参考文献 [1] 中理解更多。

Blocked K-Fold 穿插验证

一些专门设计的技术用于扩大工夫序列的 K -Fold 穿插验证。

其中一种办法是阻塞 K -Fold 穿插验证。这个过程与之前类似,然而没有了打乱的局部。察看的程序在每个块内放弃不变,但在它们之间的关系被突破了。

这种办法对于安稳工夫序列是很不便的。能够在参考文献 [2] 和[3]中查看更多详细信息。

hv-Blocked K-Fold 穿插验证

能够尝试通过在两个样本之间引入距离来减少训练和验证之间的独立性。这就是一种称为 hv-Blocked K-Fold 穿插验证的办法。

改良的 K -Fold 穿插验证

改良的 K -Fold 穿插验证保留了过程中的打乱局部(图 9)。然而它删除了靠近验证样本的任何训练察看值。

改良的 K -Fold 穿插验证依赖于发明间隙而不是阻塞。然而这种技术的次要问题是许多训练察看被删除了。这可能会导致拟合有余的问题。

总结

本文概述了 9 种可用于工夫序列不同的穿插验证的办法,这里倡议:

首选技术是蒙特卡洛穿插验证 (列表中的第 5 个)。工夫序列穿插验证(及其变体) 是一个很好的抉择。如果工夫序列大小较大,通常间接 Holdout,因为评估过程更快。

然而没有相对,其余技术在的特定状况下也是很有用,还是须要依据具体情况具体分析。

本文援用:

[1] Bergmeir, Christoph, Rob J. Hyndman, and Bonsoo Koo.“A note on the validity of cross-validation for evaluating autoregressive time series prediction.”Computational Statistics & Data Analysis 120 (2018): 70–83.

[2] Bergmeir, C., & Benítez, J. M. (2012). On the use of cross-validation for time series predictor evaluation. Information Sciences, 191, 192–213.

[3] Cerqueira, Vitor, Luis Torgo, and Igor Mozetič.“Evaluating time series forecasting models: An empirical study on performance estimation methods.”Machine Learning 109.11 (2020): 1997–2028.

[4] Racine, J. (2000). Consistent cross-validatory model-selection for dependent data: hv-block cross-validation.Journal of Econometrics, 99(1), 39–61.

[5] Arlot, Sylvain, and Alain Celisse.“A survey of cross-validation procedures for model selection.”Statistics surveys 4 (2010): 40–79.

https://avoid.overfit.cn/post/6e8c6d96d4954f8589e6118cb351139d

作者:Vitor Cerqueira

正文完
 0