什么是 过拟合?

过拟合(Overfitting)是一种泛化失败:模型或模型选择流程对有限训练数据、验证数据适配得过于具体,以至于它在目标分布的新数据上反而不如适配程度较低的候选方案。

快速了解

全称Overfitting
创建时间概念在统计学习理论中正式确立
规范文档官方规范

工作原理

过拟合相对于什么成立

过拟合总是相对于具体数据集、学习过程、选择流程、指标和目标分布成立。模型可能在抽样总体内泛化良好,却因线上分布变化而失败;也可能在训练集和新数据上都表现差,这属于欠拟合。诊断时应比较 Empirical Risk 与独立估计的 Target Risk,不能仅凭训练准确率给模型贴标签。

为什么泛化差距只是信号

优化器直接看过训练数据,因此训练损失低于验证损失是正常现象。只有在预处理参数仅由训练集拟合、同一实体没有跨 Split、时间顺序正确、指标匹配任务,且报告了不同 Split 或 Seed 的不确定性时,差距的大小与趋势才有解释力。scikit-learn 官方指南展示了数据泄漏如何让验证结果虚高,而不是暴露过拟合。

模型选择也会过拟合

当团队反复根据同一验证集调整特征、超参数、Checkpoint、Prompt 或阈值时,这个验证集已经进入优化闭环,其分数会产生乐观偏差。若同一份有限样本既用于选模型又用于报告性能,应保留最终未触碰的测试集,或使用 Nested Cross-validation;Cawley 与 Talbot 的研究说明,模型选择准则的方差足以造成显著选择偏差。

模型容量不等于参数数量

更灵活的模型确实可以拟合伪相关,但参数量大或训练误差为零都不能单独证明泛化差。现代过参数化模型可以在插值训练数据的同时保持良好泛化,因为 Architecture、Optimizer、Initialization、Data Augmentation、Margin 以及显式或隐式正则化都会影响最终解。Double Descent 研究也说明,经典的单一 U 型复杂度曲线不是普遍规律。

如何选择修复手段

修复应针对已经确认的根因,而不是看到「过拟合」标签就堆叠技巧。评测无效时先修正 Split 或 Leakage;数据覆盖不足时补充代表性样本;方差过高时再考虑降低有效容量、增加正则化、数据增强或提前停止;目标与特征错误时则要重做问题定义。最终性能只在未参与选择的测试集上确认,上线后继续监控 Drift。

主要特点

  • 由目标分布新数据上的期望性能变差定义,而不是由训练损失单独定义
  • 在具有代表性且无泄漏的评测中,常表现为持续扩大的训练—验证差距
  • 既可能发生在模型参数训练,也可能发生在超参数、特征、Checkpoint、Prompt 或阈值选择
  • 同时受数据量、噪声、Inductive Bias、优化过程、评测设计和模型容量影响
  • 可能被数据泄漏、重复实体、错误时间切分或分布漂移掩盖或模拟
  • 需要报告不同 Split、Seed 和关键业务切片的不确定性,单次总体分数不足以诊断

常见用途

  1. 解读训练与验证 Learning Curve,避免把单次波动当成确定诊断
  2. 选择模型容量、正则化强度或 Early-stopping Checkpoint
  3. 按照真实部署单元设计 Group、Time、Stratified 或 Nested Validation
  4. 审计大语言模型微调后的任务、安全与记忆回退
  5. 区分优化过度、数据泄漏和生产分布漂移

示例

loading...
Loading code...

常见问题

机器学习中的过拟合是什么?

过拟合是一种泛化失败:模型或选择流程对有限开发数据适配得过于具体,以至于它在目标分布新样本上的表现反而不如适配程度较低的候选方案。低训练误差可能伴随过拟合,但不能单独证明过拟合。

训练—验证差距一定能证明过拟合吗?

不能。具有代表性、无泄漏的数据划分上出现持续差距,是值得重视的证据;但标签噪声、Group 或 Temporal Leakage、预处理错误、指标方差和分布漂移都会改变差距。应先核对 Split,再结合 Learning Curve 与不确定性判断。

过拟合、数据泄漏和分布漂移有什么区别?

过拟合是学习或选择流程对有限开发数据适配过度;数据泄漏是训练或选型使用了预测时不可获得的信息,通常让评测过度乐观;分布漂移则是生产数据与评测分布不同。模型可能没有过拟合原分布,却仍在漂移后失效。

参数更多或训练误差为零就代表过拟合吗?

不代表。它们说明模型容量和拟合程度,但没有证明泛化失败。现代神经网络可以插值训练数据并在新样本上保持良好表现,因为最终解还受架构、优化器、初始化、数据、增强方式以及显式或隐式正则化影响。

如何防止或缓解过拟合?

先验证评测设计,再按根因处理:改善数据覆盖,采用 Group 或 Time Split,增加正则化或数据增强,降低有效容量,提前停止,或用 Nested Cross-validation 做模型选择。最终方案只在未参与选择的测试集上确认一次。

相关术语

相关文章