如何防止过拟合和欠拟合

过拟合和欠拟合是模型训练过程中经常出现的问题,两种情况正好相反,现将两者的定义及如何防止进行简要总结。

 

1 过拟合

1.1 定义

是指模型对于训练数据拟合呈现过当的情况,反映到评估指标上就是模型在训练集上的表现很好,但是在测试集上的表现较差。结果就是训练出的模型泛化能力差。

1.2 如何防止过拟合

防止过拟合的方法有4种:

1)增加训练集数据;

该方式是从数据入手,将更多的数据参与到模型的训练中,这是最有效的方法,这样可以让模型学习到更多更有效的特征,降低噪声对模型的影响。

但是往往直接增加数据是困难的,因此可以通过一定的规则来扩充训练数据。列举两种方式:

①如图像分类问题中可以通过对图像的平移,缩放,旋转等方式来扩充;

②也可以使用生成式对抗网络类合成大量数据。

2)降低模型复杂度;

在数据量较少的情况下,模型过于复杂将会导致过拟合,因此可以通过降低模型的复杂度来防止过拟合,这样就可以一定程度上避免模型拟合过多的采样噪声。

比如:

①神经网络中减少网络成熟,神经元个数等;

②决策树中降低树的深度和进行剪枝。

3)增加正则化约束项;

比如将权值的大小加入到损失函数中,避免权值过大带来的过拟合风险。

4)通过集成学习的方式训练模型。

集成学习是把多个模型集成到一起来作为共同的模型,可以降低单一模型的过拟合风险。如bagging方法。

2 欠拟合

2.1 定义

是指模型在训练集合测试集数据上的表现均不好的情况。结果就是训练出的模型表达能力不够,精度不够。

2.2 如何防止

防止欠拟合的方法有3种:

1)增加特征数;

当特征不足或者现有特征与样本标签的相关性不强时,模型易出现欠拟合。

可以通过挖掘上下文特征,ID类特征,组合特征等新的特征,可以取得较好的效果。这属于特征工程相关的内容,如因子分解机,梯度提升决策树,deep_crossing都可以丰富特征。

2)增加模型复杂度;

模型简单时其表达能力较差,容易导致欠拟合,因此可以适当地增加模型复杂度,使模型拥有更强的拟合能力。

如线性模型中添加高次项,神经网络中增加网络层数或神经元个数。

3)减小正则化系数。

正则化是用于防止过拟合的,但是当出现欠拟合时,就有必要针对性地减小正则化系数。

posted @ 2018-11-26 19:29  四片叶子的三叶草  阅读(1077)  评论(1编辑  收藏  举报