时间序列的蒙特卡罗交叉验证
交叉验证应用于时间序列需要注意是要防止泄漏和获得可靠的性能估计本文将介绍蒙特卡洛交叉验证。这是一种流行的TimeSeriesSplits方法的替代方法。
时间序列交叉验证
TimeSeriesSplit通常是时间序列数据进行交叉验证的首选方法。下图1说明了该方法的操作方式。可用的时间序列被分成几个大小相等的折叠。然后每一次折首先被用来测试一个模型,然后重新训练它。除了第一折只用于训练。
使用TimeSeriesSplit进行交叉验证的主要好处如下:
- 它保持了观察的顺序。这个问题在有序数据集(如时间序列)中非常重要。
- 它生成了很多拆分 。几次拆分后可以获得更稳健的评估。如果数据集不大,这一点尤其重要。
TimeSeriesSplit的主要缺点是跨折叠的训练样本量是不一致的。这是什么意思?
假设将该方法应用于图1所示的5次分折。在第一次迭代中,所有可用观测值的20%用于训练。但是,这个数字在上次迭代中是80%。因此,初始迭代可能不能代表完整的时间序列。这个问题会影响性能估计。
那么如何解决这个问题?
完整文章:
https://avoid.overfit.cn/post/d6ab5b4cd0e5476c91cae97c4564deb9
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2021-12-15 18 个 实用的Numpy 代码片段总结