集成学习之AdaBoost


前言

集成学习(Ensemble Learning)是利用多个学习器来实现学习任务的一种机器学习模型,集成学习目前已经涉及到各个领域,并有不错的学习效果。AdaBoost是集成学习与提升方法中的代表,本文将介绍AdaBoost的算法原理

一、AdaBoost基本思想

1.弱分类器和强分类器

弱分类器:比较粗糙的分类规则,分类的正确率仅比随机分类略好
强分类器:精确的分类规则,分类的正确率非常高

2.核心思想

提升方法的基本思想很简单,就是“三个臭皮匠顶一个诸葛亮”。因为求弱分类器比求强分类器要容易的多,从弱学习算法出发,得到一系列的弱分类器,然后将这些弱分类器组合起来构成一个强分类器,达到分类效果。
在这里插入图片描述
给定一个数据集,如图,按层进行学习(每条虚线上均为一层弱分类器)。对于每一层来说,数据集是不变的,改变的是权重w(i)(AdaBoost根据样本分类对错改变权重,也即前一层分类对的下一层没必要过多关注,在下一层所占权重变小,前一层分类错误的在下一层被重点关注,所占权重大)。每一层弱分类器学习完成后,根据分类误差率得到相应的权值(分类误差率小的占最后总表决权值大,分类误差率大的占最后总表决权小)。最终,将得到的所有弱分类器按权重线性组合输出。

二、算法实现

1. 引入数据集

假设给定一个二类分类的训练数据集T = {( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) x_1, y_1), (x_2, y_2),...,(x_N, y_N) x1,y1),(x2,y2),...,(xN,yN)},其中,每个样本点由实例和标签组成。实例 x i ∈ x_i \in xi X ⊆ \subseteq R n R^n Rn,标签 y i y_i yi ∈ \in Y = {-1, +1},X是实例空间,Y是标签集合。

2. 输出最终分类器

2.1 初始化训练数据的权值

  • D 1 D_1 D1 = ( w 11 , . . . , w 1 i , . . . , w 1 N w_{11},...,w_{1i},...,w_{1N} w11,...,w1i,...,w1N), w 1 i w_{1i} w1i = 1 N \frac{1}{N} N1,i = 1, 2, 3,…,N

2.2 对m = 1,2,…,M

(a) 使用具有权值分布 D m D_m Dm的训练数据集学习,得到基本分类器 G m ( x ) G_m(x) Gm(x):X → \rightarrow {-1, +1}
(b) 计算 G m ( x ) G_m(x) Gm(x)在训练数据集上的分类误差率
  • e m e_m em = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) \displaystyle\sum_{i=1}^{N} P(G_m(x_i) \neq y_i) = \displaystyle\sum_{i=1}^{N}w_{mi}I(G_m(x_i) \neq y_i) i=1NP(Gm(xi)=yi)=i=1NwmiI(Gm(xi)=yi)

    其中,I 表示 G m ( x i ) ≠ y i G_m(x_i) \neq y_i Gm(xi)=yi的实例个数, e m e_m em = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ G m ( x i ) ≠ y i w m i \displaystyle\sum_{i=1}^{N} P(G_m(x_i) \neq y_i) = \displaystyle\sum_{G_m(x_i) \neq y_i}w_{mi} i=1NP(Gm(xi)=yi)=Gm(xi)=yiwmi 这里, w m i w_{mi} wmi表示第 m 轮中第 i 个实例的权值,所有的权值之和为1( ∑ i = 1 N w m i = 1 \displaystyle\sum_{i=1}^{N} w_{mi}= 1 i=1Nwmi=1)。 G m ( x ) G_m(x) Gm(x)在加权的训练数据集上的分类误差率是被 G m ( x ) G_m(x) Gm(x)误分类样本的权值之和,所以数据权值分布 D m D_m Dm在每一轮随基本分类器 G m ( x ) G_m(x) Gm(x)分类误差率的改变而更新

(c)计算 G m ( x ) G_m(x) Gm(x)系数
  • α m \alpha_m αm = 1 2 l n 1 − e m e m \frac{1}{2}ln\frac{1-e_m}{e_m} 21lnem1em

α m \alpha_m αm是所有基本分类器在最终分类器中的权重, 由②可知,当 e m ≤ 1 2 e_m\le\frac{1}{2} em21时, α m ≥ 0 \alpha_m \geq 0 αm0, e m ∈ ( 0 , 1 ) e_m \in (0, 1) em(0,1),该函数为单减函数,所以分类误差率 e m e_m em越小,最终所占权重 α m \alpha_m αm就越大。

(d)更新训练数据集的权值分布
  • D m + 1 = ( w m + 1 , 1 , . . . , w m + 1 , i , . . . , w m + 1 , N ) D_{m+1} = (w_{m+1,1},...,w_{m+1,i},...,w_{m+1,N}) Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)
  • w m + 1 , i = w m i Z m exp ⁡ ( − α m y i G m ( x i ) ) , i = 1 , 2 , . . . , N w_{m+1,i} = \frac{w_{mi}}{Z_m}\exp(-\alpha_my_iG_m(x_i)), i = 1,2,...,N wm+1,i=Zmwmiexp(αmyiGm(xi)),i=1,2,...,N
    这里, Z m Z_m Zm是规范化因子
  • Z m = ∑ i = 1 N w m i exp ⁡ ( − α m y i G m ( x i ) ) Z_m = \displaystyle\sum_{i=1}^{N} w_{mi}\exp(-\alpha_my_iG_m(x_i)) Zm=i=1Nwmiexp(αmyiGm(xi))
    它使 D m + 1 D_{m+1} Dm+1成为一个概率分布。

上式④可以写为: 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}= \begin{cases} \frac{w_{mi}}{Z_m}e^{-\alpha_m}, G_m(x_i) = y_i\\ \frac{w_{mi}}{Z_m}e^{\alpha_m}, G_m(x_i) \neq y_i \end{cases} wm+1,i={Zmwmieαm,Gm(xi)=yiZmwmieαm,Gm(xi)=yi
由此式可知,被弱分类器 G m ( x ) G_m(x) Gm(x)误分类样本的权值得以扩大,而被正确分类样本的权值得以缩小。由下式比上上式可知,被误分类的样本放大了 e 2 α m = 1 − e m e m e^{2\alpha_m} = \frac{1-e_m}{e_m} e2αm=em1em倍。因此,误分类的样本在下一轮将更多的被关注,而正确分类的在下一轮被关注更少。

2.3 构建基本分类器(弱分类器)的线性组合

  • f ( x ) = ∑ m = 1 M α m G m ( x i ) f(x) = \displaystyle\sum_{m=1}^{M} \alpha_mG_m(x_i) f(x)=m=1MαmGm(xi)
    得到最终的分类器
  • G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x) = sign(f(x)) = sign(\displaystyle\sum_{m=1}^{M}\alpha_mG_m(x)) G(x)=sign(f(x))=sign(m=1MαmGm(x))

三、AdaBoost训练误差分析

AdaBoost最终分类器的训练误差

  • 1 N ∑ i = 1 N I ( G ( x i ) ≠ y i ) ≤ 1 N ∑ i exp ⁡ ( − y i f ( x i ) ) = ∏ m Z m \frac{1}{N}\displaystyle\sum_{i=1}^{N}I(G(x_i) \neq y_i) \le \frac{1}{N}\displaystyle\sum_{i}\exp(-y_if(x_i)) = \displaystyle\prod_{m}Z_m N1i=1NI(G(xi)=yi)N1iexp(yif(xi))=mZm

该定理说明,可以在每一轮选取适当的 G m G_m Gm使得 Z m Z_m Zm最小,从而使训练误差下降最快。

  • ∏ m Z m = ∏ m = 1 M [ 2 e m ( 1 − e m ) ] = ∏ m = 1 M ( 1 − 4 γ m 2 ) ≤ exp ⁡ ( − 2 ∑ m = 1 M γ m 2 ) \displaystyle\prod_{m}Z_m = \displaystyle\prod_{m=1}^{M}[2\sqrt{e_m(1-e_m)}] = \displaystyle\prod_{m=1}^{M}\sqrt{(1-4\gamma_m^{2})} \le \exp(-2\displaystyle\sum_{m=1}^{M}\gamma_m^{2}) mZm=m=1M[2em(1em) ]=m=1M(14γm2) exp(2m=1Mγm2),其中 γ m = 1 2 − e m \gamma_m = \frac{1}{2} - e_m γm=21em

推论,如果存在 γ m > 0 , 对 所 有 的 m 有 γ m ≥ γ \gamma_m > 0,对所有的 m 有\gamma_m \geq \gamma γm>0mγmγ,则

  • 1 N ∑ i = 1 N I ( G ( x i ) ≠ y i ) ≤ exp ⁡ ( − 2 M γ 2 ) \frac{1}{N}\displaystyle\sum_{i=1}^{N}I(G(x_i) \neq y_i) \le\exp(-2M\gamma^2) N1i=1NI(G(xi)=yi)exp(2Mγ2)

这个推论说明在此条件下,AdaBoost的训练误差以指数下降。

四、总结

AdaBoost具备非常典型的集成学习特点,将多个弱分类器按分类正确率得到不一样的权重,最后将所有的弱分类器按所得权重线性结合在一起,从而得到一个强分类器。

1. 优点

AdaBoost能够很巧妙的将多个弱分类器组合起来形成一个强分类器,而弱分类器可由不同的分类算法形成,并且AdaBoost精度很高。

2.缺点

AdaBoost缺点很明显,因为训练过程相当于黑盒,训练多少次能达到强分类器的效果我们不知道,所以训练次数难以确定。并且每一次都是训练完整个数据集,导致非常耗时。

参考文献

李航.统计学习方法(第二版) [M].北京:清华大学出版社,2019

在这里插入图片描述

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值