赞
踩
前向分布算法属于加法模型:
f
(
x
)
=
∑
m
=
1
M
β
m
b
(
x
;
γ
m
)
f(x) = \sum_{m=1}^M\beta_mb(x; \gamma_m)
f(x)=m=1∑Mβmb(x;γm)
b
(
x
;
γ
m
)
b(x; \gamma_m)
b(x;γm)为基函数,即基分类器,
β
m
为
基
函
数
的
系
数
\beta_m为基函数的系数
βm为基函数的系数。
Adaboost使用的是Boosting算法集成框架,首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。
输入:训练数据集,弱学习算法,弱分类器迭代次数K
输出:最终分类器
输入:训练样本集
T
=
T =
T= {
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
m
,
y
m
)
(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)
(x1,y1),(x2,y2),⋯,(xm,ym)}、弱分类器算法, 弱分类器迭代次数K。
输出:最终的强分类器
初始化训练数据的权值分布 D ( 1 ) = ( w 11 , w 12 , ⋯   , w 1 m ) ; w 1 i = 1 m ; i = 1 , 2 ⋯ m D(1) = (w_{11},w_{12},\cdots,w_{1m});w_{1i} = \frac {1}{m};i = 1,2\cdots m D(1)=(w11,w12,⋯,w1m);w1i=m1;i=1,2⋯m
使用具有权重 D k D_k Dk的样本集来训练数据,得到弱分类器 G k ( x ) G_k(x) Gk(x)
计算分类误差率 e k e_k ek,找到分类误差率最低的时候的阈值 v v v
计算Gk(x)的分类误差率计算Gk(x)的分类误差率 e k = P ( G k ( x i ) = /   y i ) = ∑ i = 1 m w k i I ( G k ( x i ) = /   y i ) e_k = P(G_k(x_i){=}\mathllap{/\,}y_i) = \sum_{i=1}^mw_{ki}I(G_k(x_i){=}\mathllap{/\,}y_i) ek=P(Gk(xi)=/yi)=i=1∑mwkiI(Gk(xi)=/yi)
计算弱分类器的系数计算弱分类器的系数 α k = 1 2 l o g 1 − e k e k \alpha_k = \frac{1}{2}log\frac{1-e_k}{e_k} αk=21logek1−ek
更新样本集的权重分布
w
k
+
1
,
i
=
w
k
i
Z
K
e
x
p
(
−
α
k
y
i
G
k
(
x
i
)
)
,
i
=
1
,
2
,
3
⋯
m
w_{k+1,i} = \frac{w_{ki}}{Z_K}exp(-\alpha_ky_iG_k(x_i)) ,i = 1,2,3 \cdots m
wk+1,i=ZKwkiexp(−αkyiGk(xi)),i=1,2,3⋯m
Z
k
=
∑
i
=
1
m
w
k
i
e
x
p
(
−
α
k
y
i
G
k
(
x
i
)
)
,
Z
K
为
规
范
化
因
子
Z_k = \sum_{i =1}^mw_{ki}exp(-\alpha_ky_iG_k(x_i)),Z_K为规范化因子
Zk=i=1∑mwkiexp(−αkyiGk(xi)),ZK为规范化因子
根据阈值 v v v在分类根据阈值 v v v在分类
迭代…直到分类器上的误分类点为0
强分类器 f ( x ) = s i g n ( ∑ k = 1 K α k G k ( x ) ) f(x) = sign(\sum_{k=1}^K\alpha_kG_k(x)) f(x)=sign(k=1∑KαkGk(x))
对于Adaboost多元分类算法,其实原理和二元分类类似,最主要区别在弱分类器的系数上。比如Adaboost SAMME算法,它的弱分类器的系数
α
k
=
1
2
l
o
g
1
−
e
k
e
k
+
l
o
g
(
R
−
1
)
,
其
中
R
为
类
别
数
。
\alpha_k = \frac{1}{2}log\frac{1-e_k}{e_k}+log(R-1),其中R为类别数。
αk=21logek1−ek+log(R−1),其中R为类别数。
这里我们对AdaBoost回归问题算法流程做一个总结。AdaBoost回归算法变种很多,下面的算法为Adaboost R2回归算法过程。
为了防止Adaboost过拟合,我们通常也会加入正则化项,这个正则化项我们通常称为步长(learning rate)。定义为
v
v
v,对于前面的弱学习器的迭代
f
k
(
x
)
=
f
k
−
1
(
x
)
+
α
k
G
k
(
x
)
f_k(x) = f_{k-1}(x)+\alpha_kG_k(x)
fk(x)=fk−1(x)+αkGk(x)
加上了正则化项,则有
f
k
(
x
)
=
f
k
−
1
(
x
)
+
v
α
k
G
k
(
x
)
,
0
<
ν
≤
1
f_k(x) = f_{k-1}(x)+v\alpha_kG_k(x),0<ν≤1
fk(x)=fk−1(x)+vαkGk(x),0<ν≤1
对于同样的训练集学习效果,较小的ν意味着我们需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。