什么是过拟合

对于机器学习项目而言,过拟合(overfitting)这个问题一般都会遇到。什么是过拟合呢?

维基百科:

  • 在统计学中,过拟合现象是指在拟合一个统计模型时,使用过多参数。对比于可获取的数据总量来说,一个荒谬的模型只要足够复杂,是可以完美地适应数据。过拟合一般可以视为违反奥卡姆剃刀原则。当可选择的参数的自由度超过数据所包含信息内容时,这会导致最后(拟合后)模型使用任意的参数,这会减少或破坏模型一般化的能力更甚于适应数据。过拟合的可能性不只取决于参数个数和数据,也跟模型架构与数据的一致性有关。此外对比于数据中预期的噪声或错误数量,跟模型错误的数量也有关。

  • 过拟合现象的观念对机器学习也是很重要的。通常一个学习算法是借由训练示例来训练的。亦即预期结果的示例是可知的。而学习者则被认为须达到可以预测出其它示例的正确的结果,因此,应适用于一般化的情况而非只是训练时所使用的现有数据(根据它的归纳偏向)。然而,学习者却会去适应训练数据中太特化但又随机的特征,特别是在当学习过程太久或示例太少时。在过拟合的过程中,当预测训练示例结果的表现增加时,应用在未知数据的表现则变更差。

  • 相对于过拟合是指,使用过多参数,以致太适应数据而非一般情况,另一种常见的现象是使用太少参数,以致于不适应数据,这则称为欠拟合(underfitting),或称:拟合不足现象。

这里不展开说明欠拟合现象,后续补上。总的来说,是学习得过头了,死记硬背的那种学习,对于训练数据预测得非常准确,但当遇到新的问题时候,泛化能力不行,无法作出正确的预测。

绿线代表过拟合模型,黑线代表正则化模型。虽然绿线完美的匹配训练数据,但太过依赖,并且与黑线相比,对于新的测试数据上具有更高的错误率。

知乎

知乎上有个帖子:用简单易懂的语言描述「过拟合 overfitting」?

过拟合其实就是一种机器学习没找到正确的规律情况,所以要搞懂什么是过拟合首先得搞懂为什么机器学习能找出正确规律。

具体情况

实际中遇到的问题,训练和测试曲线如下:

可以看到训练损失一直下降,但测试损失先下降后上升。

解决办法

在统计和机器学习中,为了避免过拟合现象,须要使用额外的技巧,以指出何时会有更多训练而没有导致更好的一般化。具体有以下几种方法:

  • 获取更多数据;
  • 使用合适的模型;
  • 结合多种模型;
  • 贝叶斯方法;


增大训练数据后,加入earlystopping,曲线稍微好点。

参考

  • https://zh.wikipedia.org/wiki/過適
  • https://www.zhihu.com/question/32246256
  • https://blog.csdn.net/heyongluoyao8/article/details/49429629
  • https://www.zhihu.com/question/59201590

机器学习中的过拟合与解决办法相关推荐

  1. 一文解决机器学习中的过拟合与欠拟合问题(正则化,数据增强,Dropout)

    一文解决机器学习中的过拟合与欠拟合问题(正则化,数据增强,Dropout,提前终止) 生活中的过拟合与欠拟合现象 过拟合与欠拟合的概念 解决过拟合与欠拟合问题的四大金刚 正则化 数据增强 Dropou ...

  2. 【ML/DL】python3学习《机器学习实战》书中的报错及解决办法

    python3学习<机器学习实战>书中的报错及解决办法(更新中) <机器学习实战>是一本很不错的书,其采用的是py2的语法格式,在用最新的python3.6编写代码的过程中,书 ...

  3. GDI+中发生一般性错误的解决办法 from http://www.cnblogs.com/winzheng/archive/2008/12/23/1360440.html...

    GDI+中发生一般性错误的解决办法 这个错误经常发生,代码如下:    private  static  byte[] GetBytes (Image image)         {         ...

  4. redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法

    redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法 事情的经过是这样的 记得以前曾经在VMware 5.5.3 上装过redhat 估计是9吧 当初我选的是图形 ...

  5. Jupyter中打印所有结果的解决办法

    学习笔记,仅供参考 Jupyter中打印所有结果的解决办法 我们都知道,在Jupyter中,除非加上print,每个cell只会显示最后一个输出结果,这里,我们通过加上如下代码,使之打印所有的交互式输 ...

  6. ubuntu18.0.4 不能下载 libgd2-dev(ubuntu 20.04 安装perl 中GD 模块失败的解决办法)

    ubuntu18.0.4 不能下载 libgd2-dev 一.错误信息: Unable to locate package libgd2-dev 二.原因 没有对应源 到 https://packag ...

  7. phpcmsV9 中 phpsso通信失败的解决办法

    phpcmsV9 中 phpsso通信失败的解决办法 phpcmsV9 通信失败,很大一定程度上是因为通信地址设置不一致,很多人想象认为通信参数需要设置的必须保持一致才能实现正常的通信,实际检测并非如 ...

  8. RS错误RSV-VAL-0032之项目未在布局中引用的3种解决办法

    如下图所示,我用RS新建了一个空白页面,拖入了一个列表,给该列表新建了一个条件样式 条件样式如下所示,表达式来自查询1 运行,报错如下图所示 原因就是条件样式使用到了查询1中的数据项1但是数据项1在报 ...

  9. 使用tensorflow实现机器学习中的线性拟合

    使用tensorflow实现机器学习中的线性拟合 这个例子是模拟的单变量线性回归,通过提高单变量的阶数来增加特征数量,例如:4阶相当于分解为四个特征 这种思想同样适用于多变量线性回归 import t ...

最新文章

  1. JS-数据类型-数值Number
  2. Spring 4 官方文档学习(十一)Web MVC 框架之异常处理
  3. Java——SAX生成XML文件
  4. ActFrameWork集成Beetlsql的Mapper功能
  5. php文件怎么阅读器,Vue文件阅读器组件FileReader API
  6. 为什么Redux需要reducer成为“纯函数”
  7. 静态成员函数与成员变量_C++静态成员变量及函数
  8. mvc 调用其他控制器方法session丢失_Java从入门到放弃;MVC 模式
  9. 《WCF技术内幕》翻译5:第1部分_第1章_蓝月亮:WCF介绍和本章小结
  10. 秋招开始,求职别慌!C 认证了解一下!
  11. 荣耀手表gspro会用鸿蒙,真实使用荣耀手表GS Pro功能用2个月评测反馈!一定看看如何!...
  12. VMware安装及使用详细教程
  13. python爬虫爬取中央气象台每日天气图
  14. /布丰投针实验/ /模拟三门 //模拟排队//求解有约束的非线性规划问题// 书店买书////用于模拟导弹追击问题// TSP(旅行商问题)
  15. 图像特征提取(颜色,纹理,形状)
  16. idm+百度下载助手解决百度网盘限速
  17. px4调用Gazebo实现四旋翼定点悬停到时降落
  18. 微信小程序输入联想、表格
  19. 2021年华为杯数学建模比赛——二分类与回归问题(1)
  20. MAYAPlugin_Mel_顶点法线批处理_V2

热门文章

  1. 南通市民将可刷手机乘公交车
  2. webService(二) 几种常用的框架介绍及Axis 服务端搭建。
  3. Mybatis一对多,分页问题及映射问题
  4. Web Page Performance
  5. 0557-6.1.0-Kerberos环境下SQL客户端DBeaver配置异常分析
  6. c语言求5名同学三科平均成绩,用C语言编写,某班有5名同学,三科成绩!通过键盘输入每名同学每门课的成绩!统计每人的不及格科目,输出学号、各门成绩、不及格科目数。...
  7. android 系统vr,VR虚拟现实操作系统包括VR设备 将Android桌面化
  8. java笔记——Java常用类
  9. 并行与分布式计算应用于计算机视觉,分布式并行空间索引机制的研究
  10. VUE+Spring Boot整合MyBatis实现前后端分离项目壁纸网站