Adboost
原理
Adboost是利用前一轮弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去,简单的说是Boosting框架+任意基学习器算法+指数损失函数。它是加法模型,学习的是前向分布学习算法,损失函数为指数函数的分类问题;另外,其基分类器可以为任何学习器,使用最广泛的是决策树和神经网络;对于决策树,使用CART分类回归树
目标函数
损失函数为指数函数,即定义损失函数为:
L = a r g m i n ⏟ a , G ∑ i = 1 m e x p ( − y i f k ( x ) ) − − − ( 1 ) L = \underset{a,G}{ \underbrace{arg min}}\sum_{i=1}^mexp(-y_if_k(x)) ---(1) L=a,G
argmini=1∑mexp(−yifk(x))−−−(1)
其中, f k ( x ) f_k(x) fk(x)为第k轮的学习器 f k ( x ) = ∑ i = 1 k α i G i ( x ) f_{k}(x) = \sum\limits_{i=1}^{k}\alpha_iG_{i}(x) fk(x)=i=1∑kαiGi(x), G(x)为基分类器, α \alpha α为每个基分类器的权重,m为样本数。
建立第k个基分类器时:
( α k , G k ( x ) ) = a r g m i n ⏟ α , G ∑ i = 1 m e x p [ ( − y i ) ( f k − 1 ( x ) + α G ( x ) ) ] = a r g m i n ⏟ α , G ∑ i = 1 m w k i ′ e x p [ − y i α G ( x ) ] (\alpha_k, G_k(x)) = \underbrace{arg\;min\;}_{\alpha, G}\sum\limits_{i=1}^{m}exp[(-y_i) (f_{k-1}(x) + \alpha G(x))] \\ = \underbrace{arg\;min\;}_{\alpha, G}\sum\limits_{i=1}^{m}w_{ki}'exp[-y_i\alpha G(x)] (αk,Gk(x))=α,G
argmini=1∑mexp[(−yi)(fk−1(x)+αG(x))]=α,G
argmini=1∑mwki′exp[−yiαG(x)]
注意此时对于单个基分类器 G k ( x ) G_k(x) Gk(x)而言,对任意的 α \alpha α有
G k ( x ) = a r g m i n ⏟ G ∑ i = 1 m w k i ′ I ( y i ≠ G ( x i ) ) − − − ( 2 ) G_k(x) = \underbrace{arg\;min\;}_{G}\sum\limits_{i=1}^{m}w_{ki}'I(y_i \neq G(x_i)) --- (2) Gk(x)=G
argmini=1∑mwki′I(yi=G(xi))−−−(2)
继续公式(adboost-1)
a r g m i n ⏟ α , G ∑ i = 1 m w k i ′ e x p [ − y i α G ( x ) ] = a r g m i n ⏟ α ∑ y i = G k