时间序列中如何进行交叉验证?分享几招!

如题所述

时间序列中如何进行交叉验证?分享几招!

本文提供时间序列数据的交叉验证技巧,以帮助选择最优超参数,特别是在数据集较小的情况下。传统的交叉验证方法可能不适用于时间序列预测,因此需采用专门的策略。其中,k-fold交叉验证将数据集拆分为训练和测试数据集的多个子集,对于每个分割,使用k-1个集合的训练数据训练模型,然后在剩余数据上验证模型,重复此过程以获取模型得分的平均值。然而,这种方法在时间序列预测中不适用。

为解决这一问题,可使用“窗口拆分器”来创建训练和测试数据集。窗口拆分器具有两个可配置参数:初始化后,可以像KFold验证类一样使用,为每个数据拆分提供训练和测试索引。有滑动窗口拆分和扩展窗口拆分两种方法。滑动窗口拆分器在滑动窗口上生成折,其中训练窗口大小固定,而测试窗口大小可能变化;而扩展窗口拆分器则使训练序列长度随时间增长,测试序列长度保持不变。

在选择预测模型时,sktime提供了Forecasting Grid Search CV和Forecasting Randomized Search CV这两个类,它们使用交叉验证来搜索最佳模型参数。这些类通过反复拟合和评估模型来工作,并遵循与sklearn交叉验证方法类似的界面。

本文介绍了在时间序列数据上进行交叉验证的几种方法和类库,包括如何使用窗口拆分器、如何选择预测模型参数以及使用sktime库进行预测。通过跨时间滑动窗口、网格搜索和随机搜索,可以有效地在时间序列数据上应用交叉验证,以选择最优模型参数,实现更准确的预测。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜