Boosting方法详解

本文详细介绍了提升方法和AdaBoost算法,包括其基本思路、训练误差分析、另一种理解,以及AdaBoost算法的实现步骤。提升方法通过组合多个弱分类器形成强分类器,而AdaBoost算法通过调整训练数据的权值分布和加权多数表决,逐步减少训练误差。文章还探讨了AdaBoost的训练误差界限,并与加法模型和前向分步算法进行了联系。最后,提到了提升树模型及其在回归问题中的应用,特别是梯度提升算法。
摘要由CSDN通过智能技术生成


提升方法在分类问题中,通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。本篇笔记主要思路源自《统计学习方法》。

提升方法与AdaBoost算法

提升方法的核心思想就是:一个复杂的任务由多个专家的判断进行适当综合所得出的结论,比其中任何一个专家单独判断所给出的结论要好。

提升方法的基本思路

对于分类问题而言,给定一个训练样本集,求比较粗糙的分类规则(分类结果比随机猜测要好的规则也叫弱分类器)要比求精确的分类规则(强分类器)容易得多。提升方法就是从弱学习算法出发,反复学习得到一系列弱分类器,然后组合这些弱分类器,构成一个强分类器。大多数的提升方法都是改变训练数据的概率分布(也就是训练数据的权值分布),针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。
对提升方法来说,有两个问题需要回答:一是在每一轮如何改变训练数据的权值或概率分布;二是如何将弱分类器组合成一个强分类器。以AdaBoost为例,第一个问题其做法是,提高那些被前一轮弱分类器错误分类样本的权值,降低那些被正确分类样本的权值。这样没有得到正确分类的数据就会在后一轮中得到更大关注。第二个问题其做法是,采取加权多数表决的方法。具体就是加大分类误差率小的弱分类器的权值,使其在表决中起较大作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小作用。

AdaBoost算法

首先明确算法的输入,就是一个训练数据集还有诸多弱学习算法,其中训练数据集如下。
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={ (x1,y1),(x2,y2),,(xN,yN)}
其中y有1和-1两类,最后输出一个最终分类器G(x)
算法的执行步骤如下:
(1)初始化训练数据的权值分布。这里假设训练数据有均匀的权值分布,即每个训练样本在基本分类器的学习中作用相同,这样就保证了第一步是在原始数据上学习基本分类器 G 1 ( x ) G_1(x) G1(x)
D 1 = ( w 11 , ⋯   , w 1 i , ⋯   , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , ⋯   , N D_{1}=\left(w_{11}, \cdots, w_{1 i}, \cdots, w_{1 N}\right), \quad w_{1 i}=\frac{1}{N}, \quad i=1,2, \cdots, N D1=(w11,,w1i,,w1N),w1i=N1,i=1,2,,N
(2)训练,这一步中,AdaBoost将反复学习基本分类器,在每一轮m执行下列操作,共循环M轮。

  • 使用当前分布 D m D_m Dm加权的训练数据集,学习基本分类器 G m ( x ) G_m(x) Gm(x)
  • 计算基本分类器 G m ( x ) G_m(x) Gm(x)在加权训练数据集上的分类误差率:
    e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ G m ( x i ) ≠ y i w m i \begin{aligned} e_{m} &=\sum_{i=1}^{N} P\left(G_{m}\left(x_{i}\right) \neq y_{i}\right) \\ &=\sum_{G_{m}\left(x_{i}\right) \neq y_{i}} w_{m i} \end{aligned} em=i=1NP(Gm(xi)=yi)=Gm(xi)=yiwmi
    这里 w m i w_{mi} wmi表示第m轮中第i个实例的权值,权值之和为1。这表明 G m ( x ) G_m(x) Gm(x)在加权的训练数据集上的分类误差率是被 G m ( x ) G_m(x) Gm(x)误分类样本的权值之和
  • 计算基本分类器 G m ( x ) G_m(x) Gm(x)的系数,该系数就表示了 G m ( x ) G_m(x) Gm(x)在最终分类器中的重要性。
    α m = 1 2 log ⁡ 1 − e m e m \alpha_{m}=\frac{1}{2} \log \frac{1-e_{m}}{e_{m}} αm=21logem1em
    这里的对数是自然对数,由该式可知,当 e m ⩽ 1 2 e_{m} \leqslant \frac{1}{2} em21时, α m ⩾ 0 \alpha_{m} \geqslant 0 αm0,并且 α m \alpha_{m} αm随着 e m e_{m} em的减小而增大,所以分类误差率越小的基本分类器在最终分类器中的作用越大。
  • 更新训练数据的权值分布为下一轮作准备:
    D m + 1 = ( w m + 1 , 1 , ⋯   , w m + 1 , i , ⋯   , w m + 1 , N ) w m + 1 , i = w m i Z m exp ⁡ ( − α m y i G m ( x i ) ) , i = 1 , 2 , ⋯   , N \begin{array}{c} D_{m+1}=\left(w_{m+1,1}, \cdots, w_{m+1, i}, \cdots, w_{m+1, N}\right) \\ w_{m+1, i}=\frac{w_{m i}}{Z_{m}} \exp \left(-\alpha_{m} y_{i} G_{m}\left(x_{i}\right)\right), \quad i=1,2, \cdots, N \end{array} Dm+1=(wm+1,1,,wm+1,i,,wm+1,N)wm+1,i=Zmwmiexp(αmyiGm(xi)),i=1,2,,N
    这里的 Z m Z_m Zm是规范化因子,使得 D m D_m Dm成为一个概率分布
    Z m = ∑ i = 1 N w m i exp ⁡ ( − α m y i G m ( x i ) ) Z_{m}=\sum_{i=1}^{N} w_{m i} \exp \left(-\alpha_{m} y_{i} G_{m}\left(x_{i}\right)\right) Zm=i=1Nwmiexp(αmyiGm(xi))
    其实权值还可以写成如下形式
    w m + 1 , i = { w m i Z m e − α m , G m ( x i ) = y i w m i Z m e α m , G m ( x i ) ≠ y i w_{m+1, i}=\left\{\begin{array}{ll} \frac{w_{m i}}{Z_{m}} \mathrm{e}^{-\alpha_{m}}, & G_{m}\left(x_{i}\right)=y_{i} \\ \frac{w_{m i}}{Z_{m}} \mathrm{e}^{\alpha_{m}}, & G_{m}\left(x_{i}\right) \neq y_{i} \end{array}\right. wm+1,i={ Zmwmieαm,Zmwmieαm,Gm(xi)=yiGm(xi)=yi
    这样就明显一些,基本分类器 G m ( x ) G_m(x) Gm(x)误分类样本的权值扩大了,被正确分类样本的权值缩小了,扩大和缩小的幅度和 G m ( x ) G_m(x) Gm(x)在最终分类器中的作用直接相关。也就是这个分类器越重要,下一个分类器就要越关注到这个分类器的缺点

(3)构建基本分类器的线性组合,这个线性组合实现的是M个基本分类器的加权表决,这个权重之和并不为1。这个函数的符号决定了实例x的类,其绝对值表示了分类的确信度
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^{M} \alpha_{m} G_{m}(x) f(x)=m=1Mα

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值