如何避免过度拟合?

时间:2019-08-07 15:35:10

标签: python-3.x machine-learning deep-learning statistics

我遇到的情况是:

  1. 我的训练准确度是93%
  2. 简历的准确度是55%
  3. 测试准确性为57%

我认为这是过拟合的经典案例。

据我所知,我可以使用正则化。 我已经阅读了交叉验证,这也将有助于解决我的过拟合问题。

我对此有一些疑问:

  1. 交叉验证是否仅用于超参数调整,还是在解决过度拟合问题中起作用?
  2. 如果交叉验证解决了过拟合问题,怎么办?
  3. 交叉验证是否仅用于检查模型是否过度拟合?

1 个答案:

答案 0 :(得分:0)

我认为您对确切的交叉验证感到困惑。我将链接到OpenML's explanation进行10倍交叉验证,以便您有一个更好的主意。

当没有足够的数据可供模型训练时,通常会发生过度拟合,从而导致学习模式/数据集之间的相似性无济于事,例如将过多的注意力放在那些会被忽略的偏远数据上如果提供了更大的数据集。

现在您的问题是

1-2。交叉验证只是有助于防止/解决过度拟合的一种解决方案。通过将数据集划分为k个子组或折叠,您可以在k-1个折叠上训练模型。最后一折将用作您看不见的验证数据,以测试您的模型。有时这将有助于防止过度拟合。不过,进行这项工作的一个因素取决于您要训练数据的时间长短/多少个历元。由于您说的是相对较小的数据集,因此您要确保您不会对此数据“过度学习”。如果您要在非常小的数据集上训练成千上万个纪元,那么实施交叉验证对您没有多大好处。

  1. 交叉验证不会告诉您数据是否过度拟合。它可能会提示您,如果多次运行该程序后,您的结果是否有很大不同,但是并不清楚。

最大的问题是您没有很多数据,您是在评论中亲自说的。最好的方法(尽管并非总是最简单的方法)是增加数据大小,以使模型不会学习不重要的趋势,而将过多的注意力放在离群值上。

我将链接到一个对解释problems of over-fitting极为有用的网站,并提供了多种方法来尝试解决此问题。

让我知道我是否有帮助!