系列文章目录

第九章 Python 机器学习入门之过度拟合问题及解决办法


系列文章目录

文章目录

前言

一、 什么是过拟合 ?

我们可以通过几个例子来了解一下什么是过拟合,​编辑1 线性回归中的过拟合

2 分类问题中的过拟合

二、 怎么解决过拟合问题

总结


前言

过度拟合问题 the problem of overfitting
到目前为止,我们已经学习了线性回归和逻辑回归两种算法了,它们可以解决很多问题
但是有些时候我们使用算法时,会遇到过度拟合的问题,这就会使得模型表现的不好


一、 什么是过拟合 ?

什么是过拟合 overfitting?

我们可以通过几个例子来了解一下什么是过拟合,
1 线性回归中的过拟合

以预测房价为例,使用线性回归拟合数据,如图中第一个模型,它可能效果并不是很好,并不能很好的拟合训练数据
我们可以说,模型对数据的拟合不足,也可以说是算法具有高偏差

这时候我们可以使用特征工程,来看模型的第二个变体,我们可以加入一个特征,这样我们就有两个特征了
我们会得到一个含有 x 和 x^2的函数,如图第二个模型,这个函数可以很好的拟合数据

通常情况下,我们都希望我们的学习学习算法能够很好的泛化,即便是没有见过的例子,也可以很好的预测

如果我们将模型写成四阶多项式会怎么样呢?

如图,我们有x, x^2, x^3, x^4 这四个特征,

拟合的曲线经过了每一个数据,这时候的代价函数接近于0,因为每个数据的平方误差都接近于0

但是这个函数的预测准确吗?可以看见这是一条非常摇摆不定的曲线,上下起伏,这并不是一个预测房价非常好的模型
我们可以说,这个模型已经过度拟合了数据或者说这个模型存在过拟合问题,该方法具有高方差

在机器学习中,过度拟合和高方差 差不多是同一个意思,

机器学习的目的就是找到一个既不是拟合不足也不是过拟合模型,也就是既没有高偏差也没有高方差的模型

2 分类问题中的过拟合

以肿瘤是良性还是恶性为例,

这是一个具有两个特征x1, x2的分类问题,x1 可能是肿瘤的大小,x2 可能是患者的年龄

我们通过逻辑回归算法来进行分类,我们会得到一个决策边界当我们有两个特征x1, x2时,
不难发现,它似乎并不难很好的拟合数据,这是一个欠拟合或高偏差的模型

来看中间这个,我们添加了几个特征值,它的决策边界可以很好的区别,这是一个不错的模型

第三个模型,我们添加了较多的特征,将每个例子都完美的拟合了,但是它似乎并不合适推广到新的示例中,因为它存在过拟合或高方差的问题。

二、 怎么解决过拟合问题

我们已经知道了什么是过度拟合了,那我们怎么去解决过度拟合的问题呢?

假设我们拟合了一个模型,

它似乎存在过拟合或高方差的问题,特征值较多

解决这个问题的第一个办法就是添加数据,当训练数据足够多时,过度拟合的模型也就会越准确
当我们没有更多的数据时,如图的右边

解决过度拟合的第二个方法就是 使用更少的特征

当我们有x1, x2, x3, x4 .... 多个特征,但是没有足够的训练数据时,我们的模型就可能会过度拟合训练集

为了解决这个问题,我们可以通过使用较少的,那些对输出结果影响较大的特征,不使用不重要的特征。

从多个特征中选择少数几个合适的特征,被称为特征选择,这个方法也有一些缺点,比如它可能会丢弃一些有用的信息

第三个方法就是regularization 正则化,它可以自己选择最合适的一组特征,用于我们的预测任务


如图,预测房价的模型中,我们有x, x^2, x^3, x^4 这四个特征,它存在过拟合现象,如果要消除特征x^4,则将对应的参数 w4 设置为0 即可,这就是方法二

那么正则化是怎么处理过拟合的呢

正则化的作用就是使得学习算法缩小参数,而不必要求参数正好为0

事实证明,就算特征值很多的情况,将参数设置的很小,也可以很好的解决过拟合问题,很好的拟合数据

正则化的作用就是让我们保留所有的特征,通过减小参数w 的大小来解决过拟合问题,至于是否正则化参数b,这个没有什么影响


总结

总结一下

我们了解了什么是过拟合,在模型拟合数据时,当特征值太少,不能够很好的拟合数据,我们称其为欠拟合或高偏差;当特征值过多时,虽然拟合的曲线经过了每个数据,代价值接近0,但是它的实用性不强,不能很好的泛化,称其为过拟合或高方差

为例解决过拟合这个问题,我们学习了3种方法:1 收集更多的数据;2 使用少数几个影响较大的特征;3 使用正则化,减小参数大小

【机器学习】什么是过度拟合?如何解决过度拟合?相关推荐

  1. 吴恩达机器学习(五)正则化(解决过拟合问题)

    目录 0. 前言 1. 正则化(Regularization) 2. 线性回归中的正则化 3. 逻辑回归中的正则化 学习完吴恩达老师机器学习课程的正则化,简单的做个笔记.文中部分描述属于个人消化后的理 ...

  2. 防止过拟合以及解决过拟合

    本文转载:http://blog.sina.com.cn/s/blog_53c47a2f0102vjyf.html 过拟合:为了得到一致假设而使假设变得过度复杂称为过拟合."一个过拟合的模型 ...

  3. 过拟合解决方法python_《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)...

    <python深度学习>笔记---4.4.过拟合与欠拟合(解决过拟合常见方法) 一.总结 一句话总结: 减小网络大小 添加权重正则化 添加 dropout 正则化 1.机器学习的根本问题? ...

  4. 解决欠拟合和过拟合的几种方法

    深度学习 欠拟合和过拟合的问题 ... 如何解决欠拟合和过拟合的问题? 深度学习 前言 一.介绍 二.如何解决欠拟合问题 三.如何解决过拟合问题 总结 前言   我们可以将搭建的模型是否发生欠拟合或者 ...

  5. ICML2020 | GCNII:使用初始残差和恒等映射解决过度平滑

    今天给大家介绍中国人民大学魏哲巍教授课题组发表在ICML2020上的一项工作.针对目前大多数图卷积网络(GCN)模型因过度平滑而具有的浅层体系结构限制其模型性能的问题,作者提出了vGCN模型的扩展-G ...

  6. 问题1 机器学习篇 如何解决过拟合(overfiting)?

    向自己提问题是一个很好的学习方式. 问题: 如何解决过拟合(overfiting)? 在解决这个问题之前先明确问题是什么.这涉及到另外一些问题,什么是过拟合?过拟合与什么因素有关?等等 答: 1)直观 ...

  7. 【机器学习】L1正则化与L2正则化详解及解决过拟合的方法

    在详细介绍L1与L2之前,先讲讲正则化的应用场景. 正则化方法:防止过拟合,提高泛化能力 所谓过拟合(over-fitting)其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越, ...

  8. 2.3 利用正规化解决过拟合问题-机器学习笔记-斯坦福吴恩达教授

    利用正规化解决过拟合问题 在之前的文章中,我们认识了过拟合问题,通常,我们有如下策略来解决过拟合问题: 减少特征数,显然这只是权宜之计,因为特征意味着信息,放弃特征也就等同于丢弃信息,要知道,特征的获 ...

  9. 使用学习曲线(Learning curve),判断机器学习模型过拟合、欠拟合,与解决过拟合、欠拟合的问题

    文章目录 1.基本概念 过拟合与欠拟合 根据学习曲线判断过拟合.欠拟合 2.示例代码:绘制学习曲线 3.解决过拟合.欠拟合 解决过拟合 解决欠拟合 4. 过拟合.欠拟合的深层理解 1.基本概念 过拟合 ...

最新文章

  1. robot简单功能测试脚本设计(例子)
  2. 大数据流通存隐忧 产业信任体系亟待建立
  3. REST 架构是什么
  4. jtable mysql数据库_使用MySQL数据库语法错误填充jTable
  5. python模块time_Python模块:time模块详解(转)
  6. MySQL Connector/ODBC 5.2.4 发布
  7. html怎么加断点快捷键,HTML添加断点 - osc_vyztkm1b的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. 【Http】加解密 生成 X.509格式,DER编码,后缀名.cer 加密公钥证书
  9. day6-day9代码片段
  10. 简单粗暴Tensorflow 2.0
  11. Android——8种通知栏-适配 Adnroid12
  12. 《嵌入式 – GD32开发实战指南》第9章 呼吸灯
  13. 【踩坑日记】阿里云内容安全
  14. php导出excel无边框线,phpexcel设置边框不全或者只有竖线问题解决方法
  15. HC595驱动数码管
  16. Python从视频中提取音频
  17. Google I/O 2014? No,Android I/O 2014
  18. 80万条毛巾库存,16天就销售一空,并净赚240万的营销方案揭秘!
  19. tunel凋亡试剂盒说明书_自己翻译的罗氏tunel检测细胞凋亡试剂盒说明书
  20. Matlab打开LabVIEW的tdm/tdms文件

热门文章

  1. laradock 错误集合
  2. 什么是盒子塌陷和解决办法
  3. Flutter:手机号输入分段
  4. Docker安装与部署MySQL等,迁移备份与Dockerfile和私有仓库
  5. 数据结构pintia_数据结构和算法(一)概述
  6. 小程序原生 canvas 绘制身份证区域
  7. ros中的电机速度控制_【RosBot】控制两路步进电机-学习笔记1-Arduino中文社区 - Powered by Discuz!...
  8. 【VS使用方法】快捷键注释与取消
  9. 嗅探/欺骗工具 Responder
  10. 美团测开岗 【一面总结】