查看原文
其他

8种防止过拟合的技术

数据应用学院 大数据应用 2023-08-17

今日份知识你摄入了么?

当模型在训练集上表现良好但在测试集表现不佳时,就会发生过拟合。过拟合是机器学习中一个非常常见的问题,并且有大量文献致力于研究防止过拟合的方法。

在本文中,将描述八种简单的方法来防止过拟合,通过在每种方法中只对数据、模型或学习算法进行改进来缓解过拟合。



+

+

目录


  1. Hold-out

  2. 交叉验证

  3. 数据增强

  4. 特征选择

  5. L1 / L2正则化

  6. 移除层/每层的神经元数

  7. Dropout

  8. 早停法(Early Stopping)


+

+

1. Hold-out(数据)


我们可以简单地将数据集分成两组:训练集和测试集,而不是使用所有的数据进行训练。训练集和测试集常见的拆分比例是80%和20%。我们训练模型直到它在训练集和测试集上都表现良好。这表明了良好的泛化能力,因为测试集代表了未用于训练的未见数据。然而,这种方法需要足够大的数据集才能在拆分后进行训练。


+

+

2. 交叉验证(数据)


我们可以将数据集分成k个组(k 折交叉验证)让其中一组作为测试集(请参阅hold-out说明),其他组作为训练集,并重复此过程,直到每个单独的组都被用作测试集(例如,k次重复)。与hold-out不同,交叉验证允许所有数据都用于训练,但也比hold-out计算成本高。


+

+

3.数据增强(数据)


更大的数据集将减少过拟合。如果我们无法收集更多的数据并且受限于当前集中的数据,我们可以应用数据增强来人为地增加数据集的大小。例如,如果我们正在训练图像分类,我们可以对图像数据集执行各种图像转换(例如,翻转、旋转、缩放、移动)



+

+

4. 特征选择(数据)


如果我们只有有限数量的训练样本,每个都有大量的特征,我们应该只选择最重要的特征进行训练,这样我们的模型就不需要学习这么多的特征,而且还会导致过拟合。我们可以简单地测试不同的特征,为这些特征训练单独的模型,并评估模型效果,或者使用各种常用的特征选择方法之一。



+

+

5. L1/L2正则化(学习算法)


过于复杂的网络学习模型的技术可能会导致过拟合,而正则化可以限制这种过拟合。在L1或L2正则化中,我们可以在成本函数上添加一个惩罚项,以将估计的系数推向零(而不是取更多的极值)。L2正则化允许权重衰减到零但不允许为零,而L1正则化允许权重衰减到零。



+

+

6. 移除层数/每层的神经元数(模型)


如L1或L2正则化中所述,过于复杂的模型可能更容易过拟合。因此,我们可以直接通过移除层和减小模型的大小来降低模型的复杂度。我们可以通过减少全连接层中的神经元数量进一步降低复杂性。我们应该有一个复杂的模型,能够充分平衡欠拟合和过拟合。



+

+

7. Dropout(模型)


通过将dropout(一种正则化形式)应用于我们的层,我们忽略了具有设定概率的网络神经元的子集。使用dropout可以减少神经元之间相互依赖的学习,这可能导致过拟合。然而由于dropout,模型肯能会需要更多的epoch才能收敛。



+

+

8. 早停法(Early Stopping模型)


先我们可以对任意数量的epoch训练我们的模型,并绘制验证损失图(例如,使用hold-out)一旦验证损失开始减少(例如,停止减少而是开始增加),停止训练并保存当前模型。我们可以通过监控损失图或设置提前停止触发器来实现这一点。保存的模型将是不同epoch训练值之间泛化的最佳模型。



你已经到了文章的结尾!希望你现在拥有一个防止过拟合的方法工具箱。


原文作者:Rohan

翻译作者:明慧

美工编辑:过儿

校对审稿:过儿

原文链接:https://medium.com/@rohan5076/8-simple-techniques-to-prevent-overfitting-f11b74086b21


本周公开课预告


往期精彩回顾

数据科学家或将成为历史?——无代码数据科学的诞生

这六个SQL小技巧,让你的分析效率突飞猛进!

数据科学面试中的机器学习问题类型以及如何准备这些问题?

每个数据科学家都必须遵循的技巧

打好数据科学和机器学习的基础——6本书带你学数学





点「在看」的人都变好看了哦

点击“阅读原文”查看数据应用学院核心课程

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存