1、过拟合的本质:什么是过拟合、过拟合在交易中的表现、过拟合与欠拟合的对比、为什么交易模型容易过拟合
1.1 到底什么是过拟合?
先讲个我自己的经历。几年前我做CTA策略,回测曲线漂亮得像教科书里的范例——年化收益40%,最大回撤不到5%。我当时兴奋得不行,直接上了实盘。结果呢?三个月亏了15%。
问题出在哪?说白了,我的模型把历史数据里的「噪音」当成了「信号」。它记住了过去某段行情里所有偶然的波动,却没学会真正的规律。这就是过拟合。
用专业点的话说:过拟合是指模型在训练数据上表现极好,但在新数据(比如实盘)上表现很差。 模型学到的不是市场规律,而是数据中的随机噪声。
核心定义: 过拟合 = 模型记住了「历史细节」,而不是「市场规律」。
1.2 过拟合在交易中的典型表现
我在项目中遇到过不少过拟合的案例,总结下来有这几个特征:
- 回测曲线过于完美——几乎不回撤,每年稳定盈利。真实市场哪有这种好事?
- 参数极其敏感——参数稍微调一点点,收益就从正变负。你想想看,一个稳健的策略会这么脆弱吗?
- 样本外测试崩盘——回测时风光无限,一放到没见过的数据上就原形毕露。
- 策略复杂度爆炸——用了几十个特征、上百个参数,每个参数都「精心调过」。嗯,这基本就是过拟合的标配。
避坑指南: 我曾经见过一个团队,用LSTM做了50个特征输入,回测夏普比高达3.5。结果实盘一周就亏了8%。后来复盘发现,模型学到的其实是数据中的「时间戳模式」——比如每天收盘前几分钟的异常波动。这种模式在样本外根本不存在。
1.3 过拟合 vs 欠拟合:一对难兄难弟
为了让你更清楚,我画了个对比表:
| 维度 | 过拟合 | 欠拟合 |
|---|---|---|
| 训练集表现 | 极好(几乎完美) | 较差(学不到位) |
| 测试集表现 | 很差(崩盘) | 较差(跟训练集差不多) |
| 模型复杂度 | 过高(参数太多) | 过低(参数太少) |
| 本质问题 | 记住了噪声 | 没学到信号 |
| 交易中的后果 | 实盘亏钱,回测好看 | 回测和实盘都亏钱 |
你可能会问:那欠拟合是不是比过拟合好?其实都不是好东西。但说实话,在量化交易里,过拟合比欠拟合更可怕。为什么?因为欠拟合至少让你知道「这策略不行」,而过拟合会给你虚假的信心,让你亏得不明不白。
1.4 为什么交易模型特别容易过拟合?
这个问题我思考了很久。我个人习惯把原因归结为三点:
- 信噪比极低——金融数据里,真正的信号可能只占1%,剩下99%都是噪声。模型稍微一用力,就把噪声学进去了。
- 数据量有限——你想想看,A股从1990年到现在也就30多年数据。对于深度学习模型来说,这点数据量根本不够吃。我见过有人用Transformer做日频交易,训练集只有5000个样本,参数却有10万个——这不叫深度学习,这叫「深度过拟合」。
- 回测的「幸存者偏差」——我们做回测时,往往只看到活下来的股票。那些退市的、暴跌的,早就被剔除了。模型学到的规律,可能只适用于「幸存者」。
我的经验: 每次做策略回测,我都会问自己一个问题——「如果我把数据随机打乱,模型还能赚钱吗?」如果能,那说明模型学到的只是时间序列上的偶然模式,而不是真正的因果关系。这个测试我称之为「随机标签检验」,建议你也试试。
1.5 本章知识体系图
下面这张图帮你理清过拟合的核心逻辑:
1.6 小结
过拟合不是理论问题,而是真金白银的教训。我见过太多人因为回测曲线好看就冲进去,结果亏得血本无归。记住一句话:回测是历史,实盘是未来。模型学到的如果是历史细节,那它在未来注定失效。
下一节我们会深入讨论过拟合的数学原理和检测方法。但在此之前,我希望你先把这节内容消化掉——尤其是那张知识体系图,它是我多年经验的浓缩。