偏差、方差和过拟合如何相互关联?

机器算法验证 机器学习 方差 偏见 过拟合
2022-03-14 23:35:25

我对机器学习很陌生,在阅读了偏差-方差权衡和过拟合/欠拟合之后,我想到了几个问题:

  1. 如果我有一个模型在训练集上有 15% 的错误,在验证集上有 14% 的错误,而另一个模型在训练集上有 5% 的错误,在验证集上有 13% 的错误,我知道选择第一个模型通常更好(请注意,13% 对 14% 很小但不可忽略)。这是为什么?第二个模型中的低训练误差是否表明它更过度拟合,因此可能会比第一个模型给出更糟糕的结果?

  2. 一方面,我阅读以避免过度拟合,例如,需要在调节参数中具有较低的树深度或较高的值。但另一方面,我读到为了避免过度拟合,需要优化验证集(而不是测试集)上的参数,并保持训练分数略高于测试分数(如我的第一个问题)。这两种方法有什么关系?他们指的是同一种类型的过拟合吗?它们如何帮助减少过度拟合?

  3. 在这张照片在此处输入图像描述(取自此处)中,解释了对于 eta=0.1(在这种情况下,eta 是 XGBOOST 中的学习率),模型是欠拟合的,而对于 eta=0.9,模型是过拟合的。我可以看到 eta=0.9 的模型是如何过度拟合的(随着测试误差的上升),但对我来说,似乎 eta=0.1 的模型也是过度拟合的——因为测试误差上升了一点,而训练误差下降了. 我错过了什么?

  1. 假设我有 2 个树模型。一个有tree_depth=210% 的错误,另一个有tree_depth=79.7% 的错误(很明显,第一个模型的复杂性比后者低,但第二个模型好一点,但不是可以忽略不计)。我读到建议选择第一个模型而不是后者,但这是为什么呢?是因为第一个模型可能不太过拟合吗?如果是这样,那我为什么要关心复杂性是否会减少错误?是不是因为第一个模型的方差可能较小?

注意:即使是其中的一个问题也将受到高度赞赏

注 2:我没有统计学或数学背景,因此非常感谢(如果可能)简单的语言

3个回答

至于3号:

eta = 0.9 的模型清楚地表明了过度拟合,因为它训练得越多,它就越能预测训练集,而它就越无法预测测试集。我只能认为 eta = 0.1 的模型是欠拟合的,因为与其他 eta 值相比,它的表现更差。它不仅显示出与 eta 0.5大致相同的测试误差趋势,而且还显示出更差的训练误差。

请注意,测试误差中的小扰动是非常正常的(并且可以由随机性引起并被视为随机性),只要它不像 eta = 0.9 的模型中那样显示增加趋势


至于5号:

降低 0.3% 的误差是否值得以模型复杂度为代价的判断取决于实际使用。如果我要选择,考虑到一些我并不真正了解的任意上下文,我会选择第一个,因为我个人认为减少 0.3% 的错误并不能证明向树增加 5 个深度并因此产生不稳定的预测是合理的. 当然,“可忽略不计”因应用程序而异。

在 ML 中,我们希望遵循奥卡姆剃刀原则。更喜欢低复杂度而不是高复杂度,因为我们假设如果我们有一个不太复杂的模型(较少的过度拟合),我们将在新的看不见的数据上表现得更好。但当然也有欠拟合!因此,如果您可以证明更复杂的模型在新数据上的表现优于不太复杂的模型,那么您应该使用更复杂的模型。

并澄清偏差、方差和过度拟合:如果您的拟合不足,则偏差很高。你在训练集、测试集和验证集上的表现很差。如果过度拟合,方差会很高。在训练数据上表现良好,在新的看不见的数据上表现明显下降。

显然,这是一个非常快速的总结。这总是取决于表现的好坏,但我希望你明白我的意思。

至于2号

您的直觉是正确的,因为您提出的两个问题都避开了稍微不同的事情。

在您的第一个例子中,选择更简单的模型以避免过度拟合的建议是指模型参数的过度拟合 - 模型根据训练数据学习的东西。更复杂的模型将更容易“记忆”训练数据,因此缺乏通用性。

在您的第二个例子中,在验证集上测试参数的建议是指过度拟合的超参数这些是您作为研究人员可以调整的“表盘”,以尝试从模型中获得最佳效果。但是,您怎么知道您没有通过选择具有最佳测试分数的测试集来优化这些测试集?添加一个验证集以查看哪个模型(即一组超参数)表现最好,然后对照测试集进行检查。在您的情况下,树深度和正则化参数都是超参数。仅当您从多个模型中进行选择时才需要它。

当我看到这个时,我发现这个讨论很有帮助。