一文区分什么是「过拟合」和「欠拟合」?

https://mp.weixin.qq.com/s/_V1Yno4FzhGdGqr6JPscpw

编译:Richard Yang
来源:Towards Data Science

在正式讲这两个概念之前我们先来看一个故事:假设你想要习英语但之前对英语一无所知,不过曾听说过莎士比亚是一个位伟大的英国作家。你想要学英语的话,当然是将自己泡在一个图书馆中,背诵他的相关作品,用他的作品学习英语。一年的学习结束后,你走出图书馆,来到了纽约,并向你看到的第一个人打了声招呼:“嗨,愿光明与你同在!” 那人用奇怪的眼光看着你,嘴里嘟囔着“神经病”。你故作镇定地又试了一遍:“亲爱的夫人,今天是何等的优雅呢?” 你再次收获了失败,还把那个人吓跑了。当你三次尝试都失败后,你心烦意乱的说道:“啊,此乃何等之遗憾,何等之悲伤!”确实很遗憾,因为你犯下了一个建模当中最基础的错误之一:对训练集的过度拟合。

在数据科学学科中, 过度拟合(overfit)模型被解释为一个从训练集(training set)中得到了高方差(variance)和低偏差(bias),导致其在测试数据中得到低泛化(generalization)的模型。为了更好地理解这个复杂的定义,我们试着将它理解为去尝试学习英语的过程。我们要构建的这一模型代表了如何用英语交流。把莎士比亚的所有作品作为训练数据,把在纽约的对话作为测试集(testing set)。如果我们把社会认可程度来衡量这一模型的表现的话,那么事实表明我们的模型将不能够有效推广到测试集上。但是,模型中的方差和偏差又是什么呢?

方差可以理解为为了响应训练集时模型所产生的变化。若我们只是单纯的去记忆训练集,我们的模型将具有高方差:它高度取决于训练集数据。如果我们读的所有作品来自J.K. 罗琳 而不是莎士比亚, 这个模型将变得完全不同。当这样一个具有高方差的模型应用到一个新的测试集上时,这个模型将无法获得很好的表现。因为在没有训练集数据的情况下模型将迷失方向。就好比一个学生只是单纯复习了教科书上列出的问题,但这却无法帮助他解决一些实际的问题。

偏差(bias),作为与方差相对的一个概念,表示了我们基于数据所做出的假设的强度(有效性)。在前文我们尝试学习英语的例子中,我们基于一个没有初始化的模型,并把作家的作品当作学习语言的教科书。低偏差看似是一个正向的东西,因为我们可能会有这样的想法:我们并不需要去带着倾向性思维看待我们的数据。然而我们却需要对数据表达的完整性持怀疑态度。因为任何自然处理流程都会生成噪点,并且我们无法自信地保证我们的训练数据涵盖了所有这些噪点。所以我们在开始学习英语之前需要明白,我们无法通过死记硬背莎士比亚的名著来熟练掌握英语。

总体来说,偏差关系到数据被忽略的程度,而方差则关系到模型和数据的依赖程度。在所有的建模过程中,偏差和方差之间永远存在着一个权衡问题,并且需要我们针对实际情况找到一个最佳的平衡点。偏差和方差这两个概念可应用于任何从简单到复杂的模型算法,对于数据科学家来说,它们至关重要。

刚才我们了解到了过度拟合的模型具有高方差、低偏差的特点。那么相反的情况:一个低方差、高偏差的模型又会是什么样呢?这被称作欠拟合。相较于之前与训练数据紧密贴合的模型,一个欠拟合模型忽视了从训练数据中获得的信息,进而使其无法找到输入和输出数据之间的内在联系。让我们用之前尝试学习英语的例子来解释它,这一次我们试着去对之前我们用到的模型做出一些假设,并且我们改成使用《老友记》全集作为这一次学习英语的训练数据。为了避免我们之前犯过的错误,这次我们提前作出假设:只有那些以最常用的词--the, be, to, of, and, a—为开头的句子才是重要的。当学习的时候,我们不去考虑别的句子,并且我们相信这能够构建更有效的模型。

经过了漫长的训练后,我们又再一次站在了纽约的大街上。这一次,我们的表现相对好了一点点,但是别人依然无法听懂我们,最后,我们还是以失败告终。尽管我们学习到了一些英语知识,并且能够组织一些数量有限的句子,由于从训练数据上造成的高偏差,我们无法从中学到英语的基础结构和语法。虽然这个模型没有受到高方差带来的影响,但是相对于之前的尝试来说,显得又太矫枉过正,拟合不充分!

对数据的过度关注会导致过度拟合,对数据的忽视又会导致欠拟合,那么我们到底该怎么办呢?一定有一个能找到最佳平衡点的办法!值得庆幸的是,在数据科学中,有一个很好的解决方案,叫作“验证(Validation)”。用上面的例子来说,我们只使用了一个训练集和一个测试集。这意味着我们无法在实战前知道我们的模型的好坏。最理想的情况是,我们能够用一个模拟测试集去对模型进行评估,并在真实测试之前对模型进行改进。这个模拟测试集被称作验证集(validation set),是模型研发工作中非常关键的部分。

两次失败的英语学习过后,我们学聪明了,这一次我们决定使用一个测试集。我们这次同时使用Shakespeare的作品和《老友记》,因为我们从过去的经验中认识到越多的数据总是能够改善这个模型。不同的是,在这次训练结束以后,我们不直接走到街上,我们先找到一群朋友,每周和他们相聚,并以用英语来和他们交谈的形式来评估我们的模型。刚开始的第一周,由于我们的英语水平还很差,我们很难融入到对话当中。然而这一切仅仅是被模拟成一个验证集,每当我们意识到错误后,就能够调整我们的模型。最后,当我们能够适应并掌控与朋友们的对话练习时,我们相信已经是准备好面对测试集的时候了。于是,我们再一次大胆的走了出去,这一次我们成功了!我们非常适应在真实的情况下和别人交谈,这得益于一个非常关键的因素:验证集,是它改善并优化了我们的模型。

英语学习只是一个相对简易的例子。在众多真实的数据科学模型中,考虑到在一个验证集上出现过度拟合的可能性,通常会使用到非常多的验证集!这样的解决办法称之为交叉验证(corss-validation),这个方法要求我们将训练集拆分成多个不同的子集,或者在数据足够多的条件下来使用多个验证集。交叉验证法这一个概念涵盖着问题的方方面面。现在当你碰到一个和过度拟合 vs. 欠拟合,偏差 vs. 方差这几个概念有关的问题的时候,你脑海中将会浮现出一个概念框架,这个框架将有助于你去理解并且解决这个问题!

数据科学看似复杂,但它其实都是通过一系列基础的模块搭建而成的。其中的一些概念已经在这篇文章中提到过,它们是:
• 过度拟合:过度依赖于训练数据
• 欠拟合:无法获取训练数据中的存在的关系
• 高方差:一个模型基于训练数据产生了剧烈的变化
• 高偏差:一个忽视了训练数据的模型假设
• 过度拟合和欠拟合造成对测试集的低泛化性
• 使用验证集对模型进行校正可以避免实际过程中造成的欠拟合和过度拟合

数据科学和其它科技领域其实与我们的日常生活息息相关。在一些与现实有关的例子的帮助下,我们可以很好地解释并理解这些概念。一旦我们了解了一个框架,我们就能够用技术来处理所有的细节,从而解决难题。

一文区分什么是「过拟合」和「欠拟合」?相关推荐

  1. 什么是欠拟合现象_什么是过拟合?什么是欠拟合?

    原标题:什么是过拟合?什么是欠拟合? 过拟合:1)简单理解就是训练样本的得到的输出和期望输出基本一致,但是样本输出和测试样本的期望输出相差却很大 .2)为了得到一致假设而使假设变得过度复杂称为过拟合. ...

  2. 过拟合解决方法python_欠拟合、过拟合及其解决方法

    在我们机器学习或者训练深度神经网络的时候经常会出现欠拟合和过拟合这两个问题,但是,一开始我们的模型往往是欠拟合的,也正是因为如此才有了优化的空间,我们需要不断的调整算法来使得模型的表达能拿更强.但是优 ...

  3. 如何理解过拟合=高方差、欠拟合=高偏差

    欠拟合=高偏差还好理解一些,一直不太明白过拟合和高方差有什么关系,那么我们首先就要理解各种 '差' 的定义 定义: 我们评价一个模型好不好,是通过测试集的数据来评价的,而不是训练集或者交叉验证集,如果 ...

  4. pytorch_lesson13.2 模型拟合度概念介绍+模型欠拟合实例+单隐藏层激活函数性能比较+相同激活函数不同隐藏层数结果对比+神经网络结构选择策略

    提示:仅仅是学习记录笔记,搬运了学习课程的ppt内容,本意不是抄袭!望大家不要误解!纯属学习记录笔记!!!!!! 文章目录 前言 一.模型拟合度概念介绍与实验 1.测试集的"不可知" ...

  5. 拟合、过拟合、欠拟合

    在学习机器学习.神经网络的时候,我们最开始学的内容之一就是过拟合和欠拟合的概念.而这一概念也将会伴随着机器学习的始终,下面我来帮助大家,也帮助我自己区分一下什么是拟合?什么是过拟合?什么是欠拟合?以及 ...

  6. 过拟合、欠拟合的原因和解决办法

    目录 偏差和方差 过拟合 原因 解决办法 欠拟合 原因 解决办法 偏差和方差 偏差用来描述模型输出结果的期望和样本真实结果的差距. 方差用来描述模型对于给定值的输出稳定性. 具体的可以看下图: 过拟合 ...

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

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

  8. 过拟合(overfitting)和欠拟合(underfitting)出现原因及如何避免方案

    文章目录 欠拟合 一.什么是欠拟合? 二.欠拟合出现原因 三.解决欠拟合(高偏差)的方法 过拟合 一.什么是过拟合? 二.过拟合出现原因 三.解决过拟合(高方差)的方法 欠拟合 一.什么是欠拟合? 欠 ...

  9. 偏差与方差,欠拟合与过拟合

    机器学习的核心在于使用学习算法建立模型,对已建立模型的质量的评价方法和指标不少,本文以准确率(也称为精度)或判定系数(Coefficient of Determination)作为性能指标对模型的偏差 ...

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

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

最新文章

  1. 异常The Struts dispatcher cannot be found. This is
  2. synchronized为可重入锁
  3. abb样本-感应电机与发电机手册_防爆电机如何选?
  4. 【JSOI2008】最大数 线段树
  5. ffmpeg库编译加文字_ffmpeg第三方库编译记录
  6. 谈谈我对服务熔断、服务降级的理解
  7. Windows重装Anaconda3失败解决方案【重装失败10来次首次成功的案例!】
  8. 详解李兰娟团队重大抗疫药物成果:2款处方药,体外试验有奇效,已在浙江临床使用...
  9. android注册文件打开,Android项目实战系列—基于博学谷(三)注册与登录模块
  10. 微带滤波器摘要_微带滤波器设计
  11. Android addview—动态添加view
  12. 相关关系与因果关系之探讨——大数据时代读后感(1)
  13. C#中二维数组的二维长度
  14. python标准库不需要导入即可使用其中的所有对象和方法_Python编程及应用-中国大学mooc-题库零氪...
  15. 数据结构之链表(LinkedList详解)
  16. php dateparse,PHP date_parse_from_format() 函数用法及示例
  17. MOOS-ivp 多社区 系列停更
  18. 推荐几个黑白照片上色软件给大家
  19. Font 'Arial' does not support style 'Regular' 的问题
  20. Siemens.Tecnomatix.16.0.1安装包及安装教程

热门文章

  1. 遥遥无期还是近在咫尺?长文展望「大模型」商业化前景
  2. 智源-AI Time 5 | 无人驾驶距离我们还有多远?(活动报名)
  3. 终于!有本书把我从“拖延+不专注”的低效深坑里救出来了!
  4. 看懂了这套书,你就看懂了程序的灵魂。
  5. Stream Processing: S4系统模型分析和关键源码读解
  6. 周志华教授发表首届国际学习与推理联合大会IJCLR开场Keynote:探索从纯学习到学习+推理的AI...
  7. 独家 | 这可能会引领通用AI的下一个重大突破
  8. 独家 | 图解BiDAF中的单词嵌入、字符嵌入和上下文嵌入(附链接)
  9. 数据蒋堂 | 莫非我就是被时代呼唤的数学人
  10. 困扰一天啦,求大神不吝指导,Camera的onPreviewFrame中的问题