简介
多个“弱学习器”,组合产生了最终结果,往往具备比较好的泛化特征
简单分析
考虑二分类问题
y
∈
{
−
1
,
1
}
y \in \{-1,1\}
y∈{−1,1},假设基分类器的错误率为
ϵ
\epsilon
ϵ
p
(
h
i
(
x
)
≠
g
(
x
)
)
=
ϵ
p(h_i(x)\neq g(x))=\epsilon
p(hi(x)=g(x))=ϵ
利用投票法集成
H
(
x
)
=
s
i
g
n
(
∑
t
=
1
T
h
t
(
x
)
)
H(x)=sign(\sum_{t=1}^Th_t(x))
H(x)=sign(t=1∑Tht(x))
错误率:
P
(
H
(
x
)
≠
g
(
x
)
)
=
∑
k
=
0
[
T
/
2
]
(
T
k
)
(
1
−
ϵ
)
k
ϵ
T
−
k
≤
e
x
p
{
−
0.5
T
(
1
−
2
ϵ
)
2
}
P(H(x)\neq g(x))=\sum_{k=0}^{[T/2]}\tbinom{T}{k}(1-\epsilon)^k\epsilon^{T-k}\leq exp\{-0.5T(1-2\epsilon)^2\}
P(H(x)=g(x))=k=0∑[T/2](kT)(1−ϵ)kϵT−k≤exp{−0.5T(1−2ϵ)2}
(根据Hoeffding不等式)
comment:
- ϵ < 0.5 \epsilon<0.5 ϵ<0.5
- T ↑ \uparrow ↑,exp ↓ \downarrow ↓
- 与
h
t
(
x
)
h_t(x)
ht(x)独立性有关
要求:好而不同
提升方法(Boosting)
Adaboost:提高那些前一轮被弱分类器分错的样本的权值,降低正确的(loss function weight)
Adaboost 算法
Adaboost 算法解读
前向分布算法
可加模型
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)
优化损失函数
m
i
n
(
β
m
,
γ
m
)
,
0
≤
m
≤
M
∑
i
L
(
y
i
,
∑
m
=
1
M
β
m
b
(
x
i
,
γ
m
)
)
min_{(\beta_m,\gamma_m),0\leq m \leq M}\sum_iL(y_i,\sum_{m=1}^M\beta_mb(x_i,\gamma_m))
min(βm,γm),0≤m≤Mi∑L(yi,m=1∑Mβmb(xi,γm))
算法
输入 :数据集,损失函数,基函数集
输出:加法模型
f
(
x
)
f(x)
f(x)
step:
- 初始化 f 0 ( x ) = 0 f_0(x)=0 f0(x)=0
- 对
m
=
1
,
⋯
,
M
m=1,\cdots,M
m=1,⋯,M
(a)极小化损失函数
( β m , γ m ) = a r g m i n ∑ i n L ( y i , f m − 1 ( x i ) β m b ( x i , γ m ) ) (\beta_m,\gamma_m)=argmin\sum_i^nL(y_i,f_{m-1}(x_i)\beta_mb(x_i,\gamma_m)) (βm,γm)=argmini∑nL(yi,fm−1(xi)βmb(xi,γm))
(b)更新
f m ( x ) = f m − 1 ( x ) + β m b ( x , γ m ) f_m(x)=f_{m-1}(x)+\beta_mb(x,\gamma_m) fm(x)=fm−1(x)+βmb(x,γm) - 得到加法模型
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)
comment:
将同时求解
m
=
1
,
⋯
,
M
m=1,\cdots,M
m=1,⋯,M的
(
γ
m
,
β
m
)
(\gamma_m,\beta_m)
(γm,βm),转变为逐个求解的问题
前向分布与Adaboost
定理: adaboost是前向分布算法的特例,其中模型是基本模型组成的加法模型,损失函数是指数函数,其中指数函数的形式是
L
(
y
,
f
(
x
)
)
=
e
x
p
{
−
y
f
(
x
)
}
L(y,f(x))=exp\{-yf(x)\}
L(y,f(x))=exp{−yf(x)}
proof:
需要证明
α
m
\alpha_m
αm的计算公式和权重更新公式
假设
m
−
1
m-1
m−1轮迭代已经得到了
f
m
−
1
(
x
)
f_{m-1}(x)
fm−1(x)
第m轮迭代需要得到
α
m
,
G
m
(
x
)
,
f
m
(
x
)
\alpha_m,G_m(x),f_m(x)
αm,Gm(x),fm(x)
(
α
m
,
G
m
(
x
)
)
=
a
r
g
m
i
n
∑
i
n
e
x
p
{
−
y
i
(
f
m
−
1
(
x
)
+
α
G
(
x
)
)
}
=
a
r
g
m
i
n
∑
i
n
w
ˉ
m
i
e
x
p
{
−
y
i
(
α
G
(
x
)
)
}
(\alpha_m,G_m(x))=argmin \sum_{i}^{n} exp\{ -y_i(f_{m-1}(x)+\alpha G(x))\}=argmin \sum_{i}^{n} \bar w_{mi}exp\{ -y_i(\alpha G(x))\}
(αm,Gm(x))=argmin∑inexp{−yi(fm−1(x)+αG(x))}=argmin∑inwˉmiexp{−yi(αG(x))}
w
ˉ
m
i
\bar w_{mi}
wˉmi:没有经过归一化的
w
m
i
w_{mi}
wmi
最优的
G
(
x
)
G(x)
G(x)由下式得到
G
m
∗
=
a
r
g
m
i
n
G
∑
i
n
w
ˉ
m
i
I
(
Y
i
≠
G
(
x
i
)
)
G_m^*=argmin_{G}\sum_{i}^{n} \bar w_{mi} I(Y_i\neq G(x_i))
Gm∗=argminGi∑nwˉmiI(Yi=G(xi))
对
α
\alpha
α求导,即可证,并可证权重更新公式
Adaboost训练误差分析
定理:Adaboost的最终分类器的训练误差边界
1
N
∑
i
I
(
G
(
x
i
)
≠
y
i
)
≤
1
N
∑
i
e
x
p
(
−
y
i
f
(
x
i
)
)
=
∏
m
Z
m
\frac{1}{N}\sum_{i}I(G(x_i)\neq y_i)\leq \frac{1}{N} \sum_iexp(-y_if(x_i))=\prod_mZ_m
N1i∑I(G(xi)=yi)≤N1i∑exp(−yif(xi))=m∏Zm
其
中
Z
m
=
∑
i
w
m
i
e
x
p
(
−
α
m
y
i
G
m
(
x
i
)
)
其中Z_m=\sum_i w_{mi}exp(-\alpha_my_iG_m(x_i))
其中Zm=i∑wmiexp(−αmyiGm(xi))
proof
第一个不等式:
e
x
p
(
−
y
i
f
(
x
i
)
)
>
1
exp(-y_if(x_i))>1
exp(−yif(xi))>1 if
y
i
≠
f
(
x
i
)
y_i\neq f(x_i)
yi=f(xi)
第二个等式证明
w
m
+
1
,
i
=
w
m
,
i
e
x
p
{
−
α
m
y
i
G
m
(
x
i
)
}
Z
m
w_{m+1,i}=\frac{w_{m,i}exp\{-\alpha_m y_i G_m(x_i)\}}{Z_m}
wm+1,i=Zmwm,iexp{−αmyiGm(xi)}
1 N ∑ i e x p ( − y i f ( x i ) ) = 1 N ∑ i ∏ m = 1 e x p ( − α m y i G m ( x i ) ) = w 1 , 1 ∑ i ∏ m = 2 z 1 w 2 , 1 w 1 , 1 e x p ( − α m y i G m ( x i ) ) = ∏ m Z m \frac{1}{N} \sum_iexp(-y_if(x_i))\\=\frac{1}{N} \sum_i \prod_{m=1} exp(-\alpha_m y_i G_m(x_i)) \\=w_{1,1} \sum_i \prod_{m=2} z_1\frac{w_{2,1}}{w_{1,1}} exp(-\alpha_m y_i G_m(x_i))\\=\prod_mZ_m N1∑iexp(−yif(xi))=N1∑i∏m=1exp(−αmyiGm(xi))=w1,1∑i∏m=2z1w1,1w2,1exp(−αmyiGm(xi))=∏mZm
定理:二分类问题的训练误差界
提升树
提升树模型
以决策树为基的提升方法称为提升树,提升树可以表示为决策树的加法模型
f
M
(
x
)
=
∑
m
T
(
x
,
θ
m
)
f_M(x)=\sum_m T(x,\theta_m)
fM(x)=m∑T(x,θm)
对于分类问题,只需要将Adaboost中的所有集分类器设为2分类树
对于回归问题,采用平方误差
L
(
y
,
f
m
−
1
(
x
)
+
T
(
x
,
θ
m
)
)
=
{
y
−
f
m
−
1
(
x
)
−
T
(
x
,
θ
m
)
}
2
L(y,f_{m-1}(x)+T(x,\theta_m))=\{y-f_{m-1}(x)-T(x,\theta_m)\}^2
L(y,fm−1(x)+T(x,θm))={y−fm−1(x)−T(x,θm)}2
梯度提升算法
Bagging 算法
希望个体学习器尽可能的独立
解决方法:多次使用重抽样数据
步骤:
- 对数据进行T次bootstrp重抽样,每次采样M个样本进行训练
- 输出最终结果
分类问题:投票法
回归问题:求平均
注:泛化误差的包外估计(out of bag estimate)
对于每棵树在“包内”(M个训练样本)在“包外”预测,泛化误差可以用“包外”的错误率估计
随机森林(Random Forest)
算法:
- for
b
=
1
,
⋯
,
B
b=1,\cdots,B
b=1,⋯,B
(a)draw a bootstrap sample z ∗ z^* z∗of size N from the training data
(b)grow a tree T b T_b Tb to the bootstrap data by random selecting p 1 p_1 p1 features from p p p variables - output the ensemble trees { T b } b = 1 B \{T_b\}_{b=1}^B {Tb}b=1B,make prediction
评估变量的重要性
方法一:(用训练数据)
对于每一棵树,变量重要性可以用该变量分裂后的评价指标(e.g.基尼指数)的下降来量化
对所有树取平均,可以作为重要性的度量
方法二:(用包外数据)
评价
x
j
x_j
xj的重要性,对包外数据的第
x
j
x_j
xj列进行干扰(随机变换顺序)
计算预测值的降低
所有树取平均