如何验证过拟合的相关信息?
直接答案
过拟合的信息可以通过检查模型在历史数据上的表现是否能在严格、可重复的评估流程中持续成立来验证。验证应关注三个方面:定义(什么是过拟合)、机制(训练与测试如何分离)以及失败模式(数据泄露或不稳定模式如何导致误导性结果)。由于市场数据、成本、执行和假设可能存在差异,你不应将任何单一回测结果视为充分的验证依据。
机制与定义
过拟合发生在某个方法过度拟合了数据集的特定细节——包括噪声——以至于其在新数据上的表现比在训练数据上更差。对此的一种实用表达方式是:
- 如果模型在训练数据上的表现提升,但在未用于训练的数据上未见提升,则这种差异与过拟合一致。
- 如果模型表现对微小选择变化(特征、超参数、阈值)高度敏感,这种敏感性也是警示信号。
在验证过程中,关键是要严格区分(1)用于构建或调优方法的数据,与(2)仅用于评估的数据。评估必须在调优完成后进行,而非在调优过程中进行。
证据与可复现的验证步骤
采用可复现的“验证层级”结构。从简单的检查开始,逐步推进到更严格的验证。
第1级:基本的样本外比较
- 将数据集划分为训练部分和评估部分。
- 仅使用训练部分来拟合或调优方法。
- 使用最终固定的设置,在评估部分上进行一次评估。
- 记录训练和评估结果,并比较两者之间的差距。
前提假设:你在两部分数据上测量的是相同的目标变量和评估指标,且评估集未影响任何设计决策。
第2级:在多个划分上重复评估
为降低单一分割导致误导性结果的风险:
- 创建多个不同的训练/评估划分(例如,多个数据折)。
- 对每个划分,重复完整流程:使用该划分的训练数据进行调优,然后在该划分的保留评估数据上进行评估。
- 汇总各划分上的评估结果分布。
重要限制:即使多次划分,若划分方法未考虑时间顺序,仍可能忽略时间性数据泄露。若数据具有时间顺序,划分应保持时间顺序,以避免用未来信息评估过去。
第3级:基于固定规则的前向式测试
更严格的方法是模拟前向评估:
- 选择一个训练窗口,并仅使用该窗口进行调优。
- 使用调优后的设置,在接下来的后续时间段上进行评估,期间不作任何更改。
- 可选地向前滚动窗口并重复。
前提假设:在评估开始前,调优规则已冻结。这有助于验证所“学习”到的关系是否能推广到训练期之外。
第4级:常见验证失败模式的检查
至少应明确测试一种实质性的失败模式:
- 数据泄露:确保所有预处理、特征工程、缩放或选择仅使用每个划分的训练数据完成。
- 多重测试 / 重复搜索:若尝试了多种变体而仅报告最佳结果,评估可能产生偏差。验证应追踪整个搜索过程,而不仅是最终胜出者。
- 对选择的敏感性:使用合理且预先指定的变体(例如,略有不同的超参数或特征集)重新运行验证,检查评估结果是否保持稳定。
局限性与风险
多个局限性意味着,即使你能验证过拟合行为,也无法确定预测未来结果:
- 历史关系不能保证未来结果;当底层数据生成过程发生变化时,表现可能随之改变。
- 成本和执行影响可能导致实际结果与简化评估结果不一致。
- 假设的微小变化(测量内容、数据划分方式、预处理处理方式)可能改变结论。
应将过拟合验证视为评估泛化风险的一种方式,而非对未来表现良好的保证。
验证或下一个问题
如果你想验证某个关于过拟合的具体主张,请将其改写为可测试的陈述,例如:“训练表现始终高于样本外表现”,或“评估结果在不同划分间不稳定”。然后应用第1–3级方法,结合抗数据泄露的预处理和固定的调优规则进行验证。