过拟合(overfitting)和欠拟合(underfitting)是导致模型泛化能力不高的两种常见原因,都是模型学习能力与数据复杂度之间失配的结果。“欠拟合”常常在模型学习能力较弱,而数据复杂度较高的情况出现,此时模型由于学习能力不足,无法学习到数据集中的“一般规律”,因而导致泛化能力弱。
产生原因
训练集和测试集特征分布不一致
数据量太小
特征量太多
模型太过复杂
解决方法:
1.减少特征数量
2.正则化
3.增大样本训练规模
4.简化模型
5.交叉验证
6.dropout
欠拟合
产生原因:
1.模型复杂度过低
2.特征量过少
处理方法:
1.增加新特征
2.增加模型复杂度
与之相反,“过拟合”常常在模型学习能力过强的情况中出现,此时的模型学习能力太强,以至于将训练集单个样本自身的特点都能捕捉到,并将其认为是“一般规律”,同样这种情况也会导致模型泛化能力下降。过拟合与欠拟合的区别在于,欠拟合在训练集和测试集上的性能都较差,而过拟合往往能较好地学习训练集数据的性质,而在测试集上的性能较差。在神经网络训练的过程中,欠拟合主要表现为输出结果的高偏差,而过拟合主要表现为输出结果的高方差。
举例来说,过拟合就是我们需要用二次函数来进行拟合数据,但是却用了四次函数甚至更高的函数,
欠拟合就是我们用了线性方程来进行拟合数据。