提升方法:Adaboost算法与证明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37334135/article/details/85228107

这基本就是关于《统计学习方法》的笔记,当然自己会记的让人容易读懂,为了加深记忆,证明都证了两遍,便于加深理解还是打算写在博客里好了。接下来会先介绍什么是提示方法,再介绍Adaboost算法,接着会给个书上的例子,最后再给出一些推导(由于之前是写过的但是没保存好,所以这次有的部分就粘贴了)。

1、提升方法

定义:在分类问题中,该方法会改变训练样本的权重,学习到多个弱分类器,最后将这些分类器进行线性组合形成一个强分类器,从而提高分类的能力。

关于弱分类器可以简单理解为该模型可以分类但是分类能力不强,而强分类器则能很好的进行分类。
如此一来,对于提升方法我们需要考虑两个问题

  1. 每次迭代的时候如何改变样本的权重
  2. 如何将这些弱分类器组合成一个强分类器。

ps:如何获得弱分类器(或者说基本分类器)是根据需要的来决定的,与提升方法没有必然联系,比如可以是决策树模型,然后学习到一个强的决策树模型。

2、Adaboost

Adaboost就是一个典型的提升方法,那么它如何解决上面的两个问题呢?

  1. 每次迭代过程中,会提高上一轮误分类样本点(使用上一轮分类器不能进行正确分类的样本)的权重,使它在本轮中获得更多的关注;相反,上一轮正确分类的样本的权重则会降低;
  2. 提升方法中已经说了会对弱分类器进行线性组合形成强分类器,Adaboost的做法是采用加权多数表决的方法,具体的,增大分类误差率低的弱分类器的系数,降低分类误差率高的弱分类器的系数。

下面关于二分类问题给出该算法流程(昨天写了没保存好,所以不想写了就直接粘贴了)

Adaboost
输入:二分类样本集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} ,其中 y = { + 1 , 1 } y=\{+1,-1\} ;弱学习算法(来获得弱分类器);
输出:最终强分类器 G ( x ) G(x)

在这里插入图片描述

在这里插入图片描述

这里做一些必要的说明

  1. 算法最开始的时候,没有别的要求的话,设置每个样本的权重是一样的即 1 N \frac{1}{N}
  2. 针对每个m我们是从 ( a ) (a) 计算到 ( 3 ) (3) ,如果发现此时的最终分类器还是不能进行正确分类,那么设置 m = m + 1 m=m+1 进行下一轮
  3. ( b ) (b) 步的分类误差率 e m = i = 1 N w m i I ( G ( x i ) y i ) e_m=\sum\limits_{i=1}^{N}w_{mi}I(G(x_i)\neq y_i) ,其中 I I 是指示函数 I ( t r u e ) = 1 , I ( f a l s e ) = 0 I(true)=1,I(false)=0 ,所以实际上分类误差率就是被错误分类的样本的权重之和。和一般所认识的分类误差率 e m = 1 N i = 1 N I ( G ( x i ) y i ) e_m=\frac{1}{N}\sum\limits_{i=1}^{N}I(G(x_i)\neq y_i) 很类似。显然值越小那么该分类器 G m ( x ) G_m(x) 的分类能力更好
  4. 对于 ( c ) (c) 步的分类器系数 α m = 1 2 l o g ( 1 e m 1 ) \alpha_m=\frac{1}{2}log(\frac{1}{e_m}-1) ,当 e m < 1 / 2 e_m<1/2 的时候, e m e_m 越小(分类器 G m ( x ) G_m(x) 的分类能力更好)则系数越大,中一点在 2 2 中已经提到过。
  5. 对于 ( d ) (d) 步,该步骤是更新样本权重的,如何更新?被错误分类的样本会增大权重从而会在下一轮引起重视,被正确分类的则减少权重。如果看的不清楚,因为是二分类问题所以 G m ( x i ) = 1 G_m(x_i)=1 或者 1 -1 ,所以下一轮的权重 w m + 1 , i w_{m+1,i} 可以写成下面的形式(写在了最后面)。这也是上面1所说的
  6. 在第 ( 3 ) (3) 步,则是对弱分了器进行线性组合,比如第一轮得到的是 G 1 ( x ) G_1(x) ,那么这轮 f ( x ) = α 1 G 1 ( x ) f(x)=\alpha_1G_1(x) ,第二轮得到的是 G 2 ( x ) G_2(x) ,那么这轮会进行叠加,即 f ( x ) = α a G 1 ( x ) + α 2 G 2 ( x ) f(x)=\alpha_aG_1(x)+\alpha_2G_2(x) 。其中 f ( x ) f(x) 的正负号表示分类结果,比如有样本 ( x 4 , 1 ) (x_4,1) ,将 x 4 x_4 作为输出,如果有 f ( x 4 ) < 0 f(x_4)<0 ,那么表示对该样本分类错误了,需要继续学习。

在这里插入图片描述

到这算法就算介绍完了,下面来个具体的例子(例子是李航老师《统计学习方法》中直接粘贴来的)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、Adaboost训练误差界

上面的算法结束时得到了最终分类器 G ( x ) G(x) ,那么训练误差为 e m = 1 N i = 1 N I ( G ( x i ) y i ) e_m=\frac{1}{N}\sum\limits_{i=1}^{N}I(G(x_i)\neq y_i) ,下面来证明误差上界

1 N i = 1 N I ( G ( x i ) y i ) < = 1 N i = 1 N e y i f ( x i ) = m = 1 M Z m \frac{1}{N}\sum\limits_{i=1}^{N}I(G(x_i)\neq y_i)<=\frac{1}{N}\sum\limits_{i=1}^{N}e^{-y_if(x_i)}=\prod\limits_{m=1}^{M}Z_m

左边证明:

由于 G ( x i ) y i G(x_i)\neq y_i 所以 y i f ( x i ) < 0 y_if(x_i)<0 ,从而 e y i f ( x i ) > = 1 e^{-y_if(x_i)}>=1 I ( G ( x i ) y i ) < = e y i f ( x i ) I(G(x_i)\neq y_i)<=e^{-y_if(x_i)} 左边得证。

再证右边

1 N i = 1 N e y i f ( x i ) = 1 N i = 1 N e y i m = 1 M α m G m ( x i ) = 1 N i = 1 N i = 1 n e y i α m G m ( x i ) \frac{1}{N}\sum\limits_{i=1}^{N}e^{-y_if(x_i)}=\frac{1}{N}\sum\limits_{i=1}^{N}e^{-y_i\sum\limits_{m=1}^{M}\alpha_mG_m(x_i)}=\frac{1}{N}\sum\limits_{i=1}^{N}\prod\limits_{i=1}^{n}e^{-y_i\alpha_mG_m(x_i) }

在初始的时候 w 1 i = 1 N w_1i=\frac{1}{N} ,另外 w m i e α m y i G m ( x ) = Z m w m + 1 , i w_{mi}e^{-\alpha_my_iG_m(x)}=Z_mw_{m+1,i} 带入到上式

i = 1 N w 1 i m = 1 M e y i α m G m ( x i ) = i = 1 N w 1 i m = 2 M e y i α m G m ( x i ) = Z 1 i = 1 N w 2 i i = 2 n e y i α m G m ( x i ) = Z 1 Z 2 i = 1 N w 3 i m = 3 M e y i α m G m ( x i ) = . . . = Z 1 Z 2 . . . Z M 1 i = 1 N e y i α M G M ( x i ) = m = 1 M Z m \sum\limits_{i=1}^{N}w_{1i}\prod\limits_{m=1}^{M}e^{-y_i\alpha_mG_m(x_i) }\\=\sum\limits_{i=1}^{N}w_{1i}\prod\limits_{m=2}^{M}e^{-y_i\alpha_mG_m(x_i) }\\=Z_1\sum\limits_{i=1}^{N}w_{2i}\prod\limits_{i=2}^{n}e^{-y_i\alpha_mG_m(x_i) }\\=Z_1Z_2\sum\limits_{i=1}^{N}w_{3i}\prod\limits_{m=3}^{M}e^{-y_i\alpha_mG_m(x_i) }\\=...\\=Z_1Z_2...Z_{M-1}\sum\limits_{i=1}^{N}e^{-y_i\alpha_MG_M(x_i) }\\=\prod\limits_{m=1}^{M}Z_m

从证明的结果来看,在算法的每一轮可以选取适当的 G m G_m 使得 Z m Z_m 最小,从而使得训练误差下降的最快。关于后续的证明,这里就不证了。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37334135/article/details/85228107