Bagging和Boosting的区别

1. Bagging

Bagging是基于boostraping对训练样本进行抽样的一类算法,主要特点是对训练样本进行又放回随机抽取。有放回抽取的意义在于如下:

  • 给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } D = \{ (x_{1}, y_{1}), (x_{2}, y_{2}),..., (x_{m}, y_{m}) \} D={(x1,y1),(x2,y2),...,(xm,ym)}
  • 如果其中存在 k ( k < < m − k ≤ m ) k(k << m-k\leq m) k(k<<mkm)个异常数据,对于每一次有放回采样,非异常点被选中的概率 m − k m > k m \frac{m-k}{m} > \frac{k}{m} mmk>mk,多次采样后将会降低异常点的比例,使训练集数据更加真实有效
  • 每个数据样本被采集到的概率为 1 m \frac{1}{m} m1,那么经过m次采样,数据样本点不被采集到的概率为 ( 1 − 1 m ) m (1 - \frac{1}{m})^{m} (1m1)m, l i m m → ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \underset{m \to \infty }{lim}(1 - \frac{1}{m})^{m} =\frac{1}{e} \approx 0.368 mlim(1m1)m=e10.368,换句话说,每轮采样中约有36.8%的样本不会被采集到,因此可以作为测试集来检验模型的泛化能力。
  • 何种情况下可以使用Bagging
  • 新加入样本对算法的稳定性和性能造成的影响较大时
  • 基学习器
  • 其对基学习器没有要求,常见的基学习器为决策树(CART → \to RF)和神经网络
  • 支持并行计算

2. Boosting

Boosting是基于前向分布算法(贪心策略)的一类算法,所有的基学习器训练集都是相同的,不同的是训练集中数据样本的权重,因此Boosting一簇的算法均需要解决以下四个问题:

  1. 每个基学习器 G k G_{k} Gk的误差率 e k e_{k} ek
  2. 每个基学习器的权重 α k \alpha_{k} αk
  3. 样本权重的更新策略 ω k i \omega_{k}^{i} ωki
  4. 基学习器 G k G_{k} Gk预测结果的组合策略

3. Bagging与Boosting比较

BaggingBoosting
样本选择有放回抽取,每个数据集相对独立每轮训练集不变,只是样本权重发生改变
样本权重每个样本权重相等根据错误率调整样本权重,错误率越大样本权重越高
基学习器权重每个基学习器权重相等每个基学习器权重不等,根据错误率计算
并行/串行并行串行
减小Variance和BiasVarianceBias

为什么Bagging是减少Variance,Boosting是减少Bias?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值