AdaBoost算法
AdaBoost
算法通过提高那些被前一轮弱分类器错误分类样本的权重,而降低那些被正确分类样本的权重,使得被错误分类样本受到后一轮的弱分类器的更大关注。
算法流程
输 入 : 训 练 数 据 集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } , 其 中 x i ∈ R n , y i ∈ { − 1 , + 1 } ; ; 弱 学 习 算 法 输入:训练数据集T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\},其中x_i \in R^n,y_i \in \{-1, +1\};;弱学习算法 输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈Rn,yi∈{−1,+1};;弱学习算法
输 出 : 最 终 分 类 器 G ( x ) 输出:最终分类器G(x) 输出:最终分类器G(x)
- 初始化训练数据的权重分布
D 1 = ( w 1 , 1 , . . . , w 1 , i , . . . , w 1 , N ) , w 1 i = 1 N , i = 1 , 2 , . . . , N D_1=(w_{1,1},...,w_{1,i},...,w_{1,N}), \quad w_{1i}=\frac {1}{N}, \quad i=1,2,...,N D1=(w1,1,...,w1,i,...,w1,N),w1i=N1,i=1,2,...,N - 对
m
=
1
,
2
,
.
.
.
,
M
m=1,2,...,M
m=1,2,...,M
- 使用具有权重分布
D
m
D_m
Dm的训练数据集学习,得到基本分类器
D m ( x ) → { − 1 , + 1 } D_m(x) \rightarrow \{-1,+1\} Dm(x)→{−1,+1} - 计算
G
m
(
x
)
G_m(x)
Gm(x)在训练集上的分类误差率
e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m=\sum_{i=1}^{N}P(G_m(x_i)\not=y_i)=\sum_{i=1}^{N}w_{mi}I(G_m(x_i)\not=y_i) em=i=1∑NP(Gm(xi)=yi)=i=1∑NwmiI(Gm(xi)=yi) - 计算
G
m
(
x
)
G_m(x)
Gm(x)的系数
α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1−em - 更新训练数据集的权重分布
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_{m,i}} {Z_m} exp(-\alpha_my_iG_m(x_i)), \quad i=1,2....,N wm+1,i=Zmwm,iexp(−α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_{m,i}exp(-\alpha_my_iG_m(x_i)) Zm=i=1∑Nwm,iexp(−αmyiGm(xi))
- 使用具有权重分布
D
m
D_m
Dm的训练数据集学习,得到基本分类器
- 构建基本分类器的线性组合
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^M\alpha_mG_m(x) f(x)=m=1∑MαmGm(x) - 得到最终分类器
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(\sum_{m=1}^M\alpha_mG_m(x)) G(x)=sign(f(x))=sign(m=1∑MαmGm(x))