AdaBoost详解

提升方法的思路

对于一个复杂任务,将多个决策进行适当的综合所得出的判断,要比其中任何一个决策更为准确.

对于分类问题,提升方法的就是从弱学习方法出发,反复学习,得到一系列弱分类器,然后组合这些弱分类器,构成一个强分类器,大多数提升方法都是通过改变训练数据的概率分布,(即通过对训练数据进行加权),针对不同分布的数据调用弱学习方法学习一系列的弱分类器.

提升方法有两个关键所在:

  • 在每一轮如果改变训练数据的权值或概率分布.
  • 如何将弱分类器组合成一个强分类器.

强可学习和弱可学习

Kearns和Valiant提出了强可学习和弱可学习的概念.
在概率近似正确(probably approximately correct, PAC)学习的框架中,

一个概念如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的.

一个概念如果存在一个多项式的学习算法能够学习它,学习的正确率只比随机猜测略好,则称这个概念是弱可学习的.

Schapire后来证明强可学习和若可学习是等价的,即在PAC学习框架下,一个概念是强可学习的充分必要条件是这个概念是弱可学习的.

PAC学习

很容易得知,除非对所有可能的数据进行训练,否则总会存在多个假设使得错误率不为0,也就是说学习器不能保证和目标函数完全一致,且由于样本是随机选择的,总存在一定的偶然性,使得学习器学习到的与真实分布不同。

因此我们只要求学习学习到一个近似正确的假设,即PAC学习.

一个可PAC学习的学习需要满足两个条件:

  • 学习器必须以任意高的概率输出一个错误率任意低的假设.
  • 学习的时间最多以多项式方式增长.

AdaBoost

对于提升方法的两个关键,AdaBoost采取的做法是,提高被前一轮弱分类器错误分类样本的权值,降低被正确分类样本的权值,这样分类器就会更加关注上一轮被错分类的数据;对于弱分类器的组合,AdaBoost采取加权多数表决的方法,对于分类误差率小的弱分类器取较大的权值,减小分类误差率大得弱分类器的权值.

AdaBosst算法

假设给定一个二类分类的训练数据集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) … ( x N , y N ) T={(x_1,y_1), (x_2, y_2)\dots(x_N, y_N)} T=(x1,y1),(x2,y2)(xN,yN),其中,每个样本点有实例和标记组成. 标记 y i = { − 1 , + 1 } y_i = \{-1, +1\} yi={ 1,+1},AdaBoost利用以下算法,从训练数据中学习一系列弱分类器,然后将弱分类器线性组合成为一个强分类器.

算法(AdaBoost)

输入:训练数据集,弱学习算法.

输出:强分类器 G ( x ) G(x) G(x)

  1. 初始化训练数据的权值分布
    D 1 = ( w 11 , … , w 1 i , … , w 1 N ) ,   w 1 i = 1 N ,   i = 1 , 2 … , N D_1 = (w_{11},\dots,w_{1i},\dots,w_{1N}),\ w_{1i}=\frac{1}{N},\ i=1,2\dots,N D1=(w11,,w1i,,w1N), w1i=N1, i=1,2,N
  2. m = 1 , 2 , … , M m=1,2,\dots,M m=1,2,,M
    1. 使用具有权值分布的 D m D_m Dm的训练数据集学习,得到基本分类器 G m ( x ) : x → { − 1 , + 1 } G_m(x):x\rightarrow\{-1,+1\} Gm(x):x{ 1,+1}.
    2. 计算 G m ( x ) G_m(x) Gm(x)在训练数据集上的分类误差率 e m = P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m = P(G_m(x_i)\neq y_i) = \sum_{i=1}^Nw_{mi}I(G_m(x_i)\neq y_i) em=P(Gm(xi)̸=yi)=i=1NwmiI(Gm(xi)̸=yi).
    3. 计算 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.
    4. 更新训练数据集的权值分布,这里的 Z m Z_m Zm是规范化因子
      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 Z m = ∑ i = 1 N w m i exp ⁡ ( − α m y i G m ( x i ) ) D_{m+1} = (w_{m+1,1},\dots,w_{m+1,i},\dots,w_{m+1,N})\\ W_{m+1,i}=\frac{w_{mi}}{Z_m}\exp(-\alpha_my_iG_m(x_i)),i=1,2\dots,N\\ Z_m = \sum_{i=1}^Nw_{mi}\exp(-\alpha_my_iG_m(x_i)) Dm+1=(wm+1,1,,wm+1,i,,wm+1,N)Wm+1,i=Zmwmiexp(αmyiGm(xi))i=1,2,NZm=i=1Nwmiexp(αmyiGm(xi))
  3. 构成基本分类器的线性组合
    f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^M\alpha_mG_m(x) f(x)=m=1MαmGm(x),得到最终分类器
    G ( x ) = s i g n ( f ( x ) ) = s i n g ( ∑ m = 1 M α m G m ( x ) ) G(x) = sign(f(x)) = sing(\sum_{m=1}^M\alpha_mG_m(x)) G(x)=sign(f(x))=sing(m=1MαmGm(x))

在计算 G m ( x ) G_m(x) Gm(x)在训练数据集上的分类误差率 e m e_m em,我们可以得到 e m = ∑ G m ( x i ) ≠ y i w m i e_m = \sum_{G_m(x_i)\neq y_i}w_{mi} em=Gm(xi)̸=yiwmi,即分类误差率是被 G m ( x ) G_m(x) Gm(x)五分类样本的权值之和.

e m ≤ 1 2 e_m\leq \frac{1}{2}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值