阶段8机器学习基础●●●●●

Purged K-Fold与Embargo:按真实标签区间隔离

我的掌握程度:
q-710精讲

先掌握这个答案

Purge删除训练集中标签观察区间与验证标签区间重叠的样本;必须比较实际区间而非简单减若干自然日。Embargo在验证区间之后再留缓冲,长度取决于信息依赖结构。Purged K-Fold可包含验证期前后的训练样本,因此不等于模拟上线顺序;walk-forward只用过去训练,应另做终审。TimeSeriesSplit的gap可处理部分固定间隔,但不能自动替代所有重叠区间检查。

先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。

从理解到使用

按标签区间检查泄漏

以实际预测目标设计时间切分,检查每条标签观察区间是否跨过验证边界。标准化、填充、特征选择和调参仅在训练内拟合;只按日期切开仍可能因标签重叠产生泄漏。

核对来源:scikit-learn:时间序列交叉验证 ↗
本阶段实战方法 · 把验证流程当作模型的一部分

训练选股模型或使用另类数据时,先保证训练过程没有接触预测时不可得的信息。

  1. 定义每个样本的特征可得时间和标签覆盖区间,再按预测场景设计时间切分。
  2. 归一化、缺失填充、特征选择和调参只在训练集拟合;重叠标签要按实际区间purge。
  3. 用朴素基线和多段滚动样本外比较,报告成本、稳定性、漂移与全部实验次数。

使用边界

  • 排行榜或验证集反复用于挑模型后也会过拟合;留一份最终测试集。
  • 随机切分不是所有问题都禁止,但金融未来预测必须尊重时点和标签重叠,说明验证目标。
背景 · 从一个困惑说起
两个样本的预测时点不同,但标签都用到同一周的未来收益。把它们分进训练和验证后,模型就可能间接接触验证信息。
由此产生的问题
Purge究竟删除什么,Embargo与走查验证又是什么关系?
核心概念
Purge删除训练集中标签观察区间与验证标签区间重叠的样本;必须比较实际区间而非简单减若干自然日。Embargo在验证区间之后再留缓冲,长度取决于信息依赖结构。Purged K-Fold可包含验证期前后的训练样本,因此不等于模拟上线顺序;walk-forward只用过去训练,应另做终审。TimeSeriesSplit的gap可处理部分固定间隔,但不能自动替代所有重叠区间检查。
为什么需要它
日期不同不代表信息独立;固定N日也可能混淆交易日、自然日和不同标签持有期。
实际应用场景
为每个样本保存预测时点、特征截止时间和标签结束时点;按信息区间求交集,再单独验证模拟实盘的前向切分。
与之前知识的联系
q-702定义标签,q-707处理时间切分;结合q-709的嵌套选择避免调参再污染外层评估。
⚠ 常见误解
  • 只用过去训练的示例属于purged walk-forward,不应直接命名完整K-Fold。
  • Embargo不是一律取特征窗的1/4,应有数据依赖依据。
  • CV无泄漏也不能消除分布漂移、成本与容量问题。

🤖 AI导师

导师会先检查你的前置知识(走查验证、标签重叠问题、交叉验证),再用案例、公式和代码帮助理解。此功能需要先启用服务。