Boosting & Bagging & Stacking整理

一. 知识点


Bias-Variance Tradeoff

bias-variance是分析boosting和bagging的一个重要角度,首先讲解下Bias-Variance Tradeoff.

假设training/test数据集服从相似的分布,即

yi=f(xi)+ϵi, y i = f ( x i ) + ϵ i ,
其中 noise ϵi ϵ i 满足 E(ϵi)=0 E ( ϵ i ) = 0 , Var(ϵi)=σ2 V a r ( ϵ i ) = σ 2 . f(xi) f ( x i ) 为样本真实值, yi y i 为样本实际观测值.
从训练集我们可以得到一个评估函数 f^ f ^ ,对于测试集的每个样本 j j ,对其观测值yj=f(xj)+ϵj的预测为 f^(xj) f ^ ( x j )

考虑测试集上的MSE(mean squared error)

Test MSE=E[(yf^(x))2]=E[(ϵ+f(x)f^(x))2]=E[ϵ2]+E2[f(x)f^(x)]+Var(f(x)f^(x)) T e s t   M S E = E [ ( y − f ^ ( x ) ) 2 ] = E [ ( ϵ + f ( x ) − f ^ ( x ) ) 2 ] = E [ ϵ 2 ] + E 2 [ f ( x ) − f ^ ( x ) ] + V a r ( f ( x ) − f ^ ( x ) )

上式中 E[ϵ2] E [ ϵ 2 ] 来源于测试集本身的误差,不可控。 第二项是bias term, 主要来源于欠拟合,即评估函数 f^(x) f ^ ( x ) 不能够充分拟合数据真实值(模型capacity弱)。最后一项是与过拟合紧密联系的,即评估函数 f^(x) f ^ ( x ) 过度拟合了训练集数据(训练集自身非全局的特性被学习器学到),导致泛化能力弱,一但数据集扰动,误差就很大。

reference:
[1]. http://scott.fortmann-roe.com/docs/BiasVariance.html
[2]. http://cs229.stanford.edu/section/error-analysis.pdf


二. 联系与区别

    Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法。即将弱分类器组装成强分类器的方法。

(1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

(2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

(3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

(4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

(5) Bias-Variance角度:
Bagging: 减少variance
Boosting: 减少Bias

reference:
[1]. https://www.cnblogs.com/liuwu265/p/4690486.html
[2]. http://www.cnblogs.com/guolei/archive/2013/05/21/3091301.html


三. 相关面试问题

1. 为什么说bagging是减少variance,而boosting是减少bias?

  • 独立与线性不相关
        假设两个随机变量是 X X Y, 联合概率密度函数是 f(x,y) f ( x , y ) X X 的边缘密度函数是g(x) Y Y 的边缘密度函数是h(y), 他们的期望分别是 E[X] E [ X ] E[Y] E [ Y ] , 方差分别是 Var(X) V a r ( X ) Var(Y) V a r ( Y ) , 协方差是 COV(X,Y)=E[XY]E[X]E[Y] C O V ( X , Y ) = E [ X Y ] − E [ X ] E [ Y ]

        两个随机变量相互独立,等价于联合密度函数等于两个边缘密度的乘积,即 f(x,y)=g(x)h(y) f ( x , y ) = g ( x ) h ( y )

        两个随机变量线性不相关, 等价于协方差或者Pearson的线性相关系数为0,即 COV(X,Y)=0 C O V ( X , Y ) = 0

    独立是线性不相关的充分不必要条件

  • Variance
    给定 N N 个随机变量{X1,X2,...,XN}, 则

    Var(i=1NXi)=i=1Nj=1NCOV(Xi,Xj)=i=1NVar(Xi)+ijCOV(Xi,Xj) V a r ( ∑ i = 1 N X i ) = ∑ i = 1 N ∑ j = 1 N C O V ( X i , X j ) = ∑ i = 1 N V a r ( X i ) + ∑ i ≠ j C O V ( X i , X j )

reference:
[1]. https://en.wikipedia.org/wiki/Variance


TO BE CONTINUED.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Boosting、BaggingStacking都是机器学习中常见的集成学习方法。 Boosting是一种逐步改善模型性能的方法,它会训练多个弱分类器,每次根据前面分类器的表现对错误分类的样本进行加权,最终将这些弱分类器进行加权组合得到一个强分类器。 Bagging则是在原始数据集的不同子集上训练多个模型,这些模型的输出结果最后通过投票等方式进行集成。Bagging的目的是通过并行训练多个模型,降低模型的方差,提高模型的泛化能力。 Stacking是一种将不同的分类器结合起来的方法,它通过将不同的分类器的输出作为特征输入到一个新的元分类器中,从而得到最终的输出。Stacking通常包含两层,第一层是不同的基分类器,第二层是元分类器。 ### 回答2: boosting(提升法)、bagging(袋装法)和stacking(堆叠法)是三种常见的集成学习方法。 boosting是一种通过在模型训练中逐步提高弱学习器的性能来最终获得强学习器的方法。它通过依次训练多个弱学习器,每个学习器都在前面学习器的基础上对样本进行调整,将前一个学习器预测错误的样本加权,使得下一个学习器更加关注这些错误样本,从而逐步提高整体学习器的性能。 bagging是一种通过同时训练多个相互独立的弱学习器,再通过投票或平均的方式来最终决策的方法。它通过对原始数据集进行有放回的随机采样,生成多个不同的子数据集,并在每个子数据集上训练一个弱学习器。最后,将这些弱学习器的结果进行集成得出最终的预测结果。 stacking是一种通过将多个不同的学习器组合起来形成一个更为强大的学习器的方法。它首先将原始数据集分成两个子集:训练集和验证集。然后,在训练集上训练多个不同的弱学习器。接下来,使用验证集上的预测结果来训练一个元学习器,它会根据不同弱学习器的表现给出最终的预测结果权重。最后,我们使用这个元学习器来对测试集进行预测。 综上所述,boosting是通过逐步提高弱学习器的性能来达到提升整体学习器性能的目的,bagging通过同时训练多个相互独立的弱学习器并进行集成来提高学习器的鲁棒性,stacking通过使用元学习器来组合多个不同的学习器,从而提高学习器的预测能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值