过拟合和欠拟合
过拟合是指模型对于训练数据拟合呈过当的情况, 反映到评估指标上, 就是模型在训练集上的表现很好, 但在测试集和新数据上的表现较差。
欠拟合指的是模型在训练和预测时表现都不好的情况。
降低“过拟合”风险的方法
产生过拟合的原因:
- 模型的复杂度太高。比如:网络太深
- 过多的变量(特征)
- 训练数据非常少
解决方法:
- 数据集扩增
更多的样本能够让模型学习到更多更有效的特征, 减小噪声的影响。
参考 图像数据不足时处理方法
- 重新清洗数据
导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。
- 降低模型复杂度
在数据较少时, 模型过于复杂是产生过拟合的主要因素, 适当降低模型复杂度可以避免模型拟合过多的采样噪声。 例如, 在神经网络模型中减少网络层数、 神经元个数等。
- 正则化方法
给模型的参数加上一定的正则约束, 比如将权值的大小加入到损失函数中。
参考 L1 和 L2 正则化
- 采用dropout方法
dropout方法是ImageNet中提出的一种方法,通俗一点讲就是dropout方法在训练的时候让神经元以一定的概率不工作。
- early stopping
- 批规范化(batch normalization)
参考 Batch Normalization
降低“欠拟合”风险的方法
产生欠拟合的原因:
因为模型不够复杂而无法捕捉数据基本关系,导致模型错误的表示数据。
解决方法:
- 添加新特征
当特征不足或者现有特征与样本标签的相关性不强时, 模型容易出现欠拟合。 通过挖掘“上下文特征”“ID类特征”“组合特征”等新的特征, 往往能够取得更好的效果。 在深度学习潮流中, 有很多模型可以帮助完成特征工
程, 如因子分解机、 梯度提升决策树、 Deep-crossing等都可以成为丰富特征的方法。
- 增加模型复杂度
简单模型的学习能力较差, 通过增加模型的复杂度可以使模型拥有更强的拟合能力。 例如, 在线性模型中添加高次项, 在神经网络模型中增加网络层数或神经元个数等。
- 减小正则化系数
正则化是用来防止过拟合的, 但当模型出现欠拟合现象时, 则需要有针对性地减小正则化系数。
方差与偏差
Bias(偏差) 反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,即算法本身的拟合能力
Variance(方差)Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。反应预测的波动情况。
过拟合会出现高方差问题。
欠拟合会出现高偏差问题。
作者:Young