正则化:给模型戴上"镣铐"的艺术
我的掌握程度:
先掌握这个答案
四类镣铐:①L2(Ridge):系数平方惩罚——压小所有系数,不归零;适合「因子都有点用」的合成场景;②L1(Lasso):绝对值惩罚——把弱因子系数压到恰零(自动选择);适合因子筛选,但因子相关时选择不稳定(弹性网络ElasticNet折中);③树模型正则:min_data_in_leaf(叶样本量)、lambda_l2、深度限制——q-731调参纪律的主角;④早停(Early Stopping):验证集不再提升就停——最优雅的正则(q-733),但注意「验证集选择」本身消耗了验证数据。选择逻辑:正则强度由CV(Purged版!)选——但这本身是选择,会引入轻微过拟合——所以只调2-3档(弱/中/强)而非精细网格。代价清单:偏差上升(真信号也被压)、特征效应被稀释(L2下相关因子分摊系数)、解释变难(被压的因子说不清是真没用还是被冤枉)。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
本阶段实战方法 · 把验证流程当作模型的一部分
训练选股模型或使用另类数据时,先保证训练过程没有接触预测时不可得的信息。
- 定义每个样本的特征可得时间和标签覆盖区间,再按预测场景设计时间切分。
- 归一化、缺失填充、特征选择和调参只在训练集拟合;重叠标签要按实际区间purge。
- 用朴素基线和多段滚动样本外比较,报告成本、稳定性、漂移与全部实验次数。
使用边界
- 排行榜或验证集反复用于挑模型后也会过拟合;留一份最终测试集。
- 随机切分不是所有问题都禁止,但金融未来预测必须尊重时点和标签重叠,说明验证目标。
背景 · 从一个困惑说起
低信噪比世界里,模型的自由度是危险的资产——它总会拿多余的自由去记噪声。正则化就是主动没收一部分自由度:宁要偏见的简单,不要自由的过拟合。
由此产生的问题
L1/L2/树模型正则/早停四类镣铐各自的机制与金融场景选择?正则化强度怎么选(又不犯多重检验)?「正则化的代价」清单?
核心概念
四类镣铐:①L2(Ridge):系数平方惩罚——压小所有系数,不归零;适合「因子都有点用」的合成场景;②L1(Lasso):绝对值惩罚——把弱因子系数压到恰零(自动选择);适合因子筛选,但因子相关时选择不稳定(弹性网络ElasticNet折中);③树模型正则:min_data_in_leaf(叶样本量)、lambda_l2、深度限制——q-731调参纪律的主角;④早停(Early Stopping):验证集不再提升就停——最优雅的正则(q-733),但注意「验证集选择」本身消耗了验证数据。选择逻辑:正则强度由CV(Purged版!)选——但这本身是选择,会引入轻微过拟合——所以只调2-3档(弱/中/强)而非精细网格。代价清单:偏差上升(真信号也被压)、特征效应被稀释(L2下相关因子分摊系数)、解释变难(被压的因子说不清是真没用还是被冤枉)。
为什么需要它
①金融ML的第一生存法则:q-701说信噪比低——正则化是针对它的第一道系统防御(先戴镣铐再跳舞);②「简单」的数学化:奥卡姆剃刀在ML里的三种实现(惩罚/早停/降维)——它们互相部分替代,组合不必贪多;③报告规范:正则强度与选择过程(试了几档)写进实验日志——它属于「N次尝试」要计入DSR。
实际应用场景
起步套餐:Ridge(α由3档粗选)或LightGBM安全参数(q-731模板自带正则)+早停100轮——这个组合在金融数据上打败绝大多数「精细调参」。
与之前知识的联系
q-713(九信号)里①⑤⑧(分差/学习曲线/特征数)都是缺正则的症状;q-270(阶段3 Ridge/Lasso)的ML延伸;q-731(调参纪律)把正则纳入秩序。
⚠ 常见误解
- 正则越强越稳:过强=欠拟合(把信号和噪声一起压死)——验证分数随强度的U型曲线要扫出来
- Lasso选出的因子就是真因子:相关因子间Lasso选择随机(这次选A下次选B)——它给「一组等价解」而非「唯一真相」
- 早停可以无限依赖:它消耗验证集信息(停的时机=一种选择);验证集反复用于早停+调参会逐渐污染它——终审测试集永远另留
🛠 本题实践任务
对你的合成模型做正则三档扫描(弱/中/强),画「强度-验证IC」的U型曲线并选档;把尝试档数记入实验日志的N。
💡 提示(先自己想5分钟再看)
U型谷底即最优;若曲线单调(越强越好或越弱越好)——检查特征工程或标签是否有问题(信号本身太弱)。
✅ 验收标准
一条U型曲线+选档理由+N记账。镣铐艺术入门。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(过拟合信号、线性回归),再用案例、公式和代码帮助理解。此功能需要先启用服务。