提升方法的基本思想是通过改变训练样本的权重学习多个分类器,并将这些线性分类器进行线性组合,提高分类性能。
AdaBoost
算法
输入:训练集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}
T={(x1?,y1?),(x2?,y2?),...,(xN?,yN?)},其中
x
i
∈
X
?
R
n
x_i\in X \subseteq R^n
xi?∈X?Rn,
y
i
∈
Y
?
{
?
1
,
1
}
y_i\in Y \subseteq\{-1,1\}
yi?∈Y?{?1,1};弱学习算法。
输出:最终分类器
G
(
n
)
G(n)
G(n)。
初始化训练数据的权值分布
D
1
=
(
w
1
1
,
.
.
.
,
w
1
i
,
.
.
.
,
w
1
N
)
,
w
1
i
=
1
N
D_1=(w_11,...,w_1i,...,w_{1N}),w_1i=\frac{1}{N}
D1?=(w1?1,...,w1?i,...,w1N?),w1?i=N1?
对 m = 1 , 2 , . . . , M m=1,2,...,M m=1,2,...,M
构建基本分类器的线性组合
f
(
x
)
=
∑
m
+
1
M
α
m
G
m
(
x
)
f(x)=\sum_{m+1}^{M}\alpha_{m}G_{m}(x)
f(x)=m+1∑M?αm?Gm?(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_{m}G_{m}(x))
G(x)=sign(f(x))=sign(m=1∑M?αm?Gm?(x))
注:式①可写成
w
m
+
1
,
i
=
{
w
m
,
i
Z
m
e
?
α
m
,
G
m
(
x
i
)
=
y
i
w
m
,
i
Z
m
e
α
m
,
G
m
(
x
i
)
≠
y
i
w_{m+1,i}=\left\{\begin{aligned}\frac{w_{m,i}}{Z_m}e^{-\alpha_m},G_{m}(x_i)=y_i\\\frac{w_{m,i}}{Z_m}e^{\alpha_m},G_{m}(x_i)\neq y_i\\\end{aligned} \right.
wm+1,i?=?
?
??Zm?wm,i??e?αm?,Gm?(xi?)=yi?Zm?wm,i??eαm?,Gm?(xi?)=yi??
可知误分类样本在每一轮学习后权重会被放大
e
2
α
m
=
1
?
e
m
e
m
e^{2\alpha_m}=\frac{1-e_m}{e_m}
e2αm?=em?1?em??倍,系数
α
m
\alpha_m
αm?表示分类器
G
m
(
x
)
G_m(x)
Gm?(x)的重要性,所有
α
m
\alpha_m
αm?之和并不等于1。