目前在许多任务中仍经常会出现过拟合等问题,还没有找到一个十分通用、有效的解决方法。
过拟合
过拟合
(over-fitting):所建的机器学习模型在训练集中表现得过于优越,而在验证集和测试集中表现不佳。
过拟合就是训练的时候效果很好(除了有用的特征外,模型还学到了很多没用的特征),但是在测试样本上的效果就很差(没用的特征干扰了模型的预测)。
为什么会产生过拟合?一般是因为参数过多,后者样本过少,为了降低loss所致。总之就是参数 / 样本
这个比值太大。
判断过拟合
:可以通过对比训练集上和测试集上的精度来进行。当训练集的准确率比其他独立数据集上的测试结果的准确率要高时,一般都是过拟合。
- 当训练集和测试集的误差之间有大的差距时,为高方差。
- 当训练集的准确率比其他独立数据集上的测试结果的准确率要高时,一般都是过拟合。
- 右上角方差很高,训练集和验证集的准确率相差太多,应该是过拟合。
- 我们可以增大训练集,降低模型复杂度,增大正则项,或者通过特征选择减少特征数。
欠拟合
欠拟合
(under-fitting): 模型没有很好地捕捉到数据特征,不能够很好地拟合数据
可能训练样本被提取的特征比较少,导致训练出来的模型不能很好地匹配,表现得很差,甚至样本本身都无法高效的识别。
简单地说,训练模型要去识别叶子,还不能准确地去判断;模型还需要很多训练集去训练
判断欠拟合
:训练集和验证集的准确率都很低,很可能是欠拟合。
- 当训练集和测试集的误差收敛但却很高时,为高偏差。
- 左上角的偏差很高,训练集和验证集的准确率都很低,很可能是欠拟合。
- 我们可以增加模型参数 (比如: 构建更多的特征,减小正则项)。
- 此时通过增加数据量是不起作用的。