过拟合和欠拟合是模型训练过程当中常常出现的问题,两种状况正好相反,现将二者的定义及如何防止进行简要总结。网络
是指模型对于训练数据拟合呈现过当的状况,反映到评估指标上就是模型在训练集上的表现很好,可是在测试集上的表现较差。结果就是训练出的模型泛化能力差。函数
防止过拟合的方法有4种:学习
1)增长训练集数据;测试
该方式是从数据入手,将更多的数据参与到模型的训练中,这是最有效的方法,这样可让模型学习到更多更有效的特征,下降噪声对模型的影响。神经网络
可是每每直接增长数据是困难的,所以能够经过必定的规则来扩充训练数据。列举两种方式:方法
①如图像分类问题中能够经过对图像的平移,缩放,旋转等方式来扩充;总结
②也可使用生成式对抗网络类合成大量数据。数据
2)下降模型复杂度;集合
在数据量较少的状况下,模型过于复杂将会致使过拟合,所以能够经过下降模型的复杂度来防止过拟合,这样就能够必定程度上避免模型拟合过多的采样噪声。标签
好比:
①神经网络中减小网络成熟,神经元个数等;
②决策树中下降树的深度和进行剪枝。
3)增长正则化约束项;
好比将权值的大小加入到损失函数中,避免权值过大带来的过拟合风险。
4)经过集成学习的方式训练模型。
集成学习是把多个模型集成到一块儿来做为共同的模型,能够下降单一模型的过拟合风险。如bagging方法。
是指模型在训练集合测试集数据上的表现均很差的状况。结果就是训练出的模型表达能力不够,精度不够。
防止欠拟合的方法有3种:
1)增长特征数;
当特征不足或者现有特征与样本标签的相关性不强时,模型易出现欠拟合。
能够经过挖掘上下文特征,ID类特征,组合特征等新的特征,能够取得较好的效果。这属于特征工程相关的内容,如因子分解机,梯度提高决策树,deep_crossing均可以丰富特征。
2)增长模型复杂度;
模型简单时其表达能力较差,容易致使欠拟合,所以能够适当地增长模型复杂度,使模型拥有更强的拟合能力。
如线性模型中添加高次项,神经网络中增长网络层数或神经元个数。
3)减少正则化系数。
正则化是用于防止过拟合的,可是当出现欠拟合时,就有必要针对性地减少正则化系数。