模型过拟合与欠拟合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCastle/article/details/85246665

机器学习中,经常讨论到的一个话题就是泛化能力。泛化能力的强弱决定了模型的好坏,而影响泛化能力的则是模型的拟合问题。

欠拟合

机器学习的目的并不是为了对训练集的做出正确的预测,而是对没有在训练集中出现的数据进行正确的预测。但是对训练集之外的数据预测的前提是,模型在训练集上的表现很好,基本可以满足大部分数据的预测,这样才会被用在训练集之外的数据。而当模型对训练集预测的结果准确率很低时,说明模型的学习能力很弱,无法学习到数据中的一定“规律”,这样模型就处于欠拟合状态。

欠拟合的解决方法比较容易,常用的方法有:

  • 原数据的特征向量太少、增加样本特征,也可以加入特征组合。
  • 避免使用线性模型,例如决策树,SVM,深度学习等模型。
  • 增加模型的复杂度,减少正则化系数。

欠拟合的问题解决起来比较简单,较为困难的并且是大部分机器学习都会遇到的则是过拟合问题。

过拟合

模型在训练集上表现很好,而预测除训练集以外的数据时,表现却不尽人意,这种问题十有八九便是模型过拟合,意味着模型不仅学习了数据中的一定“规律”,还将各类噪声、波动也学习了进去,相应的处理方法则比欠拟合复杂了许多:

  • 增加样本量,对数据清洗过后在进行训练,避免学入噪声。
  • 如果数据中存在正负样本,尽可能保证正负样本的占比均匀或者训练集覆盖所有的数据类型。
  • 选择相对简单的模型,补充特征不要太多,模型参数不要太复杂
  • 验证模型时尽量采用交叉检验的验证方法。
  • 正则化方法,有L1正则化和L2正则化,原则就是让得到的模型复杂度趋于最小。
  • 深度学习中还可以采用dropout,batch normalization, early stop等方法。
  • 模型融合/集成学习方法也是很好的防止过拟合方法。

(需要注意的是,降维并不能有效的抑制过拟合,它只是降低了特征的维度,并没有减少特征的信息。)

总结如下:

欠拟合:在训练数据表现都很差,在未知数据上也是一样。

过拟合:在训练数据上表现较好,在未知数据上表现较差。 

其中每一条解决方法拓展出来都很多,想要了解具体步骤的同学可自行搜索,或者期待后续的更新 -_ - ~~~!

猜你喜欢

转载自blog.csdn.net/DataCastle/article/details/85246665