如何防止我的模型过拟合?这篇文章给出了6大必备方法

在机器学习中,如果模型过于专注于特定的训练数据而错过了要点,那么该模型就被认为是过拟合。训练数据用来训练模型;验证集用于在每一步测试构建的模型;测试集用于最后评估模型。 如果验证集和测试集的损失…

来源:机器之心

正如巴菲特所言:近似的正确好过精确的错误。

机器学习中,过拟合(overfitting)会使模型的预测性能变差,通常发生在模型过于复杂的情况下,如参数过多等。本文对过拟合及其解决方法进行了归纳阐述。

如何防止我的模型过拟合?这篇文章给出了6大必备方法

在机器学习中,如果模型过于专注于特定的训练数据而错过了要点,那么该模型就被认为是过拟合。该模型提供的答案和正确答案相距甚远,即准确率降低。这类模型将无关数据中的噪声视为信号,对准确率造成负面影响。即使模型经过很好地训练使损失很小,也无济于事,它在新数据上的性能仍然很差。欠拟合是指模型未捕获数据的逻辑。因此,欠拟合模型具备较低的准确率和较高的损失。

如何防止我的模型过拟合?这篇文章给出了6大必备方法

如何确定模型是否过拟合?

构建模型时,数据会被分为 3 类:训练集、验证集和测试集。训练数据用来训练模型;验证集用于在每一步测试构建的模型;测试集用于最后评估模型。通常数据以 80:10:10 或 70:20:10 的比率分配。

在构建模型的过程中,在每个 epoch 中使用验证数据测试当前已构建的模型,得到模型的损失和准确率,以及每个 epoch 的验证损失和验证准确率。模型构建完成后,使用测试数据对模型进行测试并得到准确率。如果准确率和验证准确率存在较大的差异,则说明该模型是过拟合的。

如果验证集和测试集的损失都很高,那么就说明该模型是欠拟合的。

如何防止过拟合

交叉验证

交叉验证是防止过拟合的好方法。在交叉验证中,我们生成多个训练测试划分(splits)并调整模型。K-折验证是一种标准的交叉验证方法,即将数据分成 k 个子集,用其中一个子集进行验证,其他子集用于训练算法。

交叉验证允许调整超参数,性能是所有值的平均值。该方法计算成本较高,但不会浪费太多数据。交叉验证过程参见下图:

如何防止我的模型过拟合?这篇文章给出了6大必备方法

用更多数据进行训练

用更多相关数据训练模型有助于更好地识别信号,避免将噪声作为信号。数据增强是增加训练数据的一种方式,可以通过翻转(flipping)、平移(translation)、旋转(rotation)、缩放(scaling)、更改亮度(changing brightness)等方法来实现。

移除特征

移除特征能够降低模型的复杂性,并且在一定程度上避免噪声,使模型更高效。为了降低复杂度,我们可以移除层或减少神经元数量,使网络变小。

早停

对模型进行迭代训练时,我们可以度量每次迭代的性能。当验证损失开始增加时,我们应该停止训练模型,这样就能阻止过拟合。

下图展示了停止训练模型的时机:

如何防止我的模型过拟合?这篇文章给出了6大必备方法

正则化

正则化可用于降低模型的复杂性。这是通过惩罚损失函数完成的,可通过 L1 和 L2 两种方式完成,数学方程式如下:

如何防止我的模型过拟合?这篇文章给出了6大必备方法

L1 惩罚的目的是优化权重绝对值的总和。它生成一个简单且可解释的模型,且对于异常值是鲁棒的。

如何防止我的模型过拟合?这篇文章给出了6大必备方法

L2 惩罚权重值的平方和。该模型能够学习复杂的数据模式,但对于异常值不具备鲁棒性。

这两种正则化方法都有助于解决过拟合问题,读者可以根据需要选择使用。

Dropout

Dropout 是一种正则化方法,用于随机禁用神经网络单元。它可以在任何隐藏层或输入层上实现,但不能在输出层上实现。该方法可以免除对其他神经元的依赖,进而使网络学习独立的相关性。该方法能够降低网络的密度,如下图所示:

如何防止我的模型过拟合?这篇文章给出了6大必备方法

总结

过拟合是一个需要解决的问题,因为它会让我们无法有效地使用现有数据。有时我们也可以在构建模型之前,预估到会出现过拟合的情况。通过查看数据、收集数据的方式、采样方式,错误的假设,错误表征能够发现过拟合的预兆。为避免这种情况,请在建模之前先检查数据。但有时在预处理过程中无法检测到过拟合,而是在构建模型后才能检测出来。我们可以使用上述方法解决过拟合问题。

https://mahithas.medium.com/overfitting-identify-and-resolve-df3e3fdd2860

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(0)
张乐的头像张乐编辑
上一篇 2022-03-29 09:49
下一篇 2022-04-27 00:58

相关文章

  • 大数据告诉你:公交车上谁是小偷?

    从海量的公交卡出行记录中识别出小偷,是不是令人脑洞大开的想法?

    2016-09-15
    0
  • 使用PCA对特征数据进行降维

    PCA(Principal Component Analysis)是机器学习中对数据进行降维的一种方法。主要目的是在不丢失原有数据信息的情况下降低机器学习算法的复杂度,及资源消耗。本篇文章将使用python对特征进行降维。

    2017-04-03
    0
  • 机器学习揭秘47万微信群背后的数字以及9大规律

    摘要:微信群已经进入到我们的日常生活中,成为社交关系的主要纽带。但微信群有自己的规律,长期群能存活很长的时间,临时群则转瞬即逝。来自清华大学、康奈尔大学、腾讯公司和香港科技大学的研究人员采用了机器学习算法分析了47万+的微信群、2亿+微信用户、6亿+的好友关系和200万+邀请记录,揭秘微信群背后的数字以及 9 大规律。 The Lifecycle and C…

    2016-04-24
    0
  • 机器学习、深度学习面试知识点汇总

    本文总结了一些秋招面试中会遇到的问题和一些重要的知识点,适合面试前突击和巩固基础知识。

    2021-09-25
    1
  • 学界 | 数据科学家喜闻乐见的12种机器学习算法

    摘要:「Think Big Data」发布的信息图展示了 12 种实现不同应用目的的最重要的算法。 算法已经成为我们日常生活的一个重要组成部分,它们几乎出现在商业的任何领域。调查公司 Gartner 称这种现象为「算法化商业」,算法化商业正在改变我们经营和管理公司(应有的)的方式。现在,你可以在「算法市场」上买到这些适用于各个商业领域的多种算法。算法市场为开…

    2016-05-04
    0
关注我们
关注我们
分享本页
返回顶部