跳至主要内容

什么是过拟合?

了解机器学习中过拟合的成因与影响,以及如何应对它,从而构建能够对新数据良好泛化的模型。
Abid Ali Awan
Abid Ali Awan

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

过拟合是机器学习中的常见难题,指模型把训练数据学习得“过于到位”,连同其中的噪声和离群点也一并记住,导致在未见过的数据上表现不佳。解决过拟合至关重要,因为模型的首要目标是在新的、未见过的数据上做出准确预测,而不是简单复现训练数据。

过拟合详解

在机器学习中,最终目标是构建能对新数据良好泛化的模型。过拟合发生在模型过于贴合训练数据、甚至捕捉到其随机波动的时候。想象教孩子认鸟,但您只给他看鸽子,而不是鸟类的一般特征。当他看到老鹰时,可能仍会认为那是鸽子,因为他只认识鸽子。

过拟合的成因可能有很多:

  • 模型过于复杂。对简单任务使用过于复杂的模型会导致过拟合。例如,用高次多项式回归去拟合本质上线性的 数据。
  • 数据不足。如果数据量不够,模型可能会从噪声中“发现”并不存在的模式。
  • 数据噪声大。若训练数据包含错误或随机波动,过拟合的模型会把这些当作模式来学习。

过拟合的影响很大。虽然过拟合模型在训练数据上精度很高,但在新的、未见过的数据上表现会很差,因为它缺乏足够的泛化能力。

如何检测过拟合

检测过拟合是机器学习流程中的关键一步。以下是识别方法:

  • 验证集。将数据划分为训练集与验证集。如果模型在训练集上表现很好,但在验证集上很差,很可能是过拟合。
  • 学习曲线。同时绘制模型在训练集和验证集上的性能随时间变化的曲线。如果两条曲线开始出现明显分离,这是过拟合的信号。
  • 交叉验证。采用交叉验证,将训练数据多次划分,并在每次划分上评估模型。

在以下情况中,尤其要留意过拟合:

  • 您使用的是复杂模型。
  • 您的数据量较小。
  • 应用场景风险高,例如医疗诊断。

如何防止过拟合

预防胜于补救。以下是一些可行做法:

  • 更简单的模型。从简单模型起步,只有在必要时再增加复杂度。
  • 更多数据。若条件允许,收集更多数据。训练数据越多,模型越容易泛化。
  • 正则化。如 L1 和 L2 正则化等技术可通过惩罚可能导致过拟合的参数来抑制过拟合。
  • Dropout。在神经网络中,Dropout 会在训练过程中随机“丢弃”部分神经元,迫使网络学习更具鲁棒性的特征。

参阅我们的完整教程:如何在机器学习中防止过拟合。

过拟合 vs 欠拟合

过拟合是模型对训练数据的过度适应,而欠拟合则相反。欠拟合的模型连训练数据中的基本模式都无法捕捉。

  • 过拟合:训练数据上精度高,新数据上精度低。就像一个 GPS 在您的家乡导航完美无缺,但在其他地方却迷失方向。
  • 欠拟合:在训练数据和新数据上精度都低。就像一个 GPS 连在您的家乡都导航不好。

过拟合与欠拟合都会导致对新数据的预测不佳,但原因不同。过拟合往往源于模型过于复杂或数据噪声大;欠拟合则可能是模型过于简单或特征不足所致。

过拟合:ML 工程师的持久战

作为机器学习(ML)工程师,我们不断追求构建尽可能精准的模型。然而,在追逐高精度的过程中,过拟合始终是重大风险之一。

许多公司会陷入过拟合的陷阱:他们看到训练精度很高,便以为模型非常优秀。不幸的是,一旦将模型部署到真实世界,性能就会全面崩溃。这就像模拟考试全拿高分,却在正式考试中失利。

作为 ML 工程师,我们必须克制只在训练数据上追求完美精度的冲动。您不可能在训练数据上达到 100% 精度并指望它能原样迁移到新数据上。我们需要采用交叉验证、正则化、数据增广和集成等技术,确保模型具备良好泛化能力。

机器学习的历程常常从一个欠拟合的模型开始,经过迭代逐步提升精度。但会有一个拐点,进一步微调开始导致过拟合。我们需要在欠拟合与过拟合之间把握这一微妙的平衡,找到一个“恰到好处”的模型,使其在各种情境下都表现良好。

想要进一步了解 AI与机器学习?请查看以下资源:

常见问题

为什么过拟合不好?

过拟合会削弱模型对新数据的泛化能力,而这正是模型的首要目标。

我该如何防止模型过拟合?

使用更简单的模型、收集更多数据、应用正则化技术,并在神经网络中使用 Dropout。

过拟合在某些情境下会有好处吗?

在极其少见的情况下,如果训练数据极具代表性且足够全面,过拟合未必会带来明显危害。但在大多数真实场景中,过拟合是不受欢迎的。

Abid Ali Awan

作者

Abid Ali Awan

作为一名持证的数据科学家,我热衷于利用前沿技术打造创新的机器学习应用。凭借在语音识别、数据分析与报告、MLOps、对话式人工智能以及自然语言处理方面的扎实背景,我不断打磨构建智能系统的能力,力求带来切实影响。除技术专长外,我也擅长沟通,能够将复杂概念提炼为清晰、简明的表述。因此,我成为数据科学领域备受关注的博主,与不断壮大的数据专业人士社区分享洞见与实践经验。目前,我专注于内容创作与编辑,借助大语言模型打造有力且吸引人的内容,帮助企业与个人更好地发挥数据价值。

主题