天天看点

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 ⟨xi​yi​⟩,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​=Nt​∑i=1Ni​​I[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​={εt​Dt​(i)或者Dt​(i)(1−εt​)​(1−εt​)Dt​(i)εt​​​ht​(xi​)​=yi​ht​(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=1T​ht​(z)at​)

继续阅读