集成算法(AdaBoost基本原理)

1. 引言提升算法大多都是基于这样的一个思想;对于一个复杂的任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独判断的好。实际上就是 三个臭皮匠,顶个诸葛亮的道理。AdaBoost算法是提升算法中具有代表性的一种,它通过改变样本的权重,学习多个分类器,并将这些分类器线性组合,提高分类器的性能。2. 算法输入:训练数据集 T={(x1,y1),(x2,y2)...(...
摘要由CSDN通过智能技术生成

1. 引言

提升算法大多都是基于这样的一个思想;对于一个复杂的任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独判断的好。实际上就是 三个臭皮匠,顶个诸葛亮的道理。
AdaBoost算法是提升算法中具有代表性的一种,它通过改变样本的权重,学习多个分类器,并将这些分类器线性组合,提高分类器的性能。

2. 算法

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x 3 , y 3 ) } T=\{(x_1,y_1),(x_2,y_2)...(x_3,y_3)\} T={(x1,y1),(x2,y2)...(x3,y3)},其中 x 1 ϵ X ϵ R n x_1\epsilon X\epsilon R_n x1ϵXϵRn, y i ϵ Y = { − 1 , + 1 } y_i\epsilon Y=\{-1,+1\} yiϵY={1,+1},弱学习方法;
输出:最终分类器 G ( x ) G(x) G(x)
(1)初始化训练数据的权值分布 D 1 = ( w l l , . . . , w l i , . . . , w l N ) , w l i = 1 n , i = 1 , 2 , . . . , N D_1=(w_{ll}, ... ,w_li,...,w_{lN}),w_{li}= \frac{1}{n},i=1,2,...,N D1=(wll,...,wli,...,wlN),wli=n1,i=1,2,...,N
(2)对 m = 1 , 2 , . . . , M m=1,2,...,M m=1,2,...,M
(a)使用具有权值分布 D m D_m Dm的训练数据集学习,得到基分类器 G m ( x ) : x → { − 1 , + 1 } G_m(x):x \overrightarrow{}\{-1,+1\} Gm(x):x {1,+1}
(b)计算 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}^n w_{mi}I(G_m(x_i)\neq y_i)\quad em=P(Gm(xi)̸=yi)=i=1nwmiI(Gm(xi)̸=yi)
©计算 G m ( x ) G_m(x) Gm(x)的系数 a m = 1 2 l o g ( 1 − e m ) e m , 这 里 的 对 数 是 自 然 对 数 a_m = \frac 12log\frac{(1-e_m)}{e_m}, 这里的对数是自然对数 am=21logem(1em),
(d)更新训练数据集权值分布 D m + 1 = ( w m + l , l , . . . , w m + l , i . . . , w m + l , N ) D_{m+1}=(w_{m+l,l},...,w_{m+l,i}...,w_{m+l,N}) Dm+1=(wm+l,l,...,wm+l,i...,wm+l,N)
w m + l , i = w m i Z m e x p ( − a m y i G m ( x i ) ) , i = 1 , 2... N w_{m+l,i}=\frac {w_mi}{Z_m}exp(-a_m y_iG_m(x_i)),i=1,2...N wm+l,i=Zmwmiexp(amyiGm(xi)),i=1,2...N这里 Z m Z_m Zm是规范化因子
Z m = ∑ i = 1 N w m i e x p ( − a m y i G m ( x i ) ) Z_m=\sum_{i=1}^Nw_{mi}exp(-a_m y_iG_m(x_i)) Zm=i=1Nwmiexp(amyiGm(xi))
他使 D m + 1 D_{m+1} Dm+1成为一个概率分布
(3)构建基本分类器线性组合
f ( x ) = ∑ m = 1 M a m G m ( x ) f(x) = \sum_{m=1}^{M}a_mG_m(x) f(x)=m=1MamGm(x)
得到最终分类器 G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M a m G m ( x ) ) G(x)=sign(f(x))=sign( \sum_{m=1}^{M} a_mG_m(x)) G(x)=sign(f(x))=sign(m=1MamGm(x))

3. 算法描述

步骤(1):假设训练数据集具有均匀的权值分布,即每个训练样本在基本分类器的学习中的作用相同,这一假设保证第一步能够在原始数据上学习基本分类器 G 1 ( x ) G_1(x) G1(x).
步骤(2):AdaBoost反复学习基本分类器,在每一轮 m = 1 , 2 , 3.. , M m=1,2,3..,M m=1,2,3..,M顺次的执行下列操作:
(a)使用当前分布 D m D_m Dm加权的训练数据集,学习基本分类器 G m ( x ) G_m(x) Gm(x)
(b)计算基本分类器 G m ( x ) G_m(x) Gm(x)在加权训练数据集上的分类误差率: e m = P ( G m ( x i ) ≠ y i ) = ∑ G m ( x i ) ≠ y i w m i e_m=P(G_m(x_i)\neq y_i)=\sum_{G_m(x_i)\neq y_i} w_{mi} em=P(Gm(xi)̸=yi)=Gm(xi)̸=yiwmi
这里, w m i w_{mi} wmi表示第m轮中第i个实例的权值, ∑ i = 1 N w m i = 1 \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 ( x ) G_(x) G(x)的分类误差率的关系。
©计算基本分类器 G m ( x ) G_m(x) Gm(x)的系数 a m a_m am. a m a_m am表示 G m ( x ) G_m(x) Gm(x)在最终分类器中的重要性。
(d)更新训练数据的权值分布为下一轮做准备
步骤(3):线性组合 f ( x ) f(x) f(x)实现M个基本分类器的加权表决。系数 a m a_m am表示了基本分类器 G m ( x ) G_m(x) Gm(x)的重要性,这里,所有的 a m a_m am之和并不唯一。 f ( x ) f(x) f(x)的符号决定实例x的类, f ( x ) f(x) f(x)的绝对值表示分类的确信度。利用基本分类器的线性组合构建最终分类器是AdaBoost的另一特点。

4. 小结

Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。

参考文献:统计学习-李航


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值