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]
选择阶段的优胜者不一定在后续测试中获胜
要获得更完整的理解,请将本词条与以下词条结合阅读: Backtesting, Walk-forward Analysis, Look-ahead Bias, Paper Trading, Trading Journal. 反向关联还来自: Technical analysis, Technical indicator, Moving average crossover, Relative Strength Index.
01简单策略也可能过拟合吗?+
可能。最终的简单规则可能是依据同一批数据,从多次尝试中选出的。重要的是整个搜索过程,而不只是公布版本中的参数数量。
02每个糟糕的后续结果都能证明过拟合吗?+
不能。它也可能与市场变化、成本、错误数据或短期的偶然情况有关。必须检查方法和条件;单次结果差异不能确定原因或过拟合概率。