“欠拟合”和“过拟合”到底是什么意思?它们从未被明确定义

数据挖掘 机器学习 过拟合 术语 偏见
2022-03-09 18:20:59

在处理这些条款时,我总是迷路。特别是被问到有关关系的问题,例如欠拟合-高偏差(低方差)或过拟合-高方差(低偏差)。这是我的论点:

  1. 来自维基

在统计学中,**过拟合是“产生的分析过于接近或精确地对应于一组特定的数据,因此可能无法拟合其他数据或可靠地预测未来的观察结果”。1过拟合模型是一种统计模型,其包含的参数多于数据所能证明的。2 过拟合的本质是在不知不觉中提取了一些残余变化(即噪声),就好像该变化代表了底层模型结构。 [3]:45

当统计模型无法充分捕捉数据的底层结构时,就会出现欠拟合。欠拟合模型是缺少正确指定模型中出现的某些参数或项的模型。2

根据这个定义,欠拟合和过拟合都是有偏差的。我真的不知道哪个有更高的偏见。此外,“训练数据太接近”但“测试数据失败”并不一定意味着高方差。

  1. 来自斯坦福 CS229笔记

高偏差←→欠拟合高方差←→过拟合大σ^2←→噪声数据

如果我们直接根据 High Bias 和 High Variance 来定义欠拟合和过拟合。我的问题是:如果真实模型 f=0 且 σ^2 = 100,我使用方法 A:复数 NN + xgboost-tree + 随机森林,方法 B:简化二叉树,一叶 = 0.1 哪个是过拟合?哪一个是欠拟合的?

4个回答

您可以查看下图以获得图形直觉。访问源以获取详细说明。

来源:https ://www.kaggle.com/getting-started/166897

“过拟合模型是一种统计模型,它包含的参数比数据所能证明的要多”

这是一个远远超过“最佳日期”的想法。在计算统计的早期,控制模型复杂性的最常见方法是限制参数的数量(例如线性模型的特征选择)。但这已经不是很长时间了时间。1970 年代早期引入了岭回归,它引入了正则化的思想来控制模型的容量。它在训练标准中添加了一个惩罚项,以惩罚大量权重。这在数学上等同于在权重向量的平方范数上设置一个上限。这实现了一种简单形式的“结构风险最小化”(cf SVM)——如果我们稍微增加界限,模型就可以做它以前可以做的任何事情,以及其他一些事情。因此,正则化参数形成了一组复杂度不断增加的嵌套模型类。这意味着我们可以拥有不会过度拟合的过度参数化模型,实际上这几乎就是现代机器学习算法的全部内容。

因此,可以减少混淆的一件事是不要将过度拟合(将数据拟合得太紧密)与过度参数化(具有比表示数据的底层结构严格必要的参数更多的参数)混为一谈。

当我们“拟合”一个模型时,我们通常意味着我们调整模型的参数,使其输出更接近于根据一些衡量数据“不拟合”的标准的校准数据。所以过拟合基本上意味着过多地降低“数据不匹配”函数的值。多少是太多了”?如果它使泛化性能变差,那就是“太多了”。

如果您可以通过使用更复杂的模型(或训练更长时间)来提高泛化性能,那么您的模型目前“欠拟合”数据。

过拟合/欠拟合不是根据偏差或方差来定义的,而是根据训练误差(数据失配)的值和模型的泛化属性来定义的偏差和方差是理解过度拟合和欠拟合后果的有用术语。这些图表虽然有帮助。

我会尽量让它变得简单。欠拟合是指模型中存在高偏差和高方差。因此,该模型从训练数据中没有学到任何东西(低训练分数,也就是高偏差),并且对测试数据的预测很差(低方差)。当您的模型对于数据来说太简单或者数据对于您的模型来说太复杂而无法理解时,您就会变得欠拟合。

这是一个欠拟合的例子:-

在此处输入图像描述

正如我们所看到的,训练和测试的分数都很差,这意味着模型从数据中什么也没有学到,并且在测试集上什么也没有执行/预测。

减少欠拟合的技术:

  1. 增加模型复杂性

  2. 增加特征数量,执行特征工程

  3. 从数据中去除噪音。

  4. 增加 epoch 的数量或增加训练的持续时间以获得更好的结果。

过度拟合是当你有低偏差和高方差时。因此,模型从训练数据集中学习所有内容(高训练分数,又名低偏差),但无法在测试集上表现良好(低测试分数,又名高方差)当您的模型对于数据或您的数据过于复杂时,您会过度拟合数据对于模型来说太简单了。

这是一个过拟合的例子:-

在此处输入图像描述

正如我们所看到的,训练损失最初减少(低偏差),但测试/验证损失在减少到某个点后开始逐渐增加。同样明显的是火车和测试线之间的巨大差距。

减少过拟合的技术:

  1. 增加训练数据。

  2. 降低模型复杂性。

  3. 在训练阶段提前停止(一旦损失开始增加停止训练,请注意训练期间的损失)。

  4. 岭正则化和 Lasso 正则化

  5. 对神经网络使用 dropout 来解决过拟合问题。

希望能消除困惑!

我个人认为 Victor Lavrenko 对欠拟合和过拟合的解释是最直观和简洁的定义:

这个定义至少对以下两点非常有用:

  1. 测量模型的复杂性(检查)并不总是一件容易的事,正如大多数解释这个概念的图表中所呈现的那样

  2. 您避免了在训练集和测试集中比较相同模型的指标的陷阱,如下所述

...我们可以通过首先在训练数据集上评估模型,然后在保持测试数据集上评估相同的模型来确定机器学习模型是否过拟合。如果模型在训练数据集上的表现明显优于在测试数据集上的表现,那么模型可能已经过拟合了训练数据集......

这种情况没有明确定义,因为训练和测试错误之间没有“标准”差异可以保证您的模型过度拟合,因此在测试集上没有明显更好的东西(据我所知)

但当然我并不是说你不应该关心训练与测试错误。

在此处输入图像描述