一、过拟合的本质:从一次惨痛教训说起

我记得刚入行那会儿,做过一个CTA策略。回测曲线漂亮得不像话——年化收益40%,最大回撤不到5%。我当时兴奋得差点直接上实盘。

还好带我的老大哥拦住了我。他说:「你把这个策略放到样本外试试。」结果呢?样本外直接亏了30%。

嗯,这就是过拟合。说白了,你让模型记住了历史数据里的「噪音」,而不是真正的「信号」。

1.1 什么是过拟合

过拟合,就是模型在训练数据上表现极好,但在新数据上一塌糊涂。

我习惯用一个比喻来解释:你让一个学生死记硬背了所有考试题的答案,结果考试时题目稍微变个数字,他就懵了。

在量化策略里,过拟合意味着你的策略参数、规则、信号,都是针对某一段历史行情「量身定制」的。换一段行情,它就失效了。

核心定义:过拟合 = 模型复杂度 > 数据中真实信号的复杂度

你想想看,如果你的策略有50个参数,但有效数据只有100天,那每个参数平均只能分到2天的数据来「学习」。这怎么可能学到真东西?

1.2 过拟合在量化策略中的表现

我在项目中遇到过不少过拟合的案例。总结下来,有这几个典型症状:

  • 回测完美,实盘拉胯——这是最明显的信号。回测曲线像一条45度向上的直线,实盘却像过山车。
  • 参数极其敏感——稍微改一个参数值,比如移动平均线从20日改成21日,收益就从正变负。这其实是个危险信号。
  • 策略规则过于复杂——什么「当MACD金叉且RSI大于70且布林带收窄且成交量放大且...」——规则越多,越容易过拟合。
  • 样本内和样本外表现差距巨大——我习惯把数据分成三段:训练集、验证集、测试集。如果训练集收益30%,测试集只有5%,那基本可以断定过拟合了。

避坑指南:我曾经见过一个策略,在回测里连续5年每年收益超过50%。结果实盘3个月就亏了20%。后来复盘发现,策略里有一个「如果某天涨跌幅超过5%就开仓」的规则——而回测那5年恰好有几次大波动行情,实盘期间却风平浪静。这就是典型的「过拟合到特定行情模式」。

1.3 过拟合与欠拟合的对比

欠拟合是另一个极端——模型太简单,连训练数据里的规律都没学到。说白了,就是「该记住的没记住」。

我习惯用一张表格来对比:

维度 过拟合 欠拟合
训练集表现 极好(甚至完美)
测试集表现
模型复杂度 过高 过低
偏差
方差
典型原因 参数太多、数据太少、过度优化 特征不足、模型太简单
解决方向 简化模型、增加数据、正则化 增加特征、提升模型复杂度

你想想看,过拟合和欠拟合其实是一个「度」的问题。模型太复杂,它就开始「背答案」;模型太简单,它连基本规律都抓不住。

我个人习惯用「偏差-方差权衡」来理解这件事:

  • 高偏差(欠拟合):模型对数据的假设太强,比如硬要用一条直线去拟合一个正弦波。
  • 高方差(过拟合):模型对数据的细微变化太敏感,比如稍微换几个数据点,拟合出来的曲线就完全不一样。

好的模型,就是在偏差和方差之间找到平衡点。嗯,这个平衡点没有标准答案,得靠经验去试。

1.4 知识体系框架

下面这张图,是我自己梳理的过拟合知识体系。你可以把它当作本章的「地图」:

过拟合知识体系 过拟合的本质 定义:记住噪音而非信号 表现:回测好实盘差 对比:过拟合 vs 欠拟合 模型复杂度 > 信号复杂度 死记硬背历史数据 参数敏感度高 规则过于复杂 样本内外差距大 过拟合:高方差低偏差 欠拟合:低方差高偏差 平衡点:偏差-方差权衡 核心目标:找到泛化能力最强的模型 在「记住规律」和「忽略噪音」之间取得平衡

我的经验:刚开始做量化时,我总觉得策略越复杂越厉害。后来被市场教育了几次,才明白「简单即有效」的道理。现在我设计策略,第一原则就是:能用3个参数解决的问题,绝不用5个

过拟合不是洪水猛兽,它是每个量化交易者都会踩的坑。关键在于你能不能识别它、理解它、最后避免它。

嗯,这一章我们先把「过拟合是什么」搞清楚。下一章,我会带你看看过拟合在回测中具体怎么「伪装」成好策略的。


蓝海数据掘金营,专注资料整理