集成学习一Boosting

+个体与集成
+Boosting
+Bagging与Random Forest
+结合策略
+多样性

个体与集成

这里写图片描述
同质:只包含同种类型的个体学习器,相应的算法为“基学习器”。有时候基学习器被称为弱学习器。

异质:包含多种个体学习器,个体学习器为“组件学习器”。

集成条件:个体学习器好而不同,即个体学习器要有一定的“准确性”,而且要有“多样性”。

研究核心:个体学习器的“准确性‘’和“多样性“存在冲突,准确性很高以后就要牺牲多样性,。产生并结合“好而不同”的个体学习器。
集成学习方法两大类:个体学习器之间存在强依赖关系,串行生成序列化方法:boosting;不存在强依赖关系,并行化方法:Bagging、Random Forest.

Boosting

工作机制:从初始训练集训练出基学习器,然后根据基学习器的表现对训练样本分布进行调整,使得先前的学习器做错的训练样本后续受到更多的关注,基于调整后的样本分布来训练下一个基学习器;重复进行直至基学习器数目达到事先指定的T值,然后将这T个基学习器进行加权结合。

AdaBoost描述:

输入:训练集D= {(x1,y1),(x2,y2),...,(xm,ym)} { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) }
基学习算法: Λ Λ
训练轮数:T.
过程:

1: D1(x)=1/m D 1 ( x ) = 1 / m

2 : fort=1,2,...,Tdo f o r t = 1 , 2 , . . . , T d o

3 : ht=Λ(D,Dt); h t = Λ ( D , D t ) ;

4 : σt=Px Dt(ht(x)f(x)); σ t = P x   D t ( h t ( x ) ≠ f ( x ) ) ;

5 : if σt>0.5 σ t > 0.5 then break

6 : αt=12ln(1σtσt); α t = 1 2 l n ( 1 − σ t σ t ) ;

7 : Dt+1(x)=Dt(x)Zt{exp(αt),exp(αt),if ht(x)=f(x) if ht(x)f(x)  D t + 1 ( x ) = D t ( x ) Z t ∗ { e x p ( − α t ) , if  h t ( x ) = f ( x )   e x p ( α t ) , if  h t ( x ) ≠ f ( x )  

= Dt(x)exp(αtf(x)ht(x))Zt D t ( x ) e x p ( − α t f ( x ) h t ( x ) ) Z t
8 : end for
输出: H(x)=sign(Tt=1αtht(x)) H ( x ) = s i g n ( ∑ t = 1 T α t h t ( x ) )

AdaBoost推导过程:

原理:基于加性模型,即基学习器的线性组合 H(x)=Tt=1αtht(x) H ( x ) = ∑ t = 1 T α t h t ( x ) 来最小化指数损失函数, lexp(H|D)=Ex D[ef(x)H(x)] l e x p ( H | D ) = E x   D [ e − f ( x ) H ( x ) ]

H(x) H ( x ) 求偏导并令其为0:

lexp(H|D)H(x)=eH(x)P(f(x)=1|x)+eH(x)P(f(x)=1|x)=0 ∂ l e x p ( H | D ) ∂ H ( x ) = − e − H ( x ) P ( f ( x ) = 1 | x ) + e H ( x ) P ( f ( x ) = − 1 | x ) = 0

得到如下:
H(x)=12lnP(f(x)=1|x)P(f(x)=1|x) H ( x ) = 1 2 l n P ( f ( x ) = 1 | x ) P ( f ( x ) = − 1 | x )
,
有: sign(H(x))=sign(12lnP(f(x)=1|x)P(f(x)=1|x))={1,1,P(f(x)=1|x)>P(f(x)=1|x)P(f(x)=1|x)<P(f(x)=1|x)  s i g n ( H ( x ) ) = s i g n ( 1 2 l n P ( f ( x ) = 1 | x ) P ( f ( x ) = − 1 | x ) ) = { 1 , P ( f ( x ) = 1 | x ) > P ( f ( x ) = − 1 | x ) − 1 , P ( f ( x ) = 1 | x ) < P ( f ( x ) = − 1 | x )  

= arg maxy{1,1}P(f(x)=y|x), a r g   m a x y ∈ { − 1 , 1 } P ( f ( x ) = y | x ) ,

则:指数损失最小,分类错误率也将最小,因此可将其作为优化目标。

在AdaBoost算法中,第一个基分类器 h1 h 1 是通过直接将基学习算法用于初始数据分布而得;此后迭代生成 ht h t αt α t ,当基分类器 ht h t 基于分布 Dt D t 产生后,该分类器的权重 αt α t 应使得 αtht α t h t 最小化指数损失函数。

lexp(αtht|Dt)=Ex Dt[ef(x)αtht(x)]=Ex Dt[eαtII(f(x)=ht(x))+eαtII(f(x)ht(x))]=eαtPx Dt(f(x)=ht(x))+eαtPx Dt(f(x)ht(x))=eαtσt l e x p ( α t h t | D t ) = E x   D t [ e − f ( x ) α t h t ( x ) ] = E x   D t [ e − α t I I ( f ( x ) = h t ( x ) ) + e α t I I ( f ( x ) ≠ h t ( x ) ) ] = e − α t P x   D t ( f ( x ) = h t ( x ) ) + e α t P x   D t ( f ( x ) ≠ h t ( x ) ) = e − α t σ t

其中: σt=Px Dt(f(x)ht(x)) σ t = P x   D t ( f ( x ) ≠ h t ( x ) ) 。考虑指数损失函数的导数:
 lexp(αtht|Dt)αt=eαt(1σt)+eαtσt=0 ∂   l e x p ( α t h t | D t ) ∂ α t = − e − α t ( 1 − σ t ) + e α t σ t = 0

得到:
αt=12 ln(1σtσt), 6 α t = 1 2   l n ( 1 − σ t σ t ) ,   即 为 算 法 第 6 行 权 重 更 新 公 式 。

AdaBoost算法在获得H_{t-1}之后样本分布将进行调整,使得下一轮基学习器h_t可以纠正H_{t-1}的一些错误。理想的h_t能纠正H_{t-1}的全部错误,即最小化

lexp(Ht+1+ht|D)=E[ef(x)(Ht1(x)+ht(x))]=E[ef(x)Ht1(x)ef(x)ht(x)] l e x p ( H t + 1 + h t | D ) = E [ e − f ( x ) ( H t − 1 ( x ) + h t ( x ) ) ] = E [ e − f ( x ) H t − 1 ( x ) e − f ( x ) h t ( x ) ]

ef(x)ht(x) e − f ( x ) h t ( x ) 泰勒展开,并且有 f2(x)=h2t(x)=1 f 2 ( x ) = h t 2 ( x ) = 1 式近似为:

lexp(αtht|D)=E[ef(x)(Ht1(x)(1f(x)ht(x)+f2(x)h2t(x)2)] l e x p ( α t h t | D ) = E [ e − f ( x ) ( H t − 1 ( x ) ( 1 − f ( x ) h t ( x ) + f 2 ( x ) h t 2 ( x ) 2 ) ]

于是,理想的基学习器并由上式
ht(x)=argh min lexp(Ht1+h|D)=argh min lexp(αtht|D) h t ( x ) = a r g h   m i n   l e x p ( H t − 1 + h | D ) = a r g h   m i n   l e x p ( α t h t | D )
=argh max E[ef(x)(Ht1(x)E[ef(x)Ht1(x)]f(x)h(x)] = a r g h   m a x   E [ e − f ( x ) ( H t − 1 ( x ) E [ e − f ( x ) H t − 1 ( x ) ] f ( x ) h ( x ) ]
其中 E[ef(x)Ht1(x)] E [ e − f ( x ) H t − 1 ( x ) ] 是一个常数。令 Dt D t 表示一个分布则
Dt(x)=D(x)ef(x)Ht1(x)E[ef(x)Ht1(x)] D t ( x ) = D ( x ) e − f ( x ) H t − 1 ( x ) E [ e − f ( x ) H t − 1 ( x ) ] ∗ ∗ ( 没 看 懂 ) ∗ ∗

ht(x) h t ( x ) 等价于: ht(x=argh max E[f(x)h(x)] h t ( x ) = a r g h   m a x   E [ f ( x ) h ( x ) ]

由于 f(x)h(x){1,+1} f ( x ) , h ( x ) ∈ { − 1 , + 1 } ,有:

f(x)h(x)=12II(f(x)h(x)) f ( x ) h ( x ) = 1 − 2 I I ( f ( x ) ≠ h ( x ) )
则理想学习器:
ht(x)=argh min E[II(f(x)h(x))] h t ( x ) = a r g h   m i n   E [ I I ( f ( x ) ≠ h ( x ) ) ]
由此可见,理想的h_t分布将在分布D_t下最小化分类误差,因此,弱分类器将基于分布D_t来训练,分类误差小于0.5,类似残差逼近,考虑到D_t和D_{t+1}的关系,有:
Dt+1(x)=D(x)ef(x)Ht(x)E[ef(x)Ht(x)]=D(x)ef(x)Ht1(x)ef(x)αtht(x)E[ef(x)Ht(x)] D t + 1 ( x ) = D ( x ) e − f ( x ) H t ( x ) E [ e − f ( x ) H t ( x ) ] = D ( x ) e − f ( x ) H t − 1 ( x ) e − f ( x ) α t h t ( x ) E [ e − f ( x ) H t ( x ) ]
=Dt(x)ef(x)αtht(x)E[ef(x)Ht1(x)]E[ef(x)Ht(x)]7 = D t ( x ) e − f ( x ) α t h t ( x ) E [ e − f ( x ) H t − 1 ( x ) ] E [ e − f ( x ) H t ( x ) ] , 即 为 第 7 行 样 本 分 布 更 新 公 式

总结:boosting算法要求基学习器能对特定的数据分布进行学习,通过“重赋权法”或“重采样法”实施(后者避免过早停止,持续到预设的T轮),关注降低偏差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值