机器学习中时间序列数据的训练集、验证集、测试集处理问题

本文探讨在机器学习中,处理时间序列数据时如何正确地划分训练集、验证集和测试集,避免数据泄露,确保模型评估的准确性。特别强调了时间序列预测任务中,验证集与训练集时间节点不应重叠的重要性。

机器学习中对于时间序列的数据进行train、val、test划分时需要注意的问题是,不要将val中的数据出现在train中,准确的说,是选取的val数据的时间节点不能与train中数据时间节点有任何交集。否则,你会发现训练时,val的loss会与train的loss几乎一样,即失去其作用。因为,对于时间序列预测这种任务,如果你的验证集中与训练集中时间上出现重叠,模型会在训练时记忆你训练集中出现的重叠数据,专业的说法是引入未来数据。例如,告诉你5日到10日的收盘价格,让你预测第11日收盘价(验证阶段);同时,给你11日到16日的收盘价,让你记忆第17日的收盘价(训练阶段)。这11日的价格你记忆过,影响了神经单元权重,自然在验证时无法做到客观。

一般有三种处理方案

1,Train-Test split that respect temporal order of observations.

2,Multiple Train-Test splits that respect temporal order of observations.

3,Walk-Forward Validation where a model may be updated each time step new data is received.

具体训练划分处理方案可以参考以下

参考:

  1. How To Backtest Machine Learning Models for Time Series Forecasting

  2. Time Series Nested Cross-Validation

  3. Cross-validation for time series

  4. 除了预测姨妈周期,时间序列还能干嘛?

  5. 机器学习与时间序列预测

(以上个人理解。试验时反应出的问题,但没有理论验证过,如有错误望指出,谢谢)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值