泛化、过拟合与欠拟合

在监督学习中,我们想要在训练数据上构建模型,然后能够对没见过的新数据(这些新数据与训练集具有相同的特性)做出准确预测。如果一个模型能够对没见过的数据做出准确预测,我们就说它能够从训练集 泛化(generalize)到测试集。我们想要构建一个泛化精度尽可能高的模型。

通常来说,我们构建模型,使其在训练集上能够做出准确预测。如果训练集和测试集足够相似,我们预计模型在测试集上也能做出准确预测。不过在某些情况下这一点并不成立。例如,如果我们可以构建非常复杂的模型,那么在训练集上的精度可以想多高就多高。为了说明这一点,我们来看一个虚构的例子。比如有一个新手数据科学家,已知之前船的买家记录和对买船不感兴趣的顾客记录,想要预测某个顾客是否会买船。目标是向可能购买的人发送促销电子邮件,而不去打扰那些不感兴趣的顾客。

假设我们有顾客记录,如表 2-1 所示。


对数据观察一段时间之后,我们的新手数据科学家发现了以下规律:“如果顾客年龄大于45 岁,并且子女少于 3 个或没有离婚,那么他就想要买船。”如果你问他这个规律的效果如何,我们的数科学家会回答:“100% 准确!”的确,对于表中的数据,这条规律完全正确。我们还可以发现好多规律,都可以完美解释这个数据集中的某人是否想要买船。数据中的年龄都没有重复,因此我们可以这样说:66、52、53 和 58 岁的人想要买船,而其他年龄的人都不想买。虽然我们可以编出许多条适用于这个数据集的规律,但要记住,我们感兴趣的并不是对这个数据集进行预测,我们已经知道这些顾客的答案。我们想知道新顾客是否可能会买船。因此,我们想要找到一条适用于新顾客的规律,而在训练集上实现100% 的精度对此并没有帮助。我们可能认为数据科学家发现的规律无法适用于新顾客。它看起来过于复杂,而且只有很少的数据支持。例如,规律里“或没有离婚”这一条对应的只有一名顾客。

判断一个算法在新数据上表现好坏的唯一度量,就是在测试集的评估。然而从直觉上看,我们认为简单的模型对新数据的泛化能力更好。如果规律是“年龄大于 50岁的人想要买船”,并且这可以解释所有顾客的行为,那么我们将更相信这条规律,而不是与年龄、子女和婚姻状况都有关系的那条规律。因此,我们总想找到最简单的模型。构建一个对现有信息量来说过于复杂的模型,正如我们的新手数据科学家做的那样,这被称为过拟合(overfitting)。如果你在拟合模型时过分关注训练集的细节,得到了一个在训练集上表现很好、但不能泛化到新数据上的模型,那么就存在过拟合。与之相反,如果你的模型过于简单——比如说,“有房子的人都买船”——那么你可能无法抓住数据的全部内容以及数据中的变化,你的模型甚至在训练集上的表现就很差。选择过于简单的模型被称为 欠拟合(underfitting)。我们的模型越复杂,在训练数据上的预测结果就越好。但是,如果我们的模型过于复杂,我们开始过多关注训练集中每个单独的数据点,模型就不能很好地泛化到新数据上。二者之间存在一个最佳位置,可以得到最好的泛化性能。这就是我们想要的模型。

图 2-1 给出了过拟合与欠拟合之间的权衡。

站在巨人的肩膀上
来源:《Python机器学习基础教程》

泛化、过拟合与欠拟合相关推荐

  1. 机器学习笔记(通俗易懂)---监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2)

    机器学习笔记-监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2) 明天开始就打数模美赛了,今天简单地介绍一下监督学习 以下都是本人在学习机器学习过程中的一些心得和笔记,仅供参考 文章目录 机器学习笔 ...

  2. 机器学习1:泛化(过拟合、欠拟合)

    机器学习1:泛化(过拟合.欠拟合) 泛化 理解 判断 过拟合 欠拟合 机器学习中的逼近目标函数过程 统计拟合 机器学习中的过拟合 机器学习中的欠拟合 机器学习中好的拟合 个人理解泛化就是让机器具有举一 ...

  3. 机器学习模型调优方法(过拟合、欠拟合、泛化误差、集成学习)

    机器学习模型调优方法 过拟合和欠拟合 降低过拟合风险的方法 降低欠拟合风险的方法 泛化误差.偏差和方差 泛化误差 偏差和误差 模型评估 Holdout检验 交叉检验 自助法 集成学习 Boosting ...

  4. Python机器学习:多项式回归与模型泛化003过拟合与欠拟合

    过拟合欠拟合 #过拟合和欠拟合 import numpy as np import matplotlib.pyplot as plt x = np.random.uniform(-3,3,size=1 ...

  5. 机器学习中过拟合、欠拟合与方差、偏差的关系是什么?

    机器学习中过拟合.欠拟合与方差.偏差的关系是什么? 过拟合(overfitting)与欠拟合(underfitting)是统计学中的一组现象.过拟合是在统计模型中,由于使用的参数过多而导致模型对观测数 ...

  6. 过拟合、欠拟合与正则化

    https://www.toutiao.com/a6666213114146456072/ 在机器学习模型的训练过程中,经常会发生过拟合(overfitting).欠拟合(underfitting)的 ...

  7. 机器学习之过拟合与欠拟合以及偏差-方差分解

    1.过拟合 所谓过拟合就是:把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致训练出的模型其泛化能力降低,这就是过拟合. 如何解决? 1)Early stopping Earl ...

  8. python 线性回归与逻辑回归区别(有监督学习【分类、回归】、无监督学习【聚类、强化学习】、损失函数、梯度下降、学习率、过拟合、欠拟合、正则化)

    引用文章1 https://blog.csdn.net/viewcode/article/details/8794401 引用文章2:一.线性回归和逻辑回归 一.什么是机器学习 利用大量的数据样本,使 ...

  9. 31,32,33_过拟合、欠拟合的概念、L2正则化,Pytorch过拟合欠拟合,交叉验证-Train-Val-Test划分,划分训练集和测试集,K-fold,Regularization

    1.26.过拟合.欠拟合及其解决方案 1.26.1.过拟合.欠拟合的概念 1.26.1.1.训练误差和泛化误差 1.26.1.2.验证数据集与K-fold验证 1.26.1.3.过拟合和欠拟合 1.2 ...

最新文章

  1. 湖南中医药大学计算机刘伟老师,喜讯 | 湖南中医药大学在全省高校教师课堂教学竞赛中喜获佳绩...
  2. spark需要maven管理吗_Spark-Maven全新安装:如何同时编译Java和Scala类
  3. 专属于Java程序员的学习福音
  4. OpenCV高动态范围成像
  5. 析构函数和动态内存管理
  6. vue v-if判断数组元素的值_Vue项目上线做的一些基本优化
  7. cad pu插件下载lisp_CAD自动编号lisp插件下载
  8. Java线程同步(二)
  9. 64位windows系统如何显示32位dcom组件配置
  10. mac配置环境变量不生效
  11. .net MvcPager+Ajax无刷新分页
  12. 结构体数组和二维数组初始化和拷贝
  13. 基于Java GUI的资产管理系统的设计与实现
  14. python入门基础要点,入门决定没问题(初学者专属)
  15. java基于ssm房屋出售租赁管理系统
  16. beautifulsoup菜鸟教程
  17. RationalDMIS 2020 叶片检测 -快速定义叶片截面线方法
  18. 大蟒蛇python编译器_python蟒蛇绘制
  19. 【数据压缩2】TGA格式图片文件分析
  20. 数字孪生技术为智慧城市的建设带来哪些帮助?

热门文章

  1. Spring Destroying singletons ... root of factory hierarchy 问题【已解决】
  2. 跨时钟域问题(CDC)
  3. 分享一些前端开发人员必备的工具,脚本和资源
  4. 从钉钉后台获取考勤数据(其他数据获取类似)
  5. 金融基础知识笔记(一)
  6. rainkin教你如何下载flash中的视频
  7. 免费在线汉信码识别(Online Hanxin Decoder)
  8. 【项目实践】YOLO V4万字原理详细讲解并训练自己的数据集(pytorch完整项目打包下载)...
  9. 张良(?—前189年)
  10. elasticsearch通过logstash同步mysql数据(中文分词)