标签重叠:看不见的样本串味与量化诊断
我的掌握程度:
先掌握这个答案
重叠数学:若标签窗口N=10,相邻样本最多共享N-1天未来——有效独立样本≈总量/N(10天的标签把「样本独立性」稀释10倍!)。这解释了两个现象:①随机CV虚高严重(验证样本的未来被训练样本反复见过);②统计显著性虚高(t值按总量算,按有效样本算才是真相——「IC的t值要除以√N修正」的来源)。诊断:标签序列的自相关(重叠标签必有高自相关)或「同日标签的相关性」直查。其他处理:①样本权重:重叠样本降权(总权重≈有效样本数——López de Prado的unique-label weighting);②缩短标签(N=5比N=20重叠轻);③HAL序列加权(时间越近权重越大+指数遗忘——治漂移不治重叠,别混)。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
本阶段实战方法 · 把验证流程当作模型的一部分
训练选股模型或使用另类数据时,先保证训练过程没有接触预测时不可得的信息。
- 定义每个样本的特征可得时间和标签覆盖区间,再按预测场景设计时间切分。
- 归一化、缺失填充、特征选择和调参只在训练集拟合;重叠标签要按实际区间purge。
- 用朴素基线和多段滚动样本外比较,报告成本、稳定性、漂移与全部实验次数。
使用边界
- 排行榜或验证集反复用于挑模型后也会过拟合;留一份最终测试集。
- 随机切分不是所有问题都禁止,但金融未来预测必须尊重时点和标签重叠,说明验证目标。
背景 · 从一个困惑说起
q-710给了Purged方案,这里解剖它针对的病灶本身:标签重叠。你的标签是「未来10日收益」——那么3月1日和3月5日的两个样本,有6天的未来是共享的。它们不是独立个体,是「串味」的邻居。
由此产生的问题
重叠的数学(有效样本量怎么缩水)?怎么量化自己数据的重叠度(自相关诊断)?除了purge还有什么处理法(样本权重/HAL)?
核心概念
重叠数学:若标签窗口N=10,相邻样本最多共享N-1天未来——有效独立样本≈总量/N(10天的标签把「样本独立性」稀释10倍!)。这解释了两个现象:①随机CV虚高严重(验证样本的未来被训练样本反复见过);②统计显著性虚高(t值按总量算,按有效样本算才是真相——「IC的t值要除以√N修正」的来源)。诊断:标签序列的自相关(重叠标签必有高自相关)或「同日标签的相关性」直查。其他处理:①样本权重:重叠样本降权(总权重≈有效样本数——López de Prado的unique-label weighting);②缩短标签(N=5比N=20重叠轻);③HAL序列加权(时间越近权重越大+指数遗忘——治漂移不治重叠,别混)。
为什么需要它
①「我有100万样本」的泡沫:重叠让有效样本可能只有10万——模型复杂度的选择、显著性的判定都要按有效数来;②显著性修正的自觉:论文/研报里未修重叠的t值普遍虚高——读别人的因子显著性时先问标签周期;③工程完整度:purge+权重双管齐下是金融ML的完整体(多数实现只有purge)。
实际应用场景
诊断三行:labels.autocorr(lag=1)(>0.3警惕)、有效样本≈len/N、报告两套t值(名义/有效)——诚实的研究附注。
与之前知识的联系
q-710(Purged)的病理学基础;q-702(标签设计)的隐藏成本项;q-713(过拟合九信号)的第七信号(种子敏感)常与重叠未处理有关。
⚠ 常见误解
- 样本多就是优势:重叠下一百万行≈十万独立信息——模型容量与显著性都要按有效数重估
- purge之后重叠就没了:purge保护验证不受污染,但训练集内部的重叠仍在(影响训练效率与权重)——样本权重补这一半
- 缩短标签就没有重叠:N=5仍重叠4天——只是减轻;除非N=1(超短标签,噪声大)没有银弹
🛠 本题实践任务
计算你项目的标签自相关与有效样本量;若有任何显著性报告(IC的t值),给出名义/修正两版。把「有效样本」写进实验日志的固定字段。
💡 提示(先自己想5分钟再看)
分组自相关按股票算再平均(否则混入横截面结构);修正t=t名义/√N是近似——严格版用Newey-West(q-268老朋友)。
✅ 验收标准
两个诊断数+双版t值。你的统计报表从「名义诚实」升级到「数学诚实」。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(Purged K-Fold概念、标签设计),再用案例、公式和代码帮助理解。此功能需要先启用服务。