过拟合
所谓过拟合(over-fitting)其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。
打个比喻就是当我需要建立好一个模型之后,比如是识别一只狗狗的模型,我需要对这个模型进行训练。恰好,我训练样本中的所有训练图片都是二哈,那么经过多次迭代训练之后,模型训练好了,并且在训练集中表现得很好。基本上二哈身上的所有特点都涵括进去,那么问题来了!假如我的测试样本是一只金毛呢?将一只金毛的测试样本放进这个识别狗狗的模型中,很有可能模型最后输出的结果就是金毛不是一条狗(因为这个模型基本上是按照二哈的特征去打造的)。所以这样就造成了模型过拟合,虽然在训练集上表现得很好,但是在测试集中表现得恰好相反,在性能的角度上讲就是协方差过大(variance is large),同样在测试集上的损失函数(cost function)会表现得很大。
---------------------
数据:数据不规范,数据量少,数据穿越,统计特征用到了未来的信息或者标签信息
算法:算法过于复杂
过拟合的基本调优思路是增加数据量,降低模型复杂度。
解决:
1、将数据规范化,处理缺失值,增加数据量,采样,添加噪声数据
2、正则化,控制模型复杂程度,
3、early stoping,减少迭代次数,减少树的深度,
4、学习率调大/小点、
5、融合几个模型