返回 经典机器学习 思维导图
中文·English
📊 经典机器学习ID: timeseries-cv

时序交叉验证

Time-Series Cross-Validation
🎯核心定义
时序数据不能随机 K-Fold,必须用 walk-forward(前向验证 / 滚动窗口): 训练集只包含过去时刻,验证集是紧随其后的未来窗口——第 1 步用 [0,t][0, t] 训练、[t,t+h][t, t+h] 验证,第 2 步滚动到 [0,t+s][0, t+s] 训练、[t+s,t+s+h][t+s, t+s+h] 验证,如此滚动直到覆盖全部数据。核心铁律是禁止未来信息: 任何用未来时刻统计量(均值、目标值、全局归一化参数)计算的预处理都会造成时序泄漏,使验证分数虚高。若要调参还可用嵌套 CV(nested CV): 外层滚动窗口做模型评估、内层窗口做超参数搜索,避免选择偏差。
💡使用场景
股票/销量/流量预测、风控与推荐等一切带时间戳的建模; 面试常问“时序数据怎么做交叉验证”“为什么随机 K-Fold 会高估性能”“预测时有哪些未来信息要防”。
解决的核心痛点
随机 K-Fold 切分会把未来样本混进训练集,模型“偷看”未来后 CV 分数虚高,上线时性能断崖式下降; walk-forward 精确模拟真实在线环境(每一步只依据历史做出预测),给出诚实的泛化估计——它牺牲了部分训练数据量(早期窗口数据少),换取与线上一致的时间顺序完整性。
🎯5 个高频面试考点 (Exam Points)
1
为什么随机 K-Fold 在时序数据上失效? 具体泄漏路径是什么(举例: 预测 t+1 用了 t+1 及之后的样本)?
2
画/描述 walk-forward 滚动窗口流程: 第 k 步训练区间、验证区间、滚动步长如何选择?
3
归一化、缺失值填充、目标编码在时序建模中怎么处理才不泄漏(必须只用历史窗口统计)?
4
嵌套 CV(nested CV)是什么? 外层内层各做什么, 解决什么偏差?
5
walk-forward 与常规 K-Fold 在偏差-方差与计算成本上的差异? 什么情况下损失可接受?
📖 关联深度指南:📄 ml-math-and-eval-metrics
更新于 2026-08-12
🎯
检验攻克程度:针对「时序交叉验证」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点K-Fold 交叉验证下一个知识点类别不平衡

🔗 更多 经典机器学习 知识点卡片

AdaBoost 算法手推Bagging 与随机森林HMM 参数学习 Baum-WelchGBDT 负梯度拟合