阶段8ML实战检验●●●●●

OOS预测拼接:金融ML唯一诚实的成绩单

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

先掌握这个答案

OOS拼接流程:for 每年T:用≤T-1的数据(特征工程→特征筛选→训练全部在段内完成!)→预测T年每日分数→按日期append。最后把拼接的分数序列送入标准因子流水线(分层/组合/成本)。三个ML坑:①重训频率:月度重训通常优于年度(跟上风格)也优于日度(噪声+算力);②特征筛选也必须段内:全样本选出的特征偷看了未来——最常见的隐蔽泄漏;③跨段换手:重训导致预测跳变→换手尖峰→成本尖峰,需平滑处理(新旧预测加权过渡3-5日)。

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

从理解到使用

本阶段实战方法 · 把验证流程当作模型的一部分

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

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

使用边界

  • 排行榜或验证集反复用于挑模型后也会过拟合;留一份最终测试集。
  • 随机切分不是所有问题都禁止,但金融未来预测必须尊重时点和标签重叠,说明验证目标。
背景 · 从一个困惑说起
全样本训练再「回测」,本质是让模型考试前背了整本答案册(q-712的旧病)。金融ML的终审只有一种形式:把时间切成段,每段的预测都只来自它之前的岁月——然后把所有「真样本外预测」拼成一条完整曲线。它就是走查验证(q-592)的ML版,但多了三个ML特有的坑。
由此产生的问题
OOS拼接的完整流程是什么?ML特有的三个坑(重训频率/特征库快照/跨段换手)怎么处理?
核心概念
OOS拼接流程:for 每年T:用≤T-1的数据(特征工程→特征筛选→训练全部在段内完成!)→预测T年每日分数→按日期append。最后把拼接的分数序列送入标准因子流水线(分层/组合/成本)。三个ML坑:①重训频率:月度重训通常优于年度(跟上风格)也优于日度(噪声+算力);②特征筛选也必须段内:全样本选出的特征偷看了未来——最常见的隐蔽泄漏;③跨段换手:重训导致预测跳变→换手尖峰→成本尖峰,需平滑处理(新旧预测加权过渡3-5日)。
为什么需要它
①「唯一」的含义:全样本训练的任何指标都不构成证据——只有拼接曲线能回答「这个系统在真实时间流里会怎样」;②三个坑的普遍性:90%的「ML选股回测」死于坑②(特征筛选泄漏)——它藏在管线最不起眼的一步;③与Purged CV的分工:PKF给研究期的稳健估计(快、多路径),OOS拼接给上线前的终审(慢、唯一路径)——先PKF筛设计,再拼接定生死。
实际应用场景
验收清单:拼接分数的逐年IC表、拼接多空净值、与「全样本训练版」的差距(差距=泄漏量的直观读数)、跨段换手成本明细。
与之前知识的联系
q-592给了协议、q-710给了段内洁净、本题给了ML工程化的最后拼图;阶段9的Kaggle「本地CV与LB一致性」正是同一思想在竞赛场景的变体。到这里,金融ML的「验证纪律」体系完整闭环。
⚠ 常见误解
  • 拼接IC 0.05比全样本的0.08差,模型变差了:0.08是掺水的、0.05是干货——低而真是金融ML的美德
  • 重训越频繁越跟上市场:重训噪声+换手成本随频率上升;月度是经验甜点而非教条(用实验定)
  • 特征筛选用全样本没关系,反正模型是段内训的:筛选=用数据决定「学什么」——它和训练同罪,必须同锁在段内

🤖 AI导师

导师会先检查你的前置知识(走查验证、Purged CV、预测到组合),再用案例、公式和代码帮助理解。此功能需要先启用服务。