Boosting方法基本思路
- Boosting 和 Bagging最本质的差别就是对基模型的差别对待,是不停学习后得到的综合投票最高的模型,最终boosting得到的结果偏差(bias)最小,而bagging如前面文章所述,是方差最小。
- Boosting过程:
- 1、加法模型将基础模型线性组合
- 2、每轮训练提升错误率小的基模型权重,减小错误率大的模型权重
- 3、改变训练数据集的概率分布,依据概率分布调用弱分类器,组合成强分类器
Adaboost算法
算法1.1(AdaBoost)
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x n , y n ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\} T={(x1,y1),(x2,y2),⋯,(xn,yn)}其中 x i ∈ χ ⊆ R n , y i ∈ Y = { − 1 , + 1 } x_i \in \chi \subseteq R^n,y_i\in Y=\{-1,+1\} xi∈χ⊆Rn,yi∈Y={−1,+1};弱学习算法;
输出:最终分类器 G ( x ) G(x) G(x) 。
(1)初始化训练数据的权值分布
D
1
=
(
w
11
,
⋯
,
w
1
i
,
⋯
,
w
1
N
)
,
w
1
i
=
1
N
,
i
=
1
,
2
,
⋯
,
N
D_1=(w_{11},\cdots,w_{1i},\cdots,w_{1N}),\qquad w_{1i}=\frac{1}{N},\qquad i=1,2,\cdots,N
D1=(w11,⋯,w1i,⋯,w1N),w1i=N1,i=1,2,⋯,N
(2)对
m
=
1
,
2
,
⋯
,
M
m=1,2,\cdots,M
m=1,2,⋯,M
- (a)使用具有权值分布 D m D_m Dm的训练数据集学习,得到基本分类器 G m ( x ) : χ → { − 1 , + 1 } G_m(x):\chi\to \{-1,+1\} Gm(x):χ→{−1,+1}
- (b)计算 G m ( x ) G_m(x) Gm(x)在训练数据集上的分类误差率 e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i = ∑ G m ( x i ) ≠ y i w m i e_m=\sum_{i=1}^NP(G_m(x_i)\neq y_i \\ =\sum_{G_m(x_i)\neq y_i}w_{mi} em=i=1∑NP(Gm(xi)=yi=Gm(xi)=yi∑wmi
- (c)计算
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)更新训练数据集的权值分布
D
m
+
1
=
(
w
m
+
1
,
1
,
⋯
,
w
m
+
1
,
i
,
⋯
,
w
m
+
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
D_{m+1}=(w_{m+1,1},\cdots,w_{m+1,i},\cdots,w_{m+1,N})\\ w_{m+1,i}=\frac{w_mi}{Z_m}exp(-\alpha_my_iG_m(x_i)),\qquad i=1,2,\cdots,N
Dm+1=(wm+1,1,⋯,wm+1,i,⋯,wm+1,N)wm+1,i=Zmwmiexp(−αmyiGm(xi)),i=1,2,⋯,N
这里, Z m Z_m Zm是规范化因子 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(−αmyiGm(xi))
它使 D m + 1 D_{m+1} Dm+1成为一个概率分布。
(3)构建基本分类器的线性组合 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\left( \sum_{m=1}^M\alpha_mG_m(x) \right) G(x)=sign(f(x))=sign(m=1∑MαmGm(x)) - 1、假设原始数据的每一个训练样本在基本分类器的学习中作用相同
- 2、 更新训练数据的权值分布为下一轮作准备,式 w m + 1 , i = w m i Z m − e a m ⋅ y i ⋅ G m ( x i ) w_{m+1},i=\frac{w_{mi}}{Z_m}−e^{a_m⋅y_i⋅G_m(xi)} wm+1,i=Zmwmi−eam⋅yi⋅Gm(xi)可以写成:KaTeX parse error: Undefined control sequence: \alpah at position 47: …_{mi}}{Z_m}e^{−\̲a̲l̲p̲a̲h̲_m}, & G_m(x_i)…
此,从上式可以看到:被基本分类器 G m ( x ) G_m(x) Gm(x) 错误分类的样本的权重扩大,被正确分类的样本权重减少,二者相比相差 e 2 α m = 1 − e m e m e^{2\alpha_m=\frac{1-e_m}{e_m}} e2αm=em1−em倍。
线性组合 实现了将M个基本分类器的加权表决,系数 α m \alpha_m αm标志了基本分类器 G m ( x ) G_m(x) Gm(x) 的重要性,值得注意的是:所有的 α m \alpha_m αm之和不为1。 f ( x ) f(x) f(x)的符号决定了样本x属于哪一类。