1 min to read
过拟合和欠拟合
过拟合
一般来讲,如果模型在训练集上的表现很好而在测试集上的表现差很多,往往定义为过拟合
对应的实际训练过程应该是训练集的ERROR持续减小,测试集的ERROR在训练初期减小,之后不再继续变小甚至是增大;
原因: 造成过拟合的原因有很多,常见的比如:训练集太少、特征太多、模型过于复杂、训练集与测试集有明显差异,训练集不足以代表测试集、迭代次数太多等
解决方法: 针对可能造成过拟合的原因,不同原因对应不同的解决方法,不同的模型也有不同的解决方法;一些通用的解决方法如:
- 增加训练集,如果获取数据成本不大,这是一个非常好用并且有效的解决办法
- 减少特征
- 减少迭代次数
- 简化模型(如:加正则化,减少树的深度,增加dropout层等)
欠拟合
欠拟合往往表现为模型在训练集和测试集上的效果都很差;
对应的训练过程应该为训练初期ERROR略有减少,很快就不在减少;
原因: 造成欠拟合的原因一般为:特征太少、模型太简单、迭代次数不够等
解决办法: 不同的原因,不同的模型对应不同的解决办法,常用的如下:
- 增加特征,进一步优化特征工程,使用更多的跟预测相关的特征或者是基于现有特征进行组合等
- 更换模型,使用拟合能力更强的模型(如:集成学习,深度学习等)
- 进行数据预处理,如 标准化等
- 不同模型也有不同的优化,如:减小正则化系数,增加树的深度,神经网络的深度,神经元的个数等,对于集成学习来说可以增加单一模型的个数
Comments