adaboost概念(Adaptive Boosting)
AdaBoost的中文叫做自适应增强,由Yoav Freund和Robert Schapire在1995年提出。它的自适应在于:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。adaboost算法是模型为加法模型、损失函数为指数函数、学习算法为前向分布算法时的二类分类学习方法。具体算法如下(摘自统计学习方法):
-
初始化训练数据的权值分布
D 1 = ( w 11 , . . . , w 1 i , . . . , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , . . . , N D_1 = (w_{11},...,w_{1i},...,w_{1N}),\quad w_{1i}=\frac{1}{N}, \quad i=1,2,...,N D1=(w11,...,w1i,...,w1N),w1i=N1,i=1,2,...,N -
对m=1,2,…,M
(a):使用具有权值分布 D M D_{M} DM的数据集进行学习,得到基本分类器 G m ( x ) : X → { − 1 , + 1 } G_m(x):\mathcal{X} \to \{-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 ) = ∑ G m ( x i ) ≠ y i w w i e_m = P(G_m(x_i)\ne y_i)=\sum_{i=1}^Nw_{mi}I(G_m(x_i)\ne y_i) = \sum_{G_m(x_i)\ne y_i}w_{wi} em=P(Gm(xi)̸=yi)=i=1∑NwmiI(Gm(xi)̸=yi)=Gm(xi)̸=yi∑wwi(c ):计算 G m ( x ) G_m(x) Gm(x)的系数
α m = 1 2 l n 1 − e m e m \alpha_m = \frac{1}{2}ln\frac{1-e_m}{e_m} αm=21lnem1−em(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 e x p ( − α 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)),\quad i=1,2,...,N wm+1,i=Zmwmiexp(−αmyiGm(xi)),i=1,2,...,N
其中 Z M Z_{M} ZM是规范化因子,它使 D m + 1 D_{m+1} Dm+1成为一个概率分布。
Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m = \sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=i=1∑Nwmiexp(−α