精华内容
下载资源
问答
  • Bias和Variance 区别

    千次阅读 2016-02-29 17:07:11
    在看Coursera上machine learning课程时,有bias和variance,如下图所示这里的bias指偏差,variance指方差。概率论与数理统计这门课中应该讲过这些概念,为了完整,按照我自己理解,详述如下: 1,感性讲,...

    在看Coursera上的machine learning课程时,有bias和variance,如下图所示

    图片来源于Ng的课程

    这里写图片描述

    这里的bias指偏差,variance指方差。概率论与数理统计这门课中应该讲过这些概念,为了完整,按照我自己的理解,详述如下:
    1,感性的讲,bias指的是与真值的偏离程度,variance是指的聚集程度,与真值关系不大,如下图所示:

    这里写图片描述

    2,数学表达就不翻译了,直接如下:
    这里写图片描述

    参考资料:
    1,http://scott.fortmann-roe.com/docs/BiasVariance.html

    展开全文
  • 原楼主在文中为了解释诊断偏离bias和方差variance的区别,定义并举例说明了二者的概念,深入浅出,值得学习。 总的来说,同样的正则化参数,使得不同的训练数据训练出不同的模型。那么如果想评估

    本文转自这里

    本文主要讲解了machine learning中模型选择、评估的方法,重点在于诊断模型欠拟合或过拟合时用到的偏离bias和方差variance的概念,及其与正则化项的关系。

    这部分是machine learning中非常有用的,对于训练、诊断、选择模型非常有帮助。

    原楼主在文中为了解释诊断偏离bias和方差variance的区别,定义并举例说明了二者的概念,深入浅出,值得学习。


    总的来说,同样的正则化参数,使得不同的训练数据训练出不同的模型。那么如果想评估正则化参数的好坏,应该怎么做呢?这就要求:

    第一,这组正则化参数,在不同训练数据下训练出的模型,我们希望这些模型的均值越接近实际模型越好,即bias越小越好;

    第二,这组模型,本身的方差不要太大。也就是不同训练数据训练的模型之间,不要差别太大,即variance越小越好。

    bias:估计的均值模型与实际模型之间的距离

    variance:不同模型与估计的均值模型之间的平均距离



    本栏目(Machine learning)包括单参数的线性回归、多参数的线性回归、Octave Tutorial、Logistic Regression、Regularization、神经网络、机器学习系统设计、SVM(Support Vector Machines 支持向量机)、聚类、降维、异常检测、大规模机器学习等章节。所有内容均来自Standford公开课machine learning中Andrew老师的讲解。(https://class.coursera.org/ml/class/index


    第六讲. 怎样选择机器学习方法——Advice for applying machine learning

    ===============================

    候选机器学习方法

    评价方法假设

    模型选择和训练、验证实验数据

    区别诊断偏离bias和偏差variance

    规则化 和 bias/variance

    Learning Curve:什么时候增加训练数据training set才是有效的?


    ===============================

    候选机器学习方法——Deciding what to try next


    还用房价的prediction举例,假设我们已经实现了用规则化的线性回归方法预测房价:


    但发现该预测应用于一个新的训练数据上时有很大误差(error),这时应采取一些解决方案:

    Get more training examples
    Try smaller sets of features
    Try getting additional features
    Try adding polynomial features (e.g.  x1^2, x2^2, x1x2...)
    Try decreasing λ
    Try increasing λ

    Machine Learning 方法的诊断:

    什么是诊断Dignostic呢?诊断就是能够判断一种学习算法能不能work,并且改善该算法性能的一个测试。

    Diagnostic: A test that you can run to gain insight what is/isn't working with a learning algorithm, and gain guidance as to how best to improve its performance.

    -诊断的效果:Diagnostics can take time to implement, but doing so can be a very good use of your time.





    ===============================

    评价方法假设——Evaluating a hypothesis

    首先呢,我们将所有数据分为两个集合,一个Trainning set和一个Testing set,用Training set得到参数向量,用Testing set进行测试(比如分类)。


    这时,将test set的error分为线性回归linear regression和逻辑回归logistic regression两类:

    -线性回归的error:


    -逻辑回归的error:




    ===============================

    模型选择和训练、验证实验数据


    面对模型选择问题,如何才能得到一个just fit的模型而不会导致underfit 或者overfit呢?我们引入一类数据集,叫做cross validation set,即交叉验证数据集。将所有数据按<6,2,2>分为training set , cross validation set , testing set三类,如下图所示:


    其error计算公式如下,其实三类计算方法大同小异,相同的公式只是换了数据及而已:



    进行模型选择的方法其实很简单,对应下图大家来看:

    -首先,建立d个model 假设(图中有10个,d表示其id),分别在training set 上求使其training error最小的θ向量,那么得到d个θ

    -然后,对这d个model假设,带入θ,在cross validation set上计算J(cv),即cv set error最小的一个model 作为 hypothesis,如下图中J(cv)在第4组中最小,便取d=4的假设。

    PS: 其实d表示dimension,也就是维度,表示该hypothesis的最大polynomial项是d维的。

    PS': 一般地,J(cv)是大于等于J(train)的


    ===============================

    区别诊断偏离bias和偏差variance

    前面的课程中我们曾讲过相同数据不同回归情况:




    这一节中,我们给大家区分两个概念:bias vs. variance

    如下图所示为error随不同dimensionmodel变化图,可以想见,随d上升是一个由underfit到overfit的过程,这个过程中,training set的error逐渐下降,而cv set的error先降后升。




    这里就产生了bias和variance的概念:

    bias:J(train)大,J(cv)大,J(train)≈J(cv),bias产生于d小,underfit阶段;

    variance:J(train)小,J(cv)大,J(train)<<J(cv),variance产生于d大,overfit阶段;

    如下图所示:



    来来,做道题:




    -------------------------------------------------------------


    好,有了初步概念,现在我们来看bias和variance的由来及具体定义:

    给定数据及D(比如一个点集吧),对于这些数据集上的点我们可以计算每个index下点的平均值(即期望)t(x) = E(y|x),则我们有mean square error:


    MSE = 1/n * Σ(f(x)-t(x))^2



    MSE(mean square error) = Bias2 + Variance +noise



    定义上是这么讲的:

    Variance: measures the extent to which the solutions for individual data sets vary around their average, hence this measures the extent to which the function f(x) is sensitive to theparticular choice of data set.

    Bias: represents the extent to which the average prediction over all data sets differs from the desired regression function.

    Our goal is to minimize the expected loss, which we havedecomposed into the sum of a (squared) bias, a variance, and a constant noiseterm. As we shall see, there is a trade-off between bias and variance, with very flexible models(overfit) having low bias and high variance, and relatively rigid models(underfit) having high bias and low variance



    总结一下:

    variance:估计本身的方差。

    bias:估计的期望和样本数据样本希望得到的回归函数之间的差别。


    具体来讲,我有一个统计量D(比如统计某大学研一学生身高在[0.5-1],[1,1.1],[1.1,1.2]……[1.9,2]之间的人数),这样可以形成一些离散点。然后呢,本校研一有20个班,每个班就都可以拟合成一条估计曲线f(x),这20条曲线呢,有一个平均值,也就是估计期望(均值)曲线E(f(x,D))。


    variance是指,这20条估计曲线与最后估计期望(均值)之间的距离,也就是估计曲线本身的方差,是不可能为0的。

    bias是指,20条估计曲线的均值与实际最佳拟合情况之间的距离。


    这样一来呢,对于regularization项中的λ,


    λ小 , d大 -> overfit(flexible) -> 

    对于不同的训练数据集(不同班级的数据)的拟合结果抖动很大 -> variance大 

    bias是估计均值与实际值期望的偏差 -> bias小

    下图中,左图为拟合的20条曲线;右图红线为20条曲线的期望,绿色为实际数据期望所得的拟合曲线。




    λ大 , d小 -> underfit(stable) -> 

    对于不同的训练数据集(不同班级的数据)的拟合结果抖动较小 -> variance小

    bias是估计均值与实际值期望的偏差 ,不能很好地进行回归-> bias大

    下图中,左图为拟合的20条曲线;右图红线为20条曲线的期望,绿色为实际数据期望所得的拟合曲线。




    下图所示为λ与bias, variance, error之间的关系:




    我们希望的数据的variance和bias都不要大:



    那么着就是一个variance和bias之间的tradeoff 了~







    ===============================

    规则化 和 bias/variance


    上面一节中讲了bias和variance的诞生,那么这一节中偶们就将他们应用于regularization中。

    大家还记的什么是regularization么?regularization就是为了防止overfit而在cost function中引入的一个分量。

    还不清楚?看下图吧,regularization项就是cost function J(θ)中的最后一项,其中λ太大导致underfit,λ太小导致overfit……




    将λ从0,0.01,一直往上每次乘以2,那么到10.24总共可以试12次λ。

    这12个λ会得到12个model的 cost function,每个对应有J(θ)和 Jcv(θ).

    和模型选择的方法相同,首先选出每个cost function下令J(θ)最小的θ,然后取出令Jcv(θ)最小的一组定为最终的λ



    来来,看看你做的对不:



    图画出来就是这个样子滴:



    λ太小导致overfit,产生variance,J(train)<<J(cv)

    λ太大导致underfit,产生bias,J(train) ≈ J(cv)

    能明白我的意思么?



    ===============================

    Learning Curve:什么时候增加训练数据training set才是有效的?



    这一小节想要讲讲训练数据个数m和error之间的关系。从上面这幅图中我们可知(不知的话用极限思维想想),训练数据越少(如果只有一个),J(train)越小,J(cv)越大;m越大,J(train)越大(因为越难perfectly拟合),J(cv)越小(因为越精确),懂我的意思吧?


    那么我们分别就High Bias 和 High Variance来看看增加training set个数,即m,是否有意义?


    Underfit 的 High bias: 增加m无济于事!



    Overfit的 High Variance: 增加m使得J(train)和J(cv)之间gap减小,有助于performance提高!



    来来,做道题:



    由图中可见,增加训练数据的个数对于过拟合是有用的,对于underfit是徒劳

    下面总结一下,重温最初的解决方案列表:




    针对underfit和overfit,分别是什么情况呢?见下图:




    这章非常有用,讲了选择最佳拟合model的问题,是machine learning的常见问题,希望能对大家选择ml 模型有所帮助。



    展开全文
  • 参考:... 目录(?)[-] Bias偏差Error误差和Variance方差的区别 1概念2biasVariance的区别3解决bias和Variance问题的方法 Bias(偏差),Error(误差),和Variance(方差)

    参考:

    http://blog.csdn.net/qq_16365849/article/details/50635700

    http://mp.weixin.qq.com/s?__biz=MzI5OTQ1Njc0NQ==&mid=2247484595&idx=1&sn=722924207949982c3ae47bc5f8c39a5c&chksm=ec970535dbe08c23a7203b7c37d5a3bf98d5b81476be3a03c6f4cd17e192f54c49b7bdda79a0&mpshare=1&scene=1&srcid=0318xfwQm9ax3MysC9TVbiE2#rd

    Bias(偏差),Error(误差),和Variance(方差)的区别

    1)、概念:

    bias :度量了某种学习算法的平均估计结果所能逼近学习目标的程度;(一个高的偏差意味着一个坏的匹配) 
    variance :则度量了在面对同样规模的不同训练集时分散程度。(一个高的方差意味着一个弱的匹配,数据比较分散) 

    这里写图片描述 
    靶心为某个能完美预测的模型,离靶心越远,则准确率随之降低。靶上的点代表某次对某个数据集上学习某个模型。纵向上,高低的bias:高的Bias表示离目标较远,低bias表示离靶心越近;横向上,高低的variance,高的variance表示多次的“学习过程”越分散,反之越集中。 
    所以bias表示预测值的均值与实际值的差值;而variance表示预测结果作为一个随机变量时的方差。

    一般训练程度越强,偏差越小,方差越大,泛化误差一般在中间有一个最小值,如果偏差较大,方差较小,此时一般称为欠拟合,而偏差较小,方差较大称为过拟合。

    偏差:

    方差:

    2)、bias与Variance的区别:

    首先 Error = Bias + Variance 
    Error反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望(平均值)之间的误差,即模型的稳定性,数据是否集中。 
    方差是多个模型间的比较,而非对一个模型而言的;偏差可以是单个数据集中的,也可以是多个数据集中的。


    3)、解决bias和Variance问题的方法:

    ①在训练数据上面,我们可以进行交叉验证(Cross-Validation)。 
    一种方法叫做K-fold Cross Validation (K折交叉验证), K折交叉验证,初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测。 
    当K值大的时候,我们会有更少的Bias(偏差), 更多的Variance。 
    当K值小的时候,我们会有更多的Bias(偏差), 更少的Variance。 
    cross-validation很大一个好处是避免对test dataset的二次overfitting。k-fold一般取k=5/10比较常见,当然也可以根据你的需要(看样本量怎么可以整除啦之类的),也要看电脑和软件的运算能力。 
    ②Boosting通过样本变权全部参与,故Boosting 主要是降低 bias(同时也有降低 variance 的作用,但以降低 bias为主);而 Bagging 通过样本随机抽样部分参与(单个学习器训练),故bagging主要是降低 variance。 
    ③High bias解决方案: 
    1)与领域专家交流来获取更多信息,据此增加更多熟人特征 
    2)以非线性方式对现有特征进行组合 
    3)使用更复杂模型,比如神经网络中的层等 
    High Variance: 
    如果问题是由于我们过度高估模型复杂度而导致的high Variance,那么可以把一些影响小的特征去掉来降低模型复杂度。此时也无需收集更多数据。

    为什么说朴素贝叶斯是高偏差低方差?

    它简单的假设了各个特征之间是无关的,是一个被严重简化了的模型。所以,对于这样一个简单模型,大部分场合都会bias部分大于variance部分,也就是高偏差,低方差


    展开全文
  • 偏差指是由所有采样得到大小为m训练数据集训练出所有模型输出平均值真实模型输出之间偏差。 方差指是由所有采样得到大小为m训练数据集训练出所有模型输出方差。方差通常是由于模型...

    偏差 Bias

    偏差指的是由所有采样得到的大小为m的训练数据集训练出的所有模型的输出的平均值和真实模型输出之间的偏差。

    方差 Variance

    方差指的是由所有采样得到的大小为m的训练数据集训练出的所有模型的输出的方差。方差通常是由于模型的复杂度相对于训练样本数m过高导致的,比如一共有100个训练样本,而我们假设模型是阶数不大于200的多项式函数。由方差带来的误差通常体现在测试误差相对于训练误差的增量上。

    Bagging

    Bagging是Bootstrap Aggregate的简称,意思就是再抽样,即每一次从原始数据中根据均匀概率分布有放回的抽取和原始数据大小相同的样本集合,样本点可能出现重复,然后对每一次产生的训练集构造一个分类器,再对分类器进行组合。

    Bagging是减小方差的优化。假设有n个完全独立的模型,每个方差为σ2\sigma^2,也就是说Var(Xi)=σ2Var(X_i)=\sigma^2,那么
    Var(1ni=1nXi)=1n2Var(i=1nXi)=σ2nVar(\frac{1}{n}\sum_{i=1}^nX_i)=\frac{1}{n^2}Var(\sum_{i=1}^n{X_i})=\frac{\sigma^2}{n}
    但是Bagging的过程中有放回,假设单模型的相关系数是p,那么
    Var(1ni=1nXi)=pσ2+(1p)σ2nVar(\frac{1}{n}\sum_{i=1}^nX_i)=p\sigma^2+(1-p)\frac{\sigma^2}{n},随着n增大,最终趋向于pnσ2\frac{p}{n}\sigma^2,因此Bagging会是减小方差的优化

    P值

    P值(P value)就是当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率。如果P值很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,P值越小,我们拒绝原假设的理由越充分。总之,P值越小,表明结果越显著。但是检验的结果究竟是“显著的”、“中度显著的”还是“高度显著的”需要我们自己根据P值的大小和实际问题来解决。

    展开全文
  • 要想在bias上表现好,low bias,就得复杂化模型,增加模型参数,但这样容易过拟合 (overfitting),过拟合对应上图是high variance,点很分散。low bias对应就是点都打在靶心附近,所以瞄是准,但手不一定稳。 ...
  • bias 衡量模型拟合训练数据能力,其中训练数据可以是数据部分(mini—batch) bias越小,拟合能力就越高(可能产生over fitting)反之,拟合能力低(underfitting) variance 衡量模型泛化...
  • 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系? 参见 https://www.zhihu.com/question/27068705  误差 在分类任务中,通常把错分样本数占样本总数比例称为错误率(error ...
  • 偏差(bias)方差(variance)区别

    千次阅读 2018-09-05 20:23:15
    偏差(bias)方差(variance)区别: 偏差指是算法期望预测与真实预测之间偏差程度, 反应了模型本身 拟合能力; 方差度量了同等大小训练集变动导致学习性能变化, 刻画了数据扰动 所导致影响。 ...
  • Bias反映是模型在样本上输出与真实值之间误差,即模型本身精准度,其实Bias在股票上也有应用,也可以反映股价在波动过程中与移动平均线偏离程度(乖离率),炒股朋友应该知道均线概念。其实通过这个我...
  • Bias(偏差),Error(误差),和Variance(方差)的区别1)、概念:bias :度量了某种学习算法的平均估计结果所能逼近学习目标的程度;(一个高的偏差意味着一个坏的匹配) variance :则度量了在面对同样规模的不同训练...
  • 前几天搜狗一道笔试题,大意是在随机森林上增加一棵树,variance和bias如何变化呢? 参考知乎上讨论:https://www.zhihu.com/question/27068705 另外可参考林轩田老师在机器学习技法《Blending and Bagging...
  • bias/variance角度解释GDBT与RF的区别

    千次阅读 2017-06-20 16:31:03
    2、bias和variance是解释模型泛化性能,其实还有噪声然后,理解GBDTRF执行原理,其中GBDT中核心是通过用分类器(如CART、RF)拟合损失函数梯度,而损失函数定义就决定了在子区域内各个步长,其中就是期望...
  • 机器学习中 Bias(偏差)、Error(误差)、Variance(方差)有什么区别和联系? 修宇亮回答 - 知乎 https://www.zhihu.com/question/27068705/answer/137487142 这个回答写得非常好 bias(偏差): 体现是...
  • 偏差(bias)方差(variance)区别: 偏差指是算法期望预测与真实预测之间偏差程度, 反应了模型本身 拟合能力; 方差度量了同等大小训练集变动导致学习性能变化, 刻画了数据扰动 所导致影响。 当...
  • 偏差(bias)方差(variance)是统计学概念,刚进公司时候,看到每个人嘴里随时蹦出这两个词,觉得很可怕。首先得明确,方差是多个模型间比较,而非对一个模型而言,对于单独一个模型,比如说: ...

空空如也

空空如也

1 2 3 4
收藏数 76
精华内容 30
关键字:

variance和bias的区别