为什么过度拟合会产生一个糟糕的假设函数

时间:2012-05-18 13:48:06

标签: algorithm machine-learning linear-regression

在线性或逻辑回归中,如果我们找到一个完全符合训练集的假设函数,那么它应该是一件好事,因为在这种情况下我们使用了100%的信息来预测新信息。
虽然它被称为过度拟合,并说是坏事 通过使假设函数更简单,我们可能实际上是增加噪声而不是降低噪声 为什么会这样?

6 个答案:

答案 0 :(得分:2)

因为您实际上没有“学习”训练集中的任何内容,所以您只是适合您的数据。

想象一下,你有一维回归

x_1 -> y_1 
...  
x_n -> y_1

以这种方式定义的函数

         y_n, if x = x_n
  f(x)=     
         0, otherwise

会给你完美的契合,但它实际上是没用的。

希望,这有点帮助:)

答案 1 :(得分:2)

当您尝试“太难”以使训练集中的示例符合分类规则时,会发生过度拟合。

由于两个原因被认为是坏事主要原因:

  1. 数据可能有噪音。尝试过于难以正确地对100%的例子进行分类,会使噪音计数,并且在忽略这种噪音的情况下给你一个不好的规则 - 通常要好得多。
  2. 请记住,分类训练集只是真实数据的一个样本。如果您容忍一些错误分类的样本,这种解决方案通常比您所获得的解决方案更复杂。根据{{​​3}},你应该更喜欢更简单的解决方案,所以忽略一些样本会更好,
  3. 示例

    根据Occam的剃刀,您应该容忍错误分类的样本,并假设它是噪音或无意义的,并采用此数据集中的简单解决方案(绿线): enter image description here

答案 2 :(得分:1)

假设您的回归会导致数据中所有偏差来源,那么您可能会认为您的回归非常适合数据。但是,如果您知道系统中的所有影响(我的意思是所有),那么您可能不需要回归。您可能有一个完美预测新信息的分析解决方案。

实际上,您拥有的信息将达不到这个完美的水平。噪声(测量误差,部分可观察性等)将导致数据偏差。作为回应,回归(或其他拟合机制)应该寻求数据的总体趋势,同时最小化噪声的影响。

答案 3 :(得分:1)

实际上,该陈述并不完全正确。如果您的假设函数是线性的,那么匹配100%的数据是完全正确的。每个连续的非线性函数可以通过线性函数在本地近似,该函数给出关于它的局部行为的重要信息。

如果数据匹配100%,将100个数据点与二次曲线匹配也很好。您可以高度确信自己不会过度拟合数据,因为数据始终显示二次行为。

然而,通过使用足够高度的多项式函数,总能得到100%拟合。即使没有其他人指出的噪音,你也不应该假设你的数据具有一些高度的多项式行为,而没有对该假设进行某种理论或实验的证实。指出多项式行为的两个好指标是:

  • 您有一些理论上的理由希望数据在其中一个方向限制内增长为x ^ n。
  • 随着越来越多的数据被收集,您拥有支持固定度多项式拟合的数据。

请注意,尽管指数和互易关系可能具有适合多度足够高的多项式的数据,但它们并不倾向于遵守上述两个条件的含义。

重点是您的数据拟合需要对预测有用。您总是知道线性拟合会在本地提供信息,但是这些信息在适合的点数越多越有用。即使只有两个点和噪声,线性拟合仍然可以对目前收集的数据进行最佳理论研究,并确定数据的第一个期望。除此之外,使用二次拟合得到三个点或立方拟合得出四个并不能有效地提供更多信息,因为它假设局部和渐近行为信息加上一个点。你需要为你的假设函数辩护。这种理由可以来自更多的观点或来自理论。

(有时出现的第三个原因是

  • 你有理论和实验的理由相信错误和噪音不会超过某些界限,你可以采用多项式假设来研究局部导数和匹配数据所需的行为。

这通常用于理解数据以构建理论模型,而没有理论的良好起点。你仍然应该努力使用尽可能小的多项式度,并寻找用无限序列中的指示代替系数中的模式(倒数,指数,高斯等)。)

答案 4 :(得分:0)

尝试用这种方式想象它。您有一个函数,您可以从中选择n个不同的值来表示样本/训练集:

y(n) = x(n), n is element of [0, 1]

但是,既然您想构建一个健壮的模型,那么您希望为训练集添加一点噪音,这样您在生成数据时实际上会添加一点噪音:

data(n) = y(n) + noise(n) = x(n) + u(n)

其中u(n)我标记了均匀随机噪声,平均值为0,标准差为1:U(0,1)。很简单,它是一个噪声信号,最有可能取值0,并且不太可能从0取得更远的值。

然后你绘制,比方说,10点是你的训练集。如果没有噪音,他们都会躺在一条线y = x上。由于存在噪声,可以表示它们的最低次多项式函数可能是10阶,类似于:y = a_10 * x^10 + a_9 * x^9 + ... + a_1 * x + a_0

如果你只考虑使用来自训练集的信息的估计,你可能会得到比10阶多项式函数更简单的函数,并且它可能更接近于真正的功能。

进一步考虑您的真实函数可能具有[0, 1]区间之外的值,但由于某种原因,训练集的样本只能从此区间收集。现在,一个简单的估计可能会在训练集的区间之外显着更好,而如果我们完全适合训练集,我们会得到过度拟合的函数蜿蜒曲折,各处起伏不定:)

答案 5 :(得分:0)

过度拟合被称为坏,因为它具有真正的解决方案。过度拟合的解决方案100%适合所使用的训练数据,但是对于任何小的数据点添加,模型将急剧变化。这称为模型的方差。因此,我们试图在两个因素之间取得平衡,因此,在小数据变化时模型不会发生剧烈变化,但也可以合理地正确预测输出。