1   机器学习中的误差

一般地,将学习器(机器学习模型)的实际预测输出与样本的真实输出之间的差异称为“误差”(error)。

统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。不同的学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error) 就自然成为学习方法评估的标准。注意,统计学习方法具体采用的损失函数未必是评估时使用的损失函数。当然,让两者一致是比较理想的。

2    过拟合与欠拟合

2.1   期望误差

在机器学习三要素中,详见机器学习三要素。我们理论上希望期望误差越小越好,但是期望误差又不能直接求得,所以使用经验误差来估计期望误差。因此,希望机器学习模型预测的输出值与真实值间的误差越小。

但是,实际中并不是经验误差(期望误差)越小越好。若经验误差(期望误差)过小,则可能使得模型在训练集中表现的非常好,而在测试集中表现的非常差。也就是说过于强调拟合原始数据,而丢失了算法的本质,若给出一个新的值使之预测,它将表现的很差,将此现象称之为过拟合。

2.2     过拟合与欠拟合

下图是一个回归问题的例子,以此为例进行引入过拟合与欠拟合现象。

第一个模型是一个线性模型,处于欠拟合状态,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据。我们可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应我们的训练集但在新输入变量进行预测时可能会效果不好;而中间的模型似乎最合适。

分类问题中也存在这样的问题:

第一个模型处于欠拟合状态,不能很好的分类数据;第三个模型处于过拟合状态,对于新的数据集会表现的很差;中间第二个模型最合适。就以多项式理解,x 的次数越高,拟合的越好,但相应的预测的能力就可能变差(第三个模型)。

2.2.1   过拟合

过拟合:训练误差和泛化误差间的差距太大,即过度的关注于训练集数据本身,而忽略了它的规律,导致训练集上的误差<<验证集的误差。也就是说模型的学习能力太过强大,以至于把训练样本所包含的不太一般的特性都学到了。

泛化误差可以衡量一个机器学习模型是否可以很好地泛化到未知数据。机器学习的目的是减少泛化误差。

泛化误差一般表现为一个模型在训练集和测试集上的错误率。

模型的过拟合是无法彻底无法避免的,我们所能做的只能是“缓解”或减少其风险。

2.2.1.1     过拟合根本原因

过拟合的根本原因:是特征维度过多,导致拟合的函数完美的经过训练集,但是对新数据的预测结果则较差。即指学习时选择的模型所包含的参数过多,模型复杂度高,以致于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。

模型过拟合时所选模型的复杂度则往往会比真模型更高,在下图中,右边的图处于过拟合状态。函数超参数有5个,特征参数的维度为4维;而左边的图处于恰好合适的状态,函数超参数有3个,特征参数的维度为2维,因此,模型复杂度越高(多项式次数越多),越容易过拟合。

2.2.1.2    假设函数过拟合检验

为了检验算法是否过拟合,我们将数据分成训练集和测试集,通常用70%的数据作为训练集,用剩下30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的数据,通常我们要对数据进行“洗牌”,然后再分成训练集和测试集。

测试集评估在通过训练集让我们的模型学习得出其参数后,对测试集运用该模型,我们有两种方式计算误差:

1、对于线性回归模型,我们利用测试集数据计算代价函数

2、对于逻辑回归模型,我们除了可以利用测试数据集来计算代价函数外:

误分类的比率,对于每一个测试集实例,计算:

然后对计算结果求平均。

2.2.1.3  过拟合的判断

使用一个测试集来测试每一次迭代的参数在测试集上是否最优,将训练集和测试结的代价函数错误率与迭代次数绘制在同一张图上。比较随着迭代次数的增加,训练误差与测试误差间的关系。

对于训练集,当迭代次数较小时,模型拟合程度更低,训练误差较大;随着迭代次数的增长,拟合程度提高,训练误差减小。

对于测试集或交叉验证集,当迭代次数较小时,模型拟合程度低,测试集或交叉验证集误差较大;但是随着迭代次数的增长,测试集或交叉验证集误差呈现先减小后增大的趋势,转折点是我们的模型开始过拟合训练数据集的时候,此时,应该提前停止训练或测试。

2.2.1.4     过拟合解决方法

问题是,如果我们发现了过拟合问题,应该如何处理?

1、减少特征维度,丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA)

2、正则化。保留所有的特征,但是减少参数θ的大小(magnitude)来影响模型。

3、数据集扩增。需要得到更多的符合要求的数据,即和已有的数据是独立同分布的。

2.2.2   欠拟合

指机器学习模型不能在训练集上获得足够小的误差,即训练误差太大,模型在训练集中没有训练好。

2.2.2.1   欠拟合根本原因

欠拟合的根本原因是特征维度过少,导致拟合的函数无法满足训练集,误差较大,训练不充分。

模型欠拟合时所选模型的复杂度则往往会比真模型更低,在下图中,右边的图处于欠拟合状态。函数超参数有2个,特征参数的维度为1维;而左边的图处于恰好合适的状态,函数超参数有3个,特征参数的维度为2维,因此,模型复杂度越低,越容易欠拟合。

2.2.2.2     欠拟合的判断

使用一个测试集来测试每一次迭代的参数在测试集上是否最优,将训练集和测试结的代价函数错误率与迭代次数绘制在同一张图上。比较随着迭代次数的增加,训练误差与测试误差间的关系。

对于训练集,当迭代次数较小时,模型拟合程度更低,训练误差较大,处于欠拟合状态,随着迭代次数的增加,训练误差减少缓慢或处于平缓状态。

对于测试集,当迭代次数较小时,模型拟合程度低,测试误差较大,处于欠拟合状态,随着迭代次数的增加,训练误差减少缓慢或处于平缓状态。

即主要检查测试集或验证集的误差大小,若测试集或验证集的误差很大,则说明模型处于欠拟合状态。

2.2.2.3    欠拟合的解决方法

通过增加特征维度,即增加训练数据集来解决。

3    偏差与方差

3.1    偏差与方差分解

机器学习中偏差与方差并不是单独存在,而是相互依存。偏差-方差分解解释了偏差、方差和噪音间的关系。偏差-方差分解试图对机器学习算法的期望泛化错误率进行拆解,算法在不同训练集上学得的结果很可能不同,即便这些训练集是来自同一分布。

即泛化误差可以分解为偏差、方差和噪音之和。

偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变化所导致的学习性能的变化,即刻画了数据扰动所造成的的影响;噪音表达了在当前任务上任何学习算法所能表达到的期望泛化误差下界,即刻画了学习问题本身的难度。

给定学习任务,为了取得好的泛化性能,则需要使得偏差较小,即能够给充分拟合数据,并且是方差较小,即使得数据扰动产生影响小。

下图是偏差-方差关系图。给定学习任务,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使得学习器产生显著的变化,此时偏差主导了泛化误差错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐被学习器学到,方差逐渐主导了泛化错误率;在训练数程度充足后,学习器拟合能力已经非常强,训练数据发生轻微的扰动则会导致学习器发生显著的变化,若训练数据自身的、非全局的特性被学习器学到了,则会发生过拟合。

3.2    过拟合、偏差与方差间的关系

在机器学习中,当你运行一个学习算法时,如果这个算法的表现不理想,那么多半是出现两种情况:要么是偏差比较大,要么是方差比较大。换句话说,出现的情况要么是欠拟合,要么是过拟合问题。那么这两种情况,哪个和偏差有关,哪个和方差有关,或者是不是和两个都有关?

以多项式函数为例,多项式的次数越多,模型越复杂。我们通常会通过将训练集和交叉验证集的代价函数误差与多项式的次数绘制在同一张图表上来帮助分析:

对于训练集,当多项式次数d较小,模型较简单时,模型拟合程度更低,误差较大;随着多项式次数d的增长,模型复杂度增加,拟合程度提高,误差减小。

对于交叉验证集,当多项式次数d较小,模型较简单时,模型拟合程度低,误差较大;但是随着多项式次数d的增长,模型复杂度增加,误差呈现先减小后增大的趋势,转折点是我们的模型开始过拟合训练数据集的时候。

如果我们的交叉验证集误差较大,我们如何判断是方差还是偏差呢?根据上面的图表,我们知道:

当训练集误差和交叉验证集误差相近时,训练集误差和测试集误差的偏差很小,模型处于欠拟合状态;即训练集误差和交叉验证集误差近似时:偏差/欠拟合。

当训练集误差和交叉验证集误差相差较大时,训练集误差和交叉验证集误差的方差很大,模型处于过拟合状态;即交叉验证集误差远大于训练集误差时:方差/过拟合。

3.3    偏差与方差的判断

学习曲线就是一种很好的工具,我经常使用学习曲线来判断某一个学习算法是否处于偏差、方差问题。学习曲线是学习算法的一个很好的合理检验(sanity check)。学习曲线是将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制的图表。

即,如果我们有100行数据,我们从1行数据开始,逐渐学习更多行的数据。思想是:当训练较少行数据的时候,训练的模型将能够非常完美地适应较少的训练数据,但是训练出来的模型却不能很好地适应交叉验证集数据或测试集数据。

如何利用学习曲线识别高偏差/欠拟合:作为例子,我们尝试用一条直线来适应下面的数据,可以看出,无论训练集有多么大误差都不会有太大改观:

也就是说在高偏差/欠拟合的情况下,增加数据到训练集不一定能有帮助。

如何利用学习曲线识别高方差/过拟合:假设我们使用一个非常高次的多项式模型,并且正则化非常小,可以看出,当交叉验证集误差远大于训练集误差时,往训练集增加更多数据可以提高模型的效果。

也就是说在高方差/过拟合的情况下,增加更多数据到训练集可能可以提高算法效果。

4    参考资料

[1].《机器学习》         ---周志华

[2].《统计学习方法》  ---李航

[3]. https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

机器学习之过拟合与欠拟合相关推荐

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

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

  2. 机器学习回归算法—性能评估欠拟合与过拟合

    机器学习中的泛化,泛化即是,模型学习到的概念在它处于学习的过程中时模型没有遇见过的样本时候的表现.在机器学习领域中,当我们讨论一个机器学习模型学习和泛化的好坏时,我们通常使用术语:过拟合和欠拟合.我们 ...

  3. 百面机器学习 #2 模型评估:07 过拟合和欠拟合及其常用解决方法

    如何有效地识别"过拟合"和"欠拟合"现象,并有针对性地进行模型调整,是不断改进机器学习模型的关键. 过拟合 模型对于训练数据拟合呈过当的情况 反映到评估指标上, ...

  4. 机器学习算法中的过拟合与欠拟合(转载)

    在机器学习表现不佳的原因要么是过度拟合或欠拟合数据. 1.机器学习中的逼近目标函数过程 监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y). Y=f(X)Y ...

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

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

  6. 机器学习中的过拟合与欠拟合

    目录 一.什么是过拟合与欠拟合 二.原因及解决方法 三.正则化类别 四.拓展-原理 问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有 问题呢? 当算法在某个数据集当中出现这种情况,可能就出 ...

  7. 【机器学习】过拟合与欠拟合

    我们在训练机器学习模型或者深度学习神经网络中经常会遇到过拟合与欠拟合的问题,接下来就对这两个问题进行简单介绍,并举出几种相应的解决办法. 1.过拟合与欠拟合 过拟合是指训练数据上能够获得比其他假设更好 ...

  8. 机器学习基础概念——过拟合和欠拟合

    欢迎关注,敬请点赞! 机器学习基础概念--过拟合和欠拟合 1. 基本概念 1.1 偏差和方差 2. 欠拟合和过拟合 2.1 学习曲线 2.2 复杂程度曲线 2.3 支持向量机的过拟合和欠拟合 2.4 ...

  9. 机器学习之过拟合和欠拟合

    文章目录 前言 什麽是过拟合和欠拟合? 过拟合和欠拟合产生的原因: 欠拟合(underfitting): 过拟合(overfitting): 解决欠拟合(高偏差)的方法 1.模型复杂化 2.增加更多的 ...

  10. 机器学习考点---过拟合与欠拟合、CNN原理......

    2 . 与数据相关的内容:数据的标注来源.规范化.增广.噪声处理怎么处理?数据有噪声好不好? 测试集.验证集.训练集各自的作用: 训练集:参数调优. 验证集:超参.模型的选择,模型评估,正则化 . 为 ...

最新文章

  1. linux目录为root所有文件,linux获取文件所有目录/文件夹的例子linux操作系统 -电脑资料...
  2. html标签思维导图
  3. JS中的(IIFE)(立即调用函数)
  4. CTF-web文件上传漏洞
  5. win7设置html,Windows7怎么设置默认浏览器?
  6. 幼师学计算机心得体会怎么写,幼儿教师学习心得
  7. cicd持续集成全程_CICD-持续集成amp;持续交付
  8. matlab com组件 发布,matlab生成com组件
  9. 谁在指使这家印度 IT 公司攻击全球政治家、投资者和记者?
  10. php左内连接,内连接和外连接的区别是什么
  11. 【复习】数学分析知识点梳理【思维导图】
  12. 初中计算机课师徒结对活动记录,2013师徒结对活动记录
  13. 银河麒麟安装node
  14. 君不密则失臣,臣不密则失身,机事不密则害成
  15. 基于Springboot+MybatisPlus+Layui的商品库存权限管理系统
  16. vmvare打开虚拟机时报错:vmx文件已损坏
  17. binlog流程 mysql_MySQL binlog分析程序:Open Replicator
  18. Android 8.1 应用安装过程总结
  19. 基于Scrapy框架爬取豆瓣《复联4》影评,并生成词云
  20. 写个厦门市健身徒步爬山线路的web静态页面

热门文章

  1. 【Microsoft Azure 的1024种玩法】六十九.通过SSMS将本地自建SQL Server 数据库脱机迁移至Azure SQL Database
  2. 2019最新《炼数成金实战Java高并发程序设计+完整课件》
  3. php三D立体模拟,【HTML5】3D模型--百行代码实现旋转立体魔方实例
  4. Rectangling Panoramic Images via Warping算法要点分析
  5. photoshop涂抹工具
  6. 泰坦尼克号乘客生存情况分析之第二部分特征工程
  7. 计算机配置64位几个字节,电脑装32位还是64位系统
  8. K8S Ingress的安装与使用
  9. 3D打印探讨:三个应用方向与四项风险
  10. 温德姆集团加速麦客达品牌在华扩张;柏悦酒店将进驻长沙;希尔顿惠庭中国首店将在深圳开业 | 美通社头条...