过拟合(Overfitting)是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是模型在训练集上的表现很好,但在测试集和新数据上的表现较差。欠拟合(Underfitting)指的是模型在训练和预测时表现都不好的情况。

-w536

降低“过拟合”风险的方法

-w1180

机器学习普遍的方法:

  1. 数据入手,获得更多的训练数据。
    • 使用更多的训练数据是解决过拟合问题最有效的手段,因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响。
    • 当然,直接增加实验数据一般是很困难的,但是可以通过一定的规则来扩充训练数据。比如,在图像分类的问题上,可以通过图像的平移、旋转、缩放等方式扩充数据;更进一步地,可以使用生成式对抗网络来合成大量的新训练数据。
    • 除了常规根据业务特性加入更大范围或者更长时间段的方式外,也可以通过时间窗口滑动、上采样等手段在已有数据集通过一定技巧来产生更多数据。
  2. 降低模型复杂度。
    • 在数据较少时,模型过于复杂是产生过拟合的主要因素,适当降低模型复杂度可以避免模型拟合过多的采样噪声。
    • 例如,在神经网络模型中减少网络层数、神经元个数等;在决策树模型中降低树的深度、进行剪枝等。
  3. 正则化方法。
    • 给模型的参数加上一定的正则约束,比如将权值的大小加入到损失函数中。以L2正则化为例:

  这样,在优化原来的目标函数C 0 的同时,也能避免权值过大带来的过拟合风险。

  1. 集成学习方法。
    • 集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险,如 Bagging 方法。

深度学习里面怎么防止过拟合?

  1. 增大数据集(Data Augmentation)
    • 在图像分类的问题上,可以通过图像的平移、旋转、缩放等方式扩充数据;更进一步地,可以使用生成式对抗网络来合成大量的新训练数据
    • 直接思路就是扩展数据集,除了常规根据业务特性加入更大范围或者更长时间段的方式外,也可以通过时间窗口滑动、上采样等手段在已有数据集通过一定技巧来产生更多数据。
  2. Early stopping
    • 在多轮迭代训练中,在训练效果收敛之前停止训练。简单说,训练时有一个校验集,当在校验集上效果不再提升时,停止训练
  3. 正则化方法
    • 通过 L1 或 L2 正则,使部分特征权重变小或者权重为 0,降低模型复杂度。
  4. Dropout
    • 在神经网络中,随机丢弃一些隐层节点,也是降低模型复杂度的一种方式。

降低“欠拟合”风险的方法

  1. 添加新特征。
    • 当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。
    • 通过挖掘“上下文特征”“ID类特征”“组合特征”等新的特征,往往能够取得更好的效果。
    • 在深度学习潮流中,有很多模型可以帮助完成特征工程,如因子分解机、梯度提升决策树、Deep-crossing 等都可以成为丰富特征的方法。
  2. 增加模型复杂度。
    • 简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。
    • 例如,在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数等。
  3. 减小正则化系数。
    • 正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。