分布漂移与PSI监控:市场"变脸"的仪表盘
我的掌握程度:
先掌握这个答案
两类漂移:①特征漂移(covariate shift):输入分布变了——换手率因子的分布在小盘危机后整体右移(模型输入的脸变了);②概念漂移(concept drift):X与Y的关系变了——反转因子在机构化后失效(规律本身变了——更致命)。PSI计算:把特征分10箱,比较训练期与近期各箱占比——PSI=Σ(实际占比−预期占比)×ln(实际/预期)。读数:<0.1稳定;0.1-0.25漂移预警;>0.25显著漂移(必须行动)。三种处置:①特征级漂移→重估预处理参数(标准化参数刷新)或重训(月度例行吸收);②弱漂移→样本加权(近期加权,q-720);③概念漂移(因子IC同时恶化)→降权/下线该因子(q-944流程)——重训救不了"规律没了"。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
用模拟盘先验证系统行为
先演练重复信号、网络超时、断线重连和部分成交,检查订单幂等与持仓对账。回测结果不验证交易通道、延迟与容量;启动、暂停和恢复都要有明确条件与记录。
本阶段实战方法 · 把验证流程当作模型的一部分
训练选股模型或使用另类数据时,先保证训练过程没有接触预测时不可得的信息。
- 定义每个样本的特征可得时间和标签覆盖区间,再按预测场景设计时间切分。
- 归一化、缺失填充、特征选择和调参只在训练集拟合;重叠标签要按实际区间purge。
- 用朴素基线和多段滚动样本外比较,报告成本、稳定性、漂移与全部实验次数。
使用边界
- 排行榜或验证集反复用于挑模型后也会过拟合;留一份最终测试集。
- 随机切分不是所有问题都禁止,但金融未来预测必须尊重时点和标签重叠,说明验证目标。
背景 · 从一个困惑说起
q-701说金融数据非平稳——市场会"变脸"(注册制改变了小盘分布、危机改变了相关性)。模型是按"旧脸"训练的:脸变了它还按旧规律预测。PSI(群体稳定性指数)就是监测变脸的仪表盘。
由此产生的问题
分布漂移的两类(特征漂移/概念漂移)?PSI的计算与读数?漂移确认后的三种处置(重训/降权/下线)?
核心概念
两类漂移:①特征漂移(covariate shift):输入分布变了——换手率因子的分布在小盘危机后整体右移(模型输入的脸变了);②概念漂移(concept drift):X与Y的关系变了——反转因子在机构化后失效(规律本身变了——更致命)。PSI计算:把特征分10箱,比较训练期与近期各箱占比——PSI=Σ(实际占比−预期占比)×ln(实际/预期)。读数:<0.1稳定;0.1-0.25漂移预警;>0.25显著漂移(必须行动)。三种处置:①特征级漂移→重估预处理参数(标准化参数刷新)或重训(月度例行吸收);②弱漂移→样本加权(近期加权,q-720);③概念漂移(因子IC同时恶化)→降权/下线该因子(q-944流程)——重训救不了"规律没了"。
为什么需要它
①实盘ML的"心电图":上线不是终点——漂移监控是模型运维(MLOps)的核心仪表;区别"模型坏了"(漂移)与"市场坏了"(人人亏)——前者该行动后者该扛;②PSI的工程美:一个数字监控任何特征的分布变化——可解释、可报警、成本低(每月10分钟);③与失效监控的配合:PSI(输入脸)+滚动IC(输出准)双仪表——输入变输出准=漂移无害;输入稳输出崩=概念漂移(最凶)。
实际应用场景
实施:对top20重要特征每月算PSI(vs训练期);>0.25的特征列清单→处置决策表(重训/加权/剔除)——写进月度复盘(q-945)。
与之前知识的联系
q-720(样本加权)是处置②;q-944(停机)是处置③;q-771(滚动重训)是处置①的制度化;与q-618(模型失效监控)构成"模型健康双仪表"。
⚠ 常见误解
- PSI高=模型失效:输入分布变了但规律可能仍稳(漂移无害)——要配合输出指标(IC)联判
- 重训万能:它治特征漂移(新分布适配)不治概念漂移(规律消失)——后者是因子下线问题不是调参问题
- 漂移监控很难很贵:PSI十分钟实现、每月十分钟运行——"难"的印象来自没开始做
🛠 本题实践任务
为你的模型top5重要特征建PSI月检(vs训练期):当前读数如何?配合滚动IC做一次双仪表联判——你的模型健康属于哪类?
💡 提示(先自己想5分钟再看)
训练期基准冻结(快照纪律);PSI的箱用训练期分位数——保证两期可比。
✅ 验收标准
一张双仪表判读表。你的模型有了运维面板——上线后的它不再是黑箱而是有体检的病人。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(非平稳性、样本加权),再用案例、公式和代码帮助理解。此功能需要先启用服务。