把 ML 用在交易上的正确预期是:它是一个更强大的非线性因子合成器,而不是 alpha 印钞机。数据信噪比极低(月度收益的 R² 上限常在 1%–5%)、样本量相对不足、分布持续漂移——ML 的每一个优势在这里都被打折,每一个过拟合风险都被放大。本篇讲务实的用法;ML 的定位与方法论全景见ML 在量化中的定位 。
特征工程:ML 策略 70% 的产出在这里
模型差距(LightGBM vs 线性)通常只有几个点的 IC 提升,特征差距(原始因子 vs 精构特征)常是翻倍的差距。金融特征的三个构造维度(详见特征工程 ):
- 时序维:同一变量的多窗口统计(5/20/60 日动量、波动、偏度)+ 变化率与趋势状态;
- 截面维:行业内分位、相对行业的偏离、市值域内的排名——把「绝对水平」转成「相对位置」;
- 交叉维:变量交互(量 × 价 × 波动),树模型能自动学交互,但显式构造「高量低波上涨」这类语义特征仍更稳。
特征筛选的金融特有纪律:相关性聚类去冗余(300 个原始特征的有效维度常只有 30–50)+ 稳定性检验(特征重要性在滚动窗口上的方差——重要性漂移的特征是噪声探测器)。
树模型:金融表格数据的最优默认
**梯度提升树(LightGBM/XGBoost/CatBoost)**是金融 ML 的事实标准,原因务实:表格数据上几乎总优于神经网络;对特征尺度不敏感(省标准化工程);提供特征重要性(可解释性入口);训练快(滚动重训的现实约束)。
目标变量的设计比模型选择更重要:
- 回归目标:下期收益直接回归(信噪比低)→ 改进:波动率标准化后的收益(风险调整残差)、行业中性化后的超额收益;
- 分类目标:涨跌方向(信息量损失大,胜率 52% 的分类模型可能毫无交易价值——把概率转成期望再评估);
- 排序目标:Learning to Rank(LambdaRank)直接优化「排序质量」,与横截面策略的目标函数天然对齐(见监督学习 )。
一条关键改造——purged K-Fold(去泄漏交叉验证):金融时序的标签有重叠期(用 20 日收益做标签,相邻样本共享 19 日数据),随机 K 折会把「未来样本」漏进训练集;正确的 CV 要清除(purge)训练集中与验证集时间重叠的样本并加 embargo(禁运期)。这是金融 ML 与普通 ML 的分水岭细节,写论文与做产品都必须遵守(López de Prado《Advances in Financial Machine Learning》的核心贡献之一)。
深度学习:何时值得上
诚实的答案:多数个人与中小团队不值得。DNN 在金融的价值区间很窄:数据量大(日内高频、订单簿)、输入结构高维(L2 全档位、截面全因子矩阵)、且有专门的特征工程团队时,LSTM/Transformer/TabNet 才开始显著超越树模型(幻方级的 AI 量化正是这个形态,见梁文锋 的人物志)。日频 + 数十个特征的典型个人场景,DNN 的过拟合管理成本远超收益(深水区的模型细节见深度学习量化 )。
过拟合与样本外:ML 策略的生死线
ML 的表达力让过拟合从「风险」升级为「必然事件」,防线必须成体系:
- 样本外分层:训练区(最早 60%)→ 验证区(中间 20%,调参与早停)→ 测试区(最近 20%,全程封存,只开一次箱)。开箱后模型定型;「开箱 → 不满意 → 调参 → 再开箱」等于没有测试区;
- Walk-Forward 滚动验证:模拟真实使用(滚动训练 + 逐段样本外),绩效只统计样本外段——与传统策略的验证标准统一(见Walk-Forward );
- 复杂度与样本量匹配:经验法则——样本数/特征数 < 50 时,正则化拉满 + 模型降维(线性或浅树);深度模型只在样本以百万计时考虑;
- 多重比较加倍:ML 的调参次数(贝叶斯优化动辄上百次试验)本身就是数据挖掘——记录试验次数,绩效做 deflated 校正(见多重检验 与AutoML );
- 绩效门槛抬高:ML 策略的样本外夏普能稳定达到传统多因子的 1.2–1.5 倍才算「值得」,因为你要为它的黑箱性、算力与维护复杂度付溢价。
ML 策略的工程形态
生产化的 ML 策略是一个滚动流水线而非一次性模型:每日特征更新 → 周期性重训(月/季,数据漂移的对付手段)→ 模型注册与版本化(新旧模型并行跑影子模式对比,见实验设计 )→ 预测落因子库 → 走与普通因子完全相同的组合与风控管线。把 ML 输出当作「又一个因子」而非「另一个世界」——这让 ML 享受既有基础设施(检验、监控、下线协议),也让它的黑箱性被体系约束住(见ML 在量化中的定位 的边界讨论)。