600 / 736FIT

Overfitting

过拟合

Overfitting 发生在规则过度适应开发数据的细节和噪声,无法良好迁移到新观测时。在交易中,它既可能涉及模型,也可能涉及从众多策略中进行选择。因此,出色的历史结果需要对整个流程进行严格分离的评估。

Overfitting 是模型或决策规则适应可用开发样本的特殊之处,却损害了将关系推广到其他数据的能力。它也涉及候选项之间的选择过程;不能仅凭同时用于决定优胜者的结果来判断质量。

QuantConnect 将 Overfitting 描述为过度贴合有限训练集,捕捉其细节和噪声,却损害新数据上的表现。我们的区分是:问题并不在于从历史中学习本身,而在于把特定样本的性质误当作可以迁移的规律。在交易中,人工编制的一组条件也可能过拟合,并非只有复杂的自动模型才会如此。因此,开发数据上的漂亮曲线或良好分数,还不能独立证实流程的质量。 [1]

scikit-learn 文档展示了两类模型的区别:过于简单、无法捕捉关系的模型,以及对特定训练样本敏感的模型。我们的推论是:仅凭参数数量不足以认定过拟合。简化模型或限制其灵活性可能有所帮助,但也可能消除有用的关系。决策应基于预先确定的评估,在适当且分离的数据上进行。即使事后根据已经看过的测试选择最简单的变体,也不能恢复该测试的独立角色。 [2]

Bailey 及其合著者提醒,在同一数据上反复试验策略可能产生假阳性发现。我们的方法结论是:不仅要记录优胜者的参数,还要记录之前的候选项、规则变更和选择标准。即使最终策略很简单,也可能是大规模搜索的产物。从它的最终描述中看不出选择过程产生的压力。不能仅凭变体数量确定过拟合概率;它还取决于数据、数据间的依赖关系以及搜索方式。 [3]

scikit-learn 的嵌套验证示例将内部参数选择与对整个选择流程的外部评估分开。把同一结果同时用于选择和展示质量,会导致过于乐观的分数。我们的要求是在实验前说明这条边界,并将预处理和指标选择也纳入选择流程。如果根据外部结果继续修改设计,这些信息也已经进入开发。嵌套结构并不意味着可以针对同一个最终测试反复调优。 [4]

scikit-learn 文档提醒,假定样本独立的常规划分方法,可能对具有时间依赖性的数据产生有偏的泛化估计。因此,我们对交易测试的检查保留信息顺序,并核查每项用于决策的输入,以及每个用于训练或选择规则的目标结果,是否在相应时点已经可用。后续期间不应替较早时点选择规则。Walk-forward Analysis 有助于描述这一顺序,但根据同一批结果反复修改其协议,仍然属于开发,而不是新的独立证据。 [5]

scikit-learn 要求仅在训练部分学习归一化或特征选择等变换,然后再将其应用于测试。我们的区分是:不可用信息的泄漏与过拟合相互关联,却不是同一个问题。即使不能访问未来数据行,策略也可能拟合噪声;反过来,即使模型简单,泄漏也可能产生乐观分数。因此,我们检查的不只是表格如何划分,而是从数据准备到最终决策的整个流程。 [6]

scikit-learn 的验证曲线和学习曲线,在改变设置或数据量时比较训练部分与验证部分的表现。我们的解释边界是:较差的后续结果本身不能证明某个唯一原因。市场环境、数据质量或执行成本都可能变化;较短区段也可能受到偶然因素影响。我们考察相邻设置的稳定性和条件差异,但会记录查看结果后的每一次新搜索。诊断不应被当作自动获得的统计认证。 [2]

NFA 提醒,假设结果不是真实交易,不能充分反映流动性、Slippage 或面对真实亏损时的反应。因此,我们的报告区分开发结果与后续结果,列出所有已知尝试、成本和数据限制。任何可能开展的进一步验证,都必须在开始前记录规则。方法错误风险较低,并不等于已经证实具有交易优势。即使是尚未使用的数据,也不能保证未来市场条件下的结果。 [7]

示例示例 · FIT

选择阶段的优胜者不一定在后续测试中获胜

我们自拟的虚构示例有三个预先确定的候选项 A、B 和 C,均采用相同的固定规模。它们在三个选择期间的模型净结果为 A [8, 10, 12] USD、B [6, 8, 10] USD 和 C [4, 6, 8] USD。总和按 A、B、C 的顺序为 [30, 24, 18] USD。预先给定的规则选择最高的选择期总和,如遇相等则选择这一顺序中的首个候选项;因此,它在后续期间开始前选择 A。只有在此之后,我们才揭示三个连续测试期间的结果:A [-6, -4, -2] USD、B [1, 2, 3] USD 和 C [0, 1, 2] USD。它们的测试总和为 [-12, 6, 3] USD。因此,选中的 A 在测试中得到 -12 USD。初始测试现金为 1000 USD,结束时为 988 USD。选择期利润 30 USD 不加入这笔现金。规模固定,所列金额已经包含全部模型成本,每个期间结束时均无未平仓头寸;我们不假设存在债务或外部现金流。示意图比较每个候选项的选择期总和与后续总和。事后看到 B 获胜,并不允许改写最初选择 A 的决定。示例展示了选择阶段的排名未能迁移到测试中,但本身不能证明过拟合是唯一原因,也不估计其概率。这不是真实市场结果,也不是选择某一具体策略的指南。

要获得更完整的理解,请将本词条与以下词条结合阅读: Backtesting, Walk-forward Analysis, Look-ahead Bias, Paper Trading, Trading Journal. 反向关联还来自: Technical analysis, Technical indicator, Moving average crossover, Relative Strength Index.

01简单策略也可能过拟合吗?

可能。最终的简单规则可能是依据同一批数据,从多次尝试中选出的。重要的是整个搜索过程,而不只是公布版本中的参数数量。

02每个糟糕的后续结果都能证明过拟合吗?

不能。它也可能与市场变化、成本、错误数据或短期的偶然情况有关。必须检查方法和条件;单次结果差异不能确定原因或过拟合概率。

DOC · 001QuantConnect — Optimization Parameters文档 DOC · 002scikit-learn — Validation and Learning Curves文档 DOC · 003Bailey et al. — The Probability of Backtest Overfitting一手来源 DOC · 004scikit-learn — Nested versus Non-nested Cross-validation文档 DOC · 005scikit-learn — Cross-validation: Evaluating Estimator Performance文档 DOC · 006scikit-learn — Common Pitfalls: Data Leakage文档 DOC · 007NFA — Use of Promotional Material Containing Hypothetical Performance Results文档
修订日期: 来源优先 · 非投资建议