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

作者:我执
链接: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. 增加模型训练时间,直到模型收敛为止
posted @   你的雷哥  阅读(779)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
历史上的今天:
2018-09-15 python读写xlsx
点击右上角即可分享
微信分享提示