为什么过度拟合在机器学习中不好?

数据挖掘 机器学习 预测建模
2021-09-28 20:26:13

逻辑经常指出,通过过度拟合模型,其泛化能力是有限的,尽管这可能仅意味着过度拟合会阻止模型在达到一定复杂性后进行改进。不管数据的复杂性如何,过度拟合是否会导致模型变得更糟,如果是这样,为什么会这样?


相关:对上述问题的跟进,“模型何时欠拟合?

4个回答

过度拟合在经验上是不好的。假设您有一个数据集,您将其分成两部分,测试和训练。过拟合模型是在测试数据集上比在训练数据集上表现更差的模型。人们经常观察到,这样的模型通常在附加(新)测试数据集上的表现也比没有过度拟合的模型更差。

直观地理解这一点的一种方法是,模型可能会使用数据的一些相关部分(信号)和一些不相关的部分(噪声)。过度拟合的模型使用更多的噪声,这会在已知噪声(训练数据)的情况下提高其性能,并在新噪声(测试数据)的情况下降低其性能。训练数据和测试数据之间的性能差异表明模型拾取了多少噪声;并且拾取噪声直接转化为测试数据(包括未来数据)的更差性能。

总结:从定义上讲,过拟合是不好的,这与复杂性或泛化能力没有太大关系,而是与将噪声误认为信号有关。

PS关于问题的“泛化能力”部分,很可能有一个模型由于模型的结构(例如线性SVM,...)而具有固有的泛化能力有限但仍然容易过拟合。从某种意义上说,过度拟合只是泛化可能失败的一种方式。

简而言之,过度拟合意味着从您的数据和/或先验知识中考虑太多信息,并将其用于模型中。为了使其更简单,请考虑以下示例:您受雇于一些科学家,为他们提供一个模型来预测某种植物的生长。科学家们已经向您提供了他们在一年中与此类植物的工作中收集的信息,他们将不断向您提供有关其种植园未来发展的信息。

因此,您遍历接收到的数据,并从中建立模型。现在假设,在您的模型中,您考虑了尽可能多的特征,以便始终找出您在初始数据集中看到的植物的确切行为。现在,随着生产的继续,您将始终考虑这些特征,并将产生非常精细的结果。但是,如果种植园最终会受到一些季节性变化的影响,您将收到的结果可能与您的模型相吻合,以至于您的预测将开始失败(或者说增长会放缓,但实际上会加速,或者相反)。

除了无法检测到如此小的变化以及通常对条目进行错误分类外,模型上的细粒度(即大量变量)可能会导致处理成本过高。现在,假设您的数据已经很复杂。将模型过度拟合数据不仅会使分类/评估变得非常复杂,而且很可能会使您对输入的最轻微变化的预测产生错误。

编辑也可能有一些用处,也许为上述解释增加了动态性:D

粗略地说,过拟合通常发生在比率

在此处输入图像描述

太高了。

将过度拟合视为您的模型通过心学习训练数据而不是学习阻止其泛化到测试数据的大图的情况:这种情况发生在模型相对于训练数据,也就是说,与模型复杂度相比,训练数据的大小太小了。

例子:

  • 如果您的数据是二维的,您在训练集中有 10000 个点并且模型是一条线,那么您可能会拟合。
  • 如果您的数据是二维的,您在训练集中有 10 个点并且模型是 100 度多项式,那么您可能会过度拟合。

在此处输入图像描述

从理论的角度来看,正确训练模型所需的数据量是机器学习中一个至关重要但仍有待回答的问题。回答这个问题的一种方法是VC 维度另一个是偏差-方差权衡

从经验的角度来看,人们通常将训练误差和测试误差绘制在同一个图上,并确保他们不会以牺牲测试误差为代价来减少训练误差:

在此处输入图像描述

我建议观看Coursera 的机器学习课程,“10:应用机器学习的建议”部分。

(PS:请到这里寻求对这个 SE 的 TeX 支持。)

似乎还没有人发布过 XKCD 过拟合漫画。

在此处输入图像描述