欠拟合,
就是训练程度不够,或训练样本太少,模型在训练数据上的预测效果很差,在新数据上的预测结果也非常糟糕。
过拟合,
就是在训练数据上的预测效果非常好,但是在新数据上的预测结果却非常糟糕。
如下图所示,横轴是模型复杂度,纵轴是预测误差。
其中,Bias 是预测偏差,variance 是模型复杂度惩罚项,total error 总体误差。
图片来源:http://www.sohu.com/a/202269297_99964548
可以看到,随着模型复杂度的升高,总体误差先降低后升高。
模型复杂度太低,就是欠拟合,此时预测偏差和总体误差都很高。
模型复杂度太高,就是过拟合,此时,预测偏差很小,但是总体误差很高。
我们在训练模型时,如果一味追求训练数据集上的预测效果(预测偏差很小),导致模型复杂度很高,结果在新的数据集上,预测效果很差。
为什么会这样?
通俗地解释就是,我们训练模型是让模型学习数据集中的一般规律,如果训练过度,导致模型把训练集中的特殊规律也学到了,但是新数据集中不存在这些特殊规律,模型在新数据集上的预测性能就会很差。