过拟合与欠拟合的原因以及解决方案

作者:我执
链接:https://zhuanlan.zhihu.com/p/271727854
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

有哪些原因会导致过拟合?

数据层面

  1. 训练集和测试集的数据分布不一致
  2. 训练数据集太少,样本单一,模型无法从中学到泛化的规则
  3. 训练集中的噪音太多,导致模型过分记住了噪音特征

模型层面

  1. 模型过于复杂,换句话说就是模型把这些数据“死记硬背”了下来,而不是学到了泛化规则。

过拟合如何解决?

数据层面

  1. 增加数据的量,或者增加数据的多样性,让模型学到更有效的特征。

模型层面

  1. 降低模型的复杂度,把模型变得更简单。如决策树的剪枝算法、神经网络中的L2/L1正则化等。

训练层面

  1. 使用验证集,当验证集发生过拟合现象时及早停止模型。
  2. 在训练过程中使用正则化技术,如神经网络中的Dropout、L2、L1正则化等。

模型融合

  1. 把多个模型集成在一起,降低模型过拟合的风险,如Bagging方法。

有哪些原因会导致欠拟合?

欠拟合一般是模型表达能力不够或者说数据有问题,导致无法从数据中学到有效的特征与规则。
数据层面

  1. 数据特征表达能力不强或者现有特征与标签之间的相关性不强。

模型层面

  1. 假设的模型太简单,导致无论怎么学习都无法学到有效的信息,即模型“先天不足”。
  2. 模型合适,但是没有训练好,即模型还没有训练到收敛的情况。

 

解决欠拟合的常见方法有哪些?

  1. 添加新的数据特征
  2. 增加模型复杂度,假设一个更复杂的空间
  3. 减小正则化系数
  4. 增加模型训练时间,直到模型收敛为止
作者:你的雷哥
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/henuliulei/p/15291178.html