集成学习方法分为两大类:
1)基于boost的方法:
基本原理就是利用一系列弱学习器组成一个强学习器。这些弱学习按顺序依次训练得到。
这个方法是首先给每个样本赋一个权值,这个权值被利用到损失函数中。然后训练第一个弱学习器,完成训练之后,根据这个弱学习器在训练集的上的表现,更新样本权值,具体来说就是预测错误的样本被赋予更大的权值,预测正确的值被赋予更小的权值,然后继续训练第二个弱学习器。这样训练N个弱学习器后,将这个N个弱学习器加权求和,作为最终的强学习器。这个N个弱学习器的权重完全根据他们自己的性能确定,性能越好权重越大。
比较典型的就是adaboost算法。此算法要点就是,样本权重如何更新,以及弱基学习器的权重如何求。实际上,adaboost算法是前向分步算法的特例,在前向分步算法的损失函数为指数损失函数时,可以推导出adaboost算法中弱基学习器的权重计算公式,以及样本权重的更新规则。
假设已经训练好了
m
−
1
m-1
m−1个基分类器
G
1
(
x
)
,
.
.
.
,
G
m
−
1
(
x
)
{G_{1}(x),..., G_{m-1}(x)}
G1(x),...,Gm−1(x),因为前面
m
−
1
m-1
m−1个弱基分类器的权重分别为
{
α
1
,
.
.
.
,
α
m
−
1
}
\{\alpha_1,...,\alpha_{m-1}\}
{α1,...,αm−1},且
f
m
−
1
=
∑
i
=
1
m
−
1
α
i
G
i
(
x
)
f_{m-1}=\sum\limits_{i=1}^{m-1}\alpha_iG_{i}(x)
fm−1=i=1∑m−1αiGi(x),
或者
f
m
−
1
=
f
m
−
2
+
α
m
−
1
G
m
−
1
(
x
)
,
f
0
=
0
f_{m-1}=f_{m-2}+\alpha_{m-1}G_{m-1}(x), f_0=0
fm−1=fm−2+αm−1Gm−1(x),f0=0。
指数损失函数
L
(
α
m
,
G
m
(
x
)
)
=
∑
i
=
1
N
e
x
p
(
−
y
i
f
m
(
x
i
)
)
=
∑
i
=
1
N
e
x
p
(
−
y
i
(
f
m
−
1
(
x
i
)
+
α
m
G
m
(
x
i
)
)
)
=
∑
i
=
1
N
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
L(\alpha_m,G_m(x)) \\=\sum\limits_{i=1}^Nexp(-y_if_m(x_i)) \\=\sum\limits_{i=1}^Nexp(-y_i(f_{m-1}(x_i)+\alpha_mG_m(x_i))) \\=\sum\limits_{i=1}^Nexp(-y_if_{m-1}(x_i))exp(-y_i\alpha_mG_m(x_i))
L(αm,Gm(x))=i=1∑Nexp(−yifm(xi))=i=1∑Nexp(−yi(fm−1(xi)+αmGm(xi)))=i=1∑Nexp(−yifm−1(xi))exp(−yiαmGm(xi))
因为
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
exp(-y_if_{m-1}(x_i))
exp(−yifm−1(xi))是常数,记为
w
‾
m
,
i
=
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
\overline w_{m,i}=exp(-y_if_{m-1}(x_i))
wm,i=exp(−yifm−1(xi))。
(此处可看出,在已知前m-1个分类器以及其系数的情况下,如果求
G
m
(
x
)
G_m(x)
Gm(x)使得整体最优,相当于最小化
G
m
(
x
)
G_m(x)
Gm(x)的加权损失函数,其未归一化权值为
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
exp(-y_if_{m-1}(x_i))
exp(−yifm−1(xi))。)
指示函数:
I
(
z
)
=
{
1
,
z
为
真
0
,
z
为
假
\mathbb{I}(z)=\left\{ \begin{array}{rcl} 1, & z为真\\ 0, & z为假 \end{array} \right.
I(z)={1,0,z为真z为假
a
r
g
min
α
m
L
(
α
m
,
G
m
(
x
)
)
=
a
r
g
min
α
m
∑
i
=
1
N
w
‾
m
,
i
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
=
a
r
g
min
α
m
∑
i
=
1
N
w
‾
m
,
i
(
e
x
p
(
−
α
m
)
I
(
y
i
=
G
m
(
x
i
)
)
+
e
x
p
(
α
m
)
I
(
y
i
≠
G
m
(
x
i
)
)
=
a
r
g
min
α
m
∑
i
=
1
N
w
‾
m
,
i
(
e
x
p
(
−
α
m
)
(
1
−
I
(
y
i
≠
G
m
(
x
i
)
)
)
+
e
x
p
(
α
m
)
I
(
y
i
≠
G
m
(
x
i
)
)
arg\min\limits_{\alpha_m} L(\alpha_m,G_m(x)) \\=arg\min\limits_{\alpha_m}\sum\limits_{i=1}^N\overline w_{m,i}exp(-y_i\alpha_mG_m(x_i)) \\=arg\min\limits_{\alpha_m}\sum\limits_{i=1}^N\overline w_{m,i}(exp(-\alpha_m)\mathbb{I}(y_i=G_m(x_i))+exp(\alpha_m)\mathbb{I}(y_i\neq G_m(x_i)) \\=arg\min\limits_{\alpha_m}\sum\limits_{i=1}^N\overline w_{m,i}(exp(-\alpha_m)(1-\mathbb{I}(y_i\neq G_m(x_i)))+exp(\alpha_m)\mathbb{I}(y_i\neq G_m(x_i))
argαmminL(αm,Gm(x))=argαmmini=1∑Nwm,iexp(−yiαmGm(xi))=argαmmini=1∑Nwm,i(exp(−αm)I(yi=Gm(xi))+exp(αm)I(yi=Gm(xi))=argαmmini=1∑Nwm,i(exp(−αm)(1−I(yi=Gm(xi)))+exp(αm)I(yi=Gm(xi))
令
∂
L
∂
α
m
=
0
\frac{\partial L}{\partial \alpha_m}=0
∂αm∂L=0
则:
α
m
=
1
2
l
n
∑
i
=
1
N
w
‾
m
,
i
−
∑
i
=
1
N
w
‾
m
,
i
I
(
y
i
≠
G
m
(
x
i
)
)
∑
i
=
1
N
w
‾
m
,
i
I
(
y
i
≠
G
m
(
x
i
)
)
\alpha_m=\frac{1}{2}ln\frac{\sum\limits_{i=1}^{N}\overline w_{m,i}-\sum\limits_{i=1}^{N}\overline w_{m,i}\mathbb{I}(y_i\neq G_m(x_i))}{\sum\limits_{i=1}^{N}\overline w_{m,i}\mathbb{I}(y_i\neq G_m(x_i))}
αm=21lni=1∑Nwm,iI(yi=Gm(xi))i=1∑Nwm,i−i=1∑Nwm,iI(yi=Gm(xi))
因为adaboost算法加权错误率为:
ϵ
m
=
∑
i
=
1
N
w
‾
m
,
i
I
(
y
i
≠
G
m
(
x
i
)
)
∑
i
=
1
N
w
‾
m
,
i
\epsilon_m=\frac{\sum\limits_{i=1}^{N}\overline w_{m,i}\mathbb{I}(y_i\neq G_m(x_i))}{\sum\limits_{i=1}^{N}\overline w_{m,i}}
ϵm=i=1∑Nwm,ii=1∑Nwm,iI(yi=Gm(xi))
所以:
α
m
=
1
2
l
n
1
−
ϵ
m
ϵ
m
\alpha_m=\frac{1}{2}ln\frac{1-\epsilon_m}{\epsilon_m}
αm=21lnϵm1−ϵm
也就是说当前的弱基分类器的权重和且只和它的性能有关。
然后我们考虑如何更新样本权重:
a
r
g
min
G
m
(
x
)
L
(
α
m
,
G
m
(
x
)
)
=
a
r
g
min
G
m
(
x
)
∑
i
=
1
N
w
‾
m
,
i
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
=
a
r
g
min
G
m
(
x
)
∑
i
=
1
N
w
‾
m
,
i
(
e
x
p
(
−
α
m
)
(
1
−
I
(
y
i
≠
G
m
(
x
i
)
)
)
+
e
x
p
(
α
m
)
I
(
y
i
≠
G
m
(
x
i
)
)
=
a
r
g
min
G
m
(
x
)
∑
i
=
1
N
w
‾
m
,
i
(
e
x
p
(
α
m
)
−
e
x
p
(
−
α
m
)
)
I
(
y
i
≠
G
m
(
x
i
)
)
=
a
r
g
min
G
m
(
x
)
∑
i
=
1
N
w
‾
m
,
i
I
(
y
i
≠
G
m
(
x
i
)
)
=
a
r
g
min
G
m
(
x
)
∑
i
=
1
N
w
‾
m
,
i
I
(
y
i
≠
G
m
(
x
i
)
)
∑
i
=
1
N
w
‾
m
,
i
=
a
r
g
min
G
m
(
x
)
∑
i
=
1
N
w
m
,
i
I
(
y
i
≠
G
m
(
x
i
)
)
arg\min\limits_{G_m(x)} L(\alpha_m,G_m(x)) \\=arg\min\limits_{G_m(x)}\sum\limits_{i=1}^N\overline w_{m,i}exp(-y_i\alpha_mG_m(x_i)) \\=arg\min\limits_{G_m(x)}\sum\limits_{i=1}^N\overline w_{m,i}(exp(-\alpha_m)(1-\mathbb{I}(y_i\neq G_m(x_i)))+exp(\alpha_m)\mathbb{I}(y_i\neq G_m(x_i)) \\=arg\min\limits_{G_m(x)}\sum\limits_{i=1}^N\overline w_{m,i}(exp(\alpha_m)-exp(-\alpha_m))\mathbb{I}(y_i\neq G_m(x_i)) \\=arg\min\limits_{G_m(x)}\sum\limits_{i=1}^N\overline w_{m,i}\mathbb{I}(y_i\neq G_m(x_i)) \\=arg\min\limits_{G_m(x)}\frac{\sum\limits_{i=1}^N\overline w_{m,i}\mathbb{I}(y_i\neq G_m(x_i))}{\sum\limits_{i=1}^N\overline w_{m,i}} \\=arg\min\limits_{G_m(x)}\sum\limits_{i=1}^N w_{m,i}\mathbb{I}(y_i\neq G_m(x_i))
argGm(x)minL(αm,Gm(x))=argGm(x)mini=1∑Nwm,iexp(−yiαmGm(xi))=argGm(x)mini=1∑Nwm,i(exp(−αm)(1−I(yi=Gm(xi)))+exp(αm)I(yi=Gm(xi))=argGm(x)mini=1∑Nwm,i(exp(αm)−exp(−αm))I(yi=Gm(xi))=argGm(x)mini=1∑Nwm,iI(yi=Gm(xi))=argGm(x)mini=1∑Nwm,ii=1∑Nwm,iI(yi=Gm(xi))=argGm(x)mini=1∑Nwm,iI(yi=Gm(xi))
再一次可以清晰看到,在已知前m-1个分类器以及其系数的情况下(
α
m
\alpha_m
αm为正的未知系数,不影响结果),如果求
G
m
(
x
)
G_m(x)
Gm(x)使得整体最优,等价于最小化
G
m
(
x
)
G_m(x)
Gm(x)的加权损失函数,其未归一化权值为
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
exp(-y_if_{m-1}(x_i))
exp(−yifm−1(xi)),归一化权重为
w
m
,
i
w_{m,i}
wm,i。
并且有效损失函数权重为:
w
m
,
i
=
w
‾
m
,
i
∑
i
=
1
N
w
‾
m
,
i
w_{m,i}=\frac{\overline w_{m,i}}{\sum\limits_{i=1}^N\overline w_{m,i}}
wm,i=i=1∑Nwm,iwm,i
且可以推导出权重更新公式:
因为
w
‾
m
,
i
=
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
\overline w_{m,i}=exp(-y_if_{m-1}(x_i))
wm,i=exp(−yifm−1(xi))
则
w
‾
m
+
1
,
i
=
e
x
p
(
−
y
i
f
m
(
x
i
)
)
=
e
x
p
(
−
y
i
(
f
m
−
1
+
α
m
G
m
(
x
i
)
)
)
=
e
x
p
(
−
y
i
(
f
m
−
1
)
)
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
=
w
‾
m
,
i
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
\overline w_{m+1,i}=exp(-y_if_{m}(x_i)) \\=exp(-y_i(f_{m-1}+\alpha_mG_m(x_i))) \\=exp(-y_i(f_{m-1}))exp(-y_i\alpha_mG_m(x_i)) \\=\overline w_{m,i}exp(-y_i\alpha_mG_m(x_i)
wm+1,i=exp(−yifm(xi))=exp(−yi(fm−1+αmGm(xi)))=exp(−yi(fm−1))exp(−yiαmGm(xi))=wm,iexp(−yiαmGm(xi)
则新权重为:
w
‾
m
+
1
,
i
′
=
w
m
,
i
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
\overline w_{m+1,i}'=w_{m,i}exp(-y_i\alpha_mG_m(x_i))
wm+1,i′=wm,iexp(−yiαmGm(xi))
归一化后有效权重为:
w
m
+
1
,
i
=
w
‾
m
+
1
,
i
′
∑
i
=
1
N
w
‾
m
+
1
,
i
′
w_{m+1,i}=\frac{\overline w_{m+1,i}'}{\sum\limits_{i=1}^N\overline w_{m+1,i}'}
wm+1,i=i=1∑Nwm+1,i′wm+1,i′
每次基于旧的有效权重生成新的权重后,新的权重都需要归一化来成为有效权重。
2)Bagging方法
Bagging相对简单,可以并行得到多个弱基分类器,然后投票或者其他方法融合。
需要注意的是,Bagging方法中,为保证分类器的差异性,需要保证训练集的差异性。一般才有有放回采样,也就是在N个样本的数据集中有放回采样M个样本作为第一个基分类器的样本,然后同样的方法构造其它基分类器的训练集。