了解学习曲线

数据挖掘 分类 支持向量机 监督学习 k-nn
2022-02-17 11:10:59

我想通过下面的两个示例图阐明我对学习曲线的理解。我在这里尝试使用 500 到 1500 个样本之间的小数据集来澄清我的理解。

我从下面的学习曲线中的理解是,底层数据必须有很多噪声,因此学习算法无法泛化底层函数。该学习曲线既不表示高偏差也不表示方差。仅仅整体数据样本并不能很好地指示结果。我对上述学习曲线的解释是否正确?获取更多数据会有所帮助吗?

数据集的学习曲线

从下面的学习曲线来看,我将其解释为一个很好的学习曲线。因为随着我们添加更多样本,训练和交叉验证的错误分类错误都会下降。大约 240 个样本,我们得到的训练集和验证集之间的差异最小。这是否表示高方差,因为即使两者之间的错误分类误差增量非常低,训练和验证也不会收敛?

不同数据集的学习曲线

2个回答

学习曲线 2显示了学习曲线的典型形状:开始时训练误差较低,随后增加,而 CV 误差正在减小。绝对误差被认为是低还是高总是取决于问题。更具体地说,它取决于两个问题:

  • 什么是可以实现的?
  • 目标是什么?

(例如:在股票市场预测中,可接受/目标误差将远高于猫/狗图像识别)

由于大约 0.01 左右的训练误差和大约 0.02 左右的验证误差之间的差异,您仍然可以观察到一些过度拟合,但我不会认为它很大。

学习曲线 1更难解释,但我认为它具有高偏差*:在开始时样本量较小的模型应该实现非常低的训练误差。然而,它没有这样做,即它甚至不能学习/过拟合小的训练样本。为了解决这个问题,我会尝试增加您的模型复杂性或为您的数据添加功能。


*正如Erwan 所写,您无法区分高偏差和嘈杂的特征。我的措辞更进一步,因为我什至不会区分这两种情况。高偏差就是高偏差——这可能是由于模型或数据造成的。

我不会以同样的方式解释第一张图。据了解(请记住,没有人知道一切),没有明确的方法来区分嘈杂的特征和偏差(欠拟合)。但是在任何一种情况下,验证/CV 损失都没有理由远高于训练损失,这实际上是过度拟合的明显迹象:如果模型无法泛化,则训练损失将与验证一样高损失。相反,该模型成功地表示了一些模式,但事实证明,它捕获的模式并不适用(至少不适用)验证集。换句话说,该模型捕获了训练集中偶然发生的模式:它过度拟合。

添加更多实例可能有助于减少过度拟合,因为在 800-900 区域中 CV 损失似乎仍然显着降低。但是差别很大,所以不能确定只有更多的数据才能解决。

我同意第二张图(也)显示了一些过度拟合,但不如第一张图那么多。在我看来,两条曲线之间的最低差异不在曲线末端这一事实表明模型还不稳定(需要更多数据),或者曲线上可能根本没有足够的点来观察真正的趋势(即 240 的低差和/或 300 的高差可能是偶然发生的)。这确实是差异,但在我看来并不是很高。