转发:http://blog.csdn.net/mingtian715/article/details/53789487请移步原文

内容参见stanford课程《机器学习》

 
对于已建立的某一机器学习模型来说,不论是对训练数据欠拟合或是过拟合都不是我们想要的,因此应该有一种合理的诊断方法。
 
偏差和方差
评价数据拟合程度好坏,通常用代价函数J(平方差函数)。如果只关注Jtrain(训练集误差)的话,通常会导致过拟合,因此还需要关注Jcv(交叉验证集误差)。
 
高偏差:Jtrain和Jcv都很大,并且Jtrain≈Jcv。对应欠拟合。
高方差:Jtrain较小,Jcv远大于Jtrain。对应过拟合。
下图d代表多项式拟合的阶数,d越高,拟合函数越复杂,越可能发生过拟合。
 
 
如何理解高偏差和高方差
1、高偏差对应着欠拟合,此时Jtrain也较大,可以理解为对任何新数据(不论其是否属于训练集),都有着较大的Jcv误差,偏离真实预测较大。
2、高方差对应着过拟合,此时Jtrain很小,对于新数据来说,如果其属性与训练集类似,它的Jcv就会小些,如果属性与训练集不同,Jcv就会很大,因此有一个比较大的波动,因此说是高方差。
 
实际优化过程中,更多的是调整防止过拟合参数λ,λ对应正则化系数(越大,对过拟合的限制越强)。下图为λ和Jtrain、Jcv理想曲线。
 
 
学习曲线
学习曲线是描述Jtrain和Jcv和数据样本规模的关系曲线。参见下图
 
                                     
左图对应高偏差(欠拟合),右图对应过拟合。可以看出当模型属于高偏差时,随着样本数据规模增大,性能不会有什么改善,过拟合中的误差则在持续减小。这个很好理解,欠拟合一般是模型比较简单,不能准确的描述数据特征,因此盲目增大数据量是没用的;而过拟合是模型比较复杂,描述数据过于准确了,因此增加一些数据量可以减小过拟合。
 
 
模型修改策略
过拟合:增大数据规模、减小数据特征数(维数)、增大正则化系数λ
欠拟合:增多数据特征数、添加高次多项式特征、减小正则化系数λ

 
实际优化过程中,我们的目标就是使模型处于欠拟合和过拟合之间一个平衡的位置。

机器学习中的偏差(bias)和方差(variance)的更多相关文章

  1. 偏差(Bias)和方差(Variance)——机器学习中的模型选择zz

    模型性能的度量 在监督学习中,已知样本 ,要求拟合出一个模型(函数),其预测值与样本实际值的误差最小. 考虑到样本数据其实是采样,并不是真实值本身,假设真实模型(函数)是,则采样值,其中代表噪音,其均 ...

  2. 机器学习(二十四)— 偏差Bias 与方差Variance

    1.首先 Error = Bias + Variance  Error反映的是整个模型的准确度, Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度, Variance反映的是模 ...

  3. 模型的偏差bias以及方差variance

    1. 模型的偏差以及方差: 模型的偏差:是一个相对来说简单的概念:训练出来的模型在训练集上的准确度. 模型的方差:模型是随机变量.设样本容量为n的训练集为随机变量的集合(X1, X2, ..., Xn ...

  4. 机器学习中学习曲线的 bias vs variance 以及 数据量m

    关于偏差.方差以及学习曲线为代表的诊断法: 在评估假设函数时,我们习惯将整个样本按照6:2:2的比例分割:60%训练集training set.20%交叉验证集cross validation set ...

  5. 机器学习算法中的偏差-方差权衡(Bias-Variance Tradeoff)

    简单的以下面曲线拟合例子来讲: 直线拟合后,相比原来的点偏差最大,最后一个图完全拟合了数据点偏差最小:但是拿第一个直线模型去预测未知数据,可能会相比最后一个模型更准确,因为最后一个模型过拟合了,即第一 ...

  6. 斯坦福大学公开课机器学习: machine learning system design | error analysis(误差分析:检验算法是否有高偏差和高方差)

    误差分析可以更系统地做出决定.如果你准备研究机器学习的东西或者构造机器学习应用程序,最好的实践方法不是建立一个非常复杂的系统.拥有多么复杂的变量,而是构建一个简单的算法.这样你可以很快地实现它.研究机 ...

  7. 标准差(bias) 方差(variance)

    偏差(bias) 偏差度量了学习算法的期望预测与真实结果的偏离程序, 即 刻画了学习算法本身的拟合能力 . 方差(variance) 方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即 刻画 ...

  8. 斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)

    绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制 ...

  9. 斯坦福大学公开课机器学习: advice for applying machine learning | deciding what to try next(revisited)(针对高偏差、高方差问题的解决方法以及隐藏层数的选择)

    针对高偏差.高方差问题的解决方法: 1.解决高方差问题的方案:增大训练样本量.缩小特征量.增大lambda值 2.解决高偏差问题的方案:增大特征量.增加多项式特征(比如x1*x2,x1的平方等等).减 ...

随机推荐

  1. Delphi 判断按键状态

    Delphi 判断按键状态 http://blog.sina.com.cn/s/blog_54da9cc001015di1.html (2012-04-05 14:22:50) 标签: 杂谈 分类:  ...

  2. 彻底理解RSA算法原理

    1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法.在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加 ...

  3. IDEA中解决 git pull 冲突

    0.事先准备.1)把远程仓库的README.md内容改写为bbb(原先为aaa). 2)本地仓库的README.md内容改写为ccc(原先也为aaa). 以此来模仿代码冲突.    1.先commit ...

  4. Python web 面试题(一)

    1.列举django的内置组件? url .view.model.template.中间件 2.列举django中间件的5个方法?以及django中间件的应用场景? process_request(s ...

  5. 安装配置php及fastadmin

    FastAdmin教程之准备运行环境   一.Node.js http://nodejs.cn/download/ https://npm.taobao.org/mirrors/node/v8.4.0 ...

  6. redis进阶知识

    原文地址:https://my.oschina.net/u/4052893/blog/3001173 一.缓存雪崩 1.1什么是缓存雪崩? 回顾一下我们为什么要用缓存(Redis): 现在有个问题,如 ...

  7. 列表、元组和range

    小知识点 s = " 5 " print(int(s)) print(s.replace(" ","")) 结果: 5 5 id()#获取对 ...

  8. TestCase维护和思维导图

    在软件整个生命周期中,测试应该尽早地开始,因为测试对象不只是程序,还有文档和数据,所以针对需求分析说明书.概要设计和详细设计说明书,测试如何快速理解项目需求,进行下一步的工作呢? 本人觉得,如果只是看 ...

  9. windows 下mysql5.7设置密码

    学习Springboot时用到mysql数据库,以前用的mysql5.6版本 基本百度一个教程即可,听说5.7有新改动,突然想试试于是找到解压版mysql5.7照常安装, 以前用的mysql5.6版本 ...

  10. Optional接口简记

    @Data public class Employee { private String name; } @Data public class Company { private String nam ...