AdaBoost提升方法
提升方法的基本思想是通过改变训练样本的权重学习多个分类器,并将这些线性分类器进行线性组合,提高分类性能。
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
- 使用具有权值分布
D
m
D_m
Dm?的训练集学习,得到基本分类器:
G m ( x ) : X ? { ? 1 , 1 } G_m(x):X\longrightarrow\{-1,1\} Gm?(x):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 ) = ∑ G m ( x i ) ≠ y i w m i e_m=\sum_{i=1}^{N}P(G_m(x_i)\neq y_i)\\=\sum_{i=1}^{N}w_miI(G_m(x_i)\neq y_i)\\=\sum_{G_m(x_i)\neq y_i}w_mi em?=i=1∑N?P(Gm?(xi?)=yi?)=i=1∑N?wm?iI(Gm?(xi?)=yi?)=Gm?(xi?)=yi?∑?wm?i - 计算
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?=21?logem?1?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_{m}y_{i}G_{m}(x_i)),{i=1,2,...,N} wm+1,i?=Zm?wm,i??exp(?αm?yi?Gm?(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}{N}w_{m,i}exp(-\alpha_{m}y_{i}G_{m}(x_i)) Zm?=i=1∑?Nwm,i?exp(?αm?yi?Gm?(xi?))
它使得 D m + 1 D_{m+1} Dm+1?成为一个概率分布,即 ∑ i = 1 N w m , i = 1 \sum_{i=1}^{N}w_{m,i}=1 ∑i=1N?wm,i?=1。
- 使用具有权值分布
D
m
D_m
Dm?的训练集学习,得到基本分类器:
-
构建基本分类器的线性组合
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。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!