为什么过度拟合对机器学习不利?


49

逻辑经常指出,通过过度拟合模型,模型的概括能力受到限制,尽管这仅意味着过度拟合会阻止模型在经过一定复杂度后得以改进。无论数据的复杂性如何,过度拟合都会导致模型变得更糟,如果是,为什么会这样呢?


相关:对以上问题的跟踪:何时模型不足?


1
您的问题实际上是否存在无法过度拟合的情况?
肖恩·欧文

@SeanOwen:不,怎么可能不适合?
2014年

同意,只是按您的要求进行检查,即无论数据如何,过度拟合是否都会导致模型变得更糟
肖恩·欧文

1
根据定义,过度拟合是不好的。如果不是这样,那就不会过度拟合。
庆典2014年

1
我并不是要在“增加模型复杂性”上引用您,而是要突出显示该短语。无论如何,我猜我的问题与@GaLa基本相同,这就是过度拟合意味着拟合得太多。因此,看来您是在要求我们确认重言式。因此,我倾向于认为您实际上是在问一个不同的问题。例如,增加模型复杂度是否会使模型变得更糟?或者,数据的复杂性如何与模型过度拟合的趋势相关?
内森·古尔德

Answers:


44

过度拟合在经验上是不利的。假设您有一个数据集,将其分为两个部分:测试和培训。过拟合模型是在测试数据集上比在训练数据集上表现差得多的模型。经常观察到,与未过度拟合的模型相比,类似的模型通常在其他(新)测试数据集上的性能也较差。

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

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

PS关于问题的“泛化能力”部分,由于模型的结构(例如线性SVM等),其模型固有地具有有限的泛化能力是非常可能的过度拟合。从某种意义上说,过度拟合只是泛化可能失败的一种方式。


17

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

因此,您将遍历接收到的数据,并据此建立模型。现在假设,在模型中,您考虑了尽可能多的特征,以便始终找出在初始数据集中看到的植物的确切行为。现在,随着生产的继续,您将始终考虑这些特征,并将产生非常精细的结果。但是,如果人工林最终受到某些季节变化的影响,那么您收到的结果可能会适合您的模型,从而使您的预测开始失败(要么说增长会减慢,而实际上会加快,要么;相反)。

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

编辑也可能是有用的,也许为上述说明增加了动态性:D


14

粗略地说,当

在此处输入图片说明

太高了

将过度拟合视为一种情况,您的模型会全心全意地学习训练数据,而不是学习大图,从而无法将其推广到测试数据:这种情况发生在模型相对于模型的大小过于复杂时训练数据,即训练数据的大小与模型复杂度相比较小。

例子:

  • 如果您的数据是在两个方面,你在训练组中有10000点,该模型是一条线,你很可能会 -fit。
  • 如果数据是二维的,则训​​练集中有10个点,并且模型是100度多项式,则可能会过度拟合。

在此处输入图片说明

从理论上讲,正确训练模型所需的数据量是机器学习中一个至关重要但仍未解决的问题。解决这一问题的一种方法就是VC维度。另一个是偏差方差折衷

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

在此处输入图片说明

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

(PS:请转到此处以请求此SE的TeX支持。)



5

那是因为所谓的偏差方差难题。过度拟合的模型意味着,如果我们在模型上给出更多的方差,我们将拥有更加复杂的决策边界。问题是,不仅过于简单的模型,而且复杂的模型都可能对看不见的数据进行分类。因此,过度拟合模型不如欠拟合模型好。这就是为什么过度拟合不好的原因,我们需要在中间的某个地方拟合模型。


+1谢谢,根据您的回答,我已发布上述问题的后续报告,“ 何时模型不足?
失误

4

让我了解有关过度拟合的问题的原因是想象最可能的过度拟合模型。本质上,它将是一个简单的查找表。

您告诉模型每个数据都有什么属性,它只记得它,而对它不做任何事情。如果您给它提供一个以前见过的数据,它会查找并简单地对您之前所说的进行反驳。如果给它提供以前从未见过的数据,结果将是不可预测的或随机的。但是机器学习的目的并不是要告诉您发生了什么,而是要了解模式并使用这些模式来预测正在发生的事情。

所以想一想决策树。如果您使决策树越来越大,最终您将得到一棵树,其中每个叶节点都基于一个数据点。您刚刚找到了创建查找表的后门方式。

为了概括您的结果以找出将来可能发生的情况,您必须创建一个模型来概括训练集中发生的事情。过度拟合模型在描述现有数据方面做得很好,但是描述性模型不一定是预测性模型。

无免费午餐定理说,在所有可能实例的集合上,没有任何一个模型能胜过任何其他模型。如果您要预测数字“ 2、4、16、32”序列中接下来将要发生的事情,如果您不假设存在基础模式,那么您将无法比任何其他模型更准确地构建模型。过度拟合的模型并没有真正评估模式-只是对已知的可能进行建模,并为您提供观察结果。通过假设存在一些基本功能,并且可以确定该功能是什么,则可以预测事件的结果,从而获得预测能力。但是,如果真的没有模式,那么您就不走运了,您所希望的就是查找表,告诉您您知道什么是可能的。


1

您错误地混淆了两个不同的实体:(1)偏差方差和(2)模型复杂度。

(1)过拟合是在机器学习不好,因为这是不可能收集的真正的无偏差的样本人群的任何数据。过度拟合的模型会导致参数偏向样本,而不是正确估计整个总体的参数。这意味着无论训练时期的数量如何,估计参数和最佳参数之间都将存在差异。ϕ^ϕn

|ϕ-ϕ^|Ëϕ 如 ñ,其中是一些边界值Ëϕ

(2)简单地说,模型复杂度是中参数的数量。如果模型复杂度低,那么即使训练数不计其数,即使大约等于,仍然会有回归误差。最简单的示例是学习拟合一条线(y = mx + c),其中到曲线上的数据(二次多项式)。ϕϕ^ϕϕ={C}

Ë[|ÿ-中号ϕ^|]Ë中号 如 ñ,其中是一些回归拟合误差边界值Ë中号

简介:是的,样本偏差和模型复杂性都有助于学习模型的“质量”,但它们不会直接相互影响。如果您对数据有偏见,那么无论参数数量正确和训练是否无限,最终学习的模型都会出错。同样,如果您的参数数量少于要求的数量,则无论完全无偏抽样和无穷训练,最终的学习模型都会出错。


0

关于过度拟合,有很多很好的解释。这是我的想法。当您的方差过大而偏差过低时,就会发生过度拟合。

假设您拥有训练数据,您将其分为N部分。现在,如果您在每个数据集上训练一个模型,则将有N个模型。现在找到均值模型,然后使用方差公式计算每个模型与均值相差多少。对于过度拟合的模型,这种差异会很大。这是因为,每个模型都将具有估计的参数,这些参数非常特定于我们提供给它的小型数据集。同样,如果您采用均值模型,然后发现它与原本可以提供最佳准确性的模型有多大差异,则根本没有太大不同。这表示低偏见。

要查找您的模型是否过拟合,您可以构建先前文章中提到的图。

最后,为避免过度拟合,您可以对模型进行正则化或使用交叉验证。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.