4

我理解过拟合和欠拟合的直观含义。现在,给定一个基于训练数据训练的特定机器学习模型,你如何判断训练是过拟合还是欠拟合?有没有量化的方法来衡量这些因素?

我们可以看看错误并说它是过拟合还是欠拟合?

4

4 回答 4

8

我相信最简单的方法是拥有两组数据。训练数据和验证数据。只要模型在训练数据上的适应度接近模型在验证数据上的适应度,就可以在训练数据上训练模型。当模型在训练数据上的适应度增加但在验证数据上没有增加时,那么你就过拟合了。

于 2012-09-14T19:29:51.267 回答
4

我认为通常的方法被称为交叉验证。这个想法是将训练集分成几部分,称为折叠,然后一次选择一个进行评估并在剩余的部分上进行训练。

当然,它不会测量实际的过拟合或欠拟合,但如果您可以改变模型的复杂性,例如通过更改正则化项,您可以找到最佳点。我认为,仅通过培训和测试就可以做到这一点。

于 2012-09-14T19:30:57.573 回答
1

您不会查看训练数据上的错误,而仅查看验证数据上的错误。

一种常见的测试方法是尝试不同的模型复杂度,看看误差如何随模型复杂度变化。通常这些具有典型的曲线。一开始,错误很快得到改善。然后是饱和(模型好的地方),然后它们又开始下降,但不是因为模型更好,而是因为过度拟合。您希望处于平稳期的低复杂度,这是提供合理概括的最简单模型。

于 2012-09-15T09:50:46.810 回答
0

现有的答案严格来说并没有错,但它们并不完整。是的,您确实需要一个验证集,但这里的一个重要问题是您不要简单地查看验证集上的模型错误并尝试将其最小化。这将导致过度拟合,因为您将有效地以这种方式拟合验证集。正确的方法不是最小化您的集合上的错误,而是使错误与您使用的训练和验证集无关。如果验证集上的误差显着不同(无论是更糟还是更好),那么模型就是过拟合的。此外,当然,当您在某个随机集上训练然后在另一个随机集上进行验证时,这应该以交叉验证的方式完成。

于 2014-04-09T02:21:30.507 回答