Boosting and Bagging

作者:Fain
博客:https://fainke.com
微信公众号:深度学习视觉

介绍

Boosting

  1. Boosting方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。
  2. Boosting的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本给予更高的权重。测试时,根据各层分类器的结果的加权得到最终的结果。即stacking

Bagging

  1. Bagging因为各基分类器之间无强依赖,所以可以进行串行训练。以基于决策树基分类器的随机森林为代表。
  2. 为了让基分类器之间相互独立,需要将数据集分为若干子集(当训练样本数量较少时,子集之间会有重叠部分)。
  3. Bagging更像天赋不同且单一的几个孩子在单独学习,学习的内容可以相同也可以不同。由于个体之间有差异,最终做出的判断不完全一致,每个个体单独判断,然后通过投票的方式做出最后集体的决策。即voting

理解

接下来我们将会从消除基分类器的偏差和方差的角度来理解Boosting和Bagging方法的差异。
基分类器:弱分类器。基分类器的错误。是偏差和方差两种错误之和。偏差主要是由分类器的表达能力有限导致的系统性错误,表现在训练不够收敛。方差是由分类器对样本分布过于敏感,导致在训练样本过少时,产生过拟合。

  1. Boosting方法是通过逐步聚焦于基分类器分错的样本,减小集成分类器的偏差。
  2. Bagging方法是采取分而治之的策略,通过训练样本多次采样,分别计算多个独立的基分类器,综合各个模型减小集成分类器的方差。基模型越多,整体思想越统一,不会受个别模型影响,方差越小。

基本步骤

集成学习一般可分为以下3个步骤:

  1. 找到误差互相独立的基分类器;
  2. 训练基分类器;
  3. 合并基分类器的结果。

合并的方式有voting和stacking两种。也可以将不同分类器的输出结果作为一个特征,使用逻辑回归作为融合模型进行最后的结果预测。

以Adaboost为例具体步骤如下:

  1. 确定基分类器:由于树型模型结构简单,且较易产生随机性(制作相互独立的特性),这里可以选择ID3决策树作为基分类器。当然,其它非树型分类模型也可以作为基分类器。
  2. 训练基分类器:假设训练集为 ⟨ x i y i ⟩ , k = 1 , … , N \left\langle x_{i} y_{i}\right\rangle, k=1, \ldots, N xiyi,k=1,,N,其中 y i ∈ { − 1 , 1 } y_{i} \in\{-1,1\} yi{1,1},并且有 T T T个基分类器,则可以按照如下过程来训练基分类器。
    ① 初始化采样分布 D 1 ( i ) = 1 / N D_{1}(i)=1 / N D1(i)=1/N
    ② 令 t = 1 , 2 , … , T t=1,2, \ldots, T t=1,2,,T循环;
    A.) 从训练集中,按照 D t D_t Dt分布,采样出子集 S t = { x i , y i } , i = 1 , … , N i S_{t}=\left\{x_{i}, y_{i}\right\}, i=1, \dots, N_{i} St={xi,yi},i=1,,Ni
    B.) 用 S i S_i Si训练出基分类器 h i h_i hi;
    C.) 计算 h i h_i hi的错误率: ε 1 = ∑ i = 1 N i I [ h i ( x i ) ≠ y i ] D i ( x i ) N t \varepsilon_{1}=\frac{\sum_{i=1}^{N_{i}} I\left[h_{i}\left(x_{i}\right) \neq y_{i}\right] D_{i}\left(x_{i}\right)}{N_{t}} ε1=Nti=1NiI[hi(xi)=yi]Di(xi),其中 I [ ] I[] I[]为判别函数;
    D.) 计算基分类器 h i h_i hi,权重 a i = log ⁡ ( 1 − ε i ) ε i a_{i}=\log \frac{\left(1-\varepsilon_{i}\right)}{\varepsilon_{i}} ai=logεi(1εi)
    E.) 设置下一次采样
    D t + 1 = { D t ( i ) 或 者 D t ( i ) ( 1 − ε t ) ε t h t ( x i ) ≠ y i D t ( i ) ε t ( 1 − ε t ) h t ( x i ) = y i D_{t+1}= \left\{\begin{array}{l} D_t(i) 或者 {D_t(i)(1-\varepsilon_t)} \over {\varepsilon_t} & h_t(x_i) \neq y_i \\ \frac {D_t(i)\varepsilon_t }{ (1 - \varepsilon_t ) } & h_t(x_i)=y_i \end{array}\right. Dt+1={εtDt(i)Dt(i)(1εt)(1εt)Dt(i)εtht(xi)=yiht(xi)=yi ,并将它归一化为一个概率分布函数。
    ③ 合并基分类器:给定一个未知样本 z z z,输出分类结果为加权投票的结果 sign ⁡ ( ∑ t = 1 T h t ( z ) a t ) \operatorname{sign}\left(\sum_{t=1}^{T} h_{t}(z) a_{t}\right) sign(t=1Tht(z)at)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值