Datawhale组队学习第27期:集成学习 本次学习的指导老师萌弟的教学视频 本贴为学习记录帖,有任何问题欢迎随时交流~ 部分内容可能还不完整,后期随着知识积累逐步完善。 开始时间:2021年7月22日 最新更新:2021年7月22日(Task5 Bagging)
一、Bootstrap抽样
1. 简单描述
- 有放回采样(自助采样),如:对给定样本,抽n个样本集合,重复抽m次,可以得到m个参数估计,可以估计总体的方差。
2. 含义
-
设总体
A
A
A服从未知分布
F
F
F,样本
X
=
{
x
1
,
x
2
,
.
.
.
x
n
}
X=\{x_1, x_2,...x_n\}
X={x1?,x2?,...xn?}是
A
A
A的一个样本,而样本
X
X
X服从的抽样分布
F
^
\hat F
F^是
F
F
F的估计。其中,
?
\phi
?是分布
F
F
F的一个数字特征,
ψ
\psi
ψ是统计量
?
^
\hat \phi
?^?的抽样分布的数字特征。 -
目标是用统计量
?
^
=
g
(
X
)
\hat \phi=g(X)
?^?=g(X)去估计
?
\phi
?。采用随机模拟的方法估计
ψ
\psi
ψ,从而得到统计量的数字特征(如用
ψ
=
V
a
r
(
X
ˉ
)
\psi=\sqrt{Var(\bar X)}
ψ=Var(Xˉ)
?去计算统计量
X
ˉ
\bar X
Xˉ的标准误),这种方法就称为bootstrap方法。
3. 步骤
-
从
F
^
\hat F
F^中有放回随机地抽取
B
B
B个样本量为
n
n
n的独立样本
Y
(
b
)
Y^{(b)}
Y(b),
Y
(
b
)
Y^{(b)}
Y(b)称为bootstrap样本,其中
b
=
1
,
.
.
.
,
B
b=1,...,B
b=1,...,B。 -
每个独立样本
Y
(
b
)
Y^{(b)}
Y(b)用常规的估计方法计算
?
^
(
b
)
\hat \phi^{(b)}
?^?(b)去估计得到总体分布
F
F
F的数字特征
?
\phi
?,可以得到
B
B
B个统计量的数字特征。 -
?
^
=
{
?
^
(
1
)
,
.
.
.
,
?
^
(
B
)
}
\hat \phi = \{\hat \phi^{(1)}, ...,\hat \phi^{(B)}\}
?^?={?^?(1),...,?^?(B)}的每个
?
^
(
b
)
\hat \phi^{(b)}
?^?(b)都是
F
^
\hat F
F^下的独立同分布样本,同样可以用常规的估计方法计算
ψ
^
\hat \psi
ψ^?去估计
F
^
\hat F
F^的分布特征
ψ
\psi
ψ。 -
更深入的可以查阅李东风老师的《统计计算》。
二、Bagging的思想
1. Bootstrap的体现
??以服从均匀分布的概率从数据集中重复且有放回地抽取新的样本,对每个样本进行训练得到模型(子模型),得到多个子模型的预测值。
2. Aggregating的体现
3. sklearn中的实现
- 调用库:
sklearn.ensemble.BaggingClassifier 和sklearn.ensemble.BaggingRegressor - 随机森林:
sklearn.ensemble.RandomForestClassifier 和sklearn.ensemble.RandomForestRegressor
三、Bagging的精度分析
1. 推导
-
推导主要参考本篇文章。 -
设定基模型为
f
f
f,通过给定样本
X
X
X进行bootstrap抽样,训练出m个基模型。 -
最终模型是m个基模型的线性组合,记为
F
=
∑
i
=
1
m
r
i
f
i
F = \sum\limits_{i=1}^{m}r_if_i
F=i=1∑m?ri?fi?,其中
r
i
r_i
ri?为第
i
i
i个模型的权重系数 -
f
f
f训练的样本来自总体
X
X
X,可以记
E
(
f
i
)
=
μ
E(f_i)=\mu
E(fi?)=μ和
V
a
r
(
f
i
)
=
σ
2
Var(f_i) = \sigma^2
Var(fi?)=σ2
E
(
F
)
=
E
(
∑
i
=
1
m
r
i
f
i
)
=
∑
i
=
1
m
r
i
E
(
f
i
)
V
a
r
(
F
)
=
V
a
r
(
∑
i
=
1
m
r
i
f
i
)
=
∑
i
=
1
m
V
a
r
(
r
i
f
i
)
+
∑
i
≠
j
m
c
o
v
(
r
i
f
i
,
r
j
f
j
)
=
∑
i
=
1
m
r
i
2
V
a
r
(
f
i
)
+
∑
i
≠
j
m
ρ
i
j
r
i
r
j
V
a
r
(
f
i
)
V
a
r
(
f
j
)
\begin{aligned} E(F) &= E(\sum\limits_{i=1}^{m}r_if_i) \\ &= \sum\limits_{i=1}^{m}r_iE(f_i) \\ Var(F) &= Var(\sum\limits_{i=1}^{m}r_if_i) \\ &= \sum\limits_{i=1}^{m}Var(r_if_i) + \sum\limits_{i \ne j}^{m}cov(r_if_i, r_jf_j) \\ &= \sum\limits_{i=1}^{m}r_i^2Var(f_i) + \sum\limits_{i \ne j}^{m}\rho_{ij}r_ir_j\sqrt{Var(f_i)}\sqrt{Var(f_j)} \\ \end{aligned}
E(F)Var(F)?=E(i=1∑m?ri?fi?)=i=1∑m?ri?E(fi?)=Var(i=1∑m?ri?fi?)=i=1∑m?Var(ri?fi?)+i?=j∑m?cov(ri?fi?,rj?fj?)=i=1∑m?ri2?Var(fi?)+i?=j∑m?ρij?ri?rj?Var(fi?)
?Var(fj?)
?? -
从bootstrap抽样的步骤可以知道,
F
F
F的数字特征可以反应原始数据的数字特征,同时每个
f
i
f_i
fi?所接受的样本都是独立的,因此可以得到:
E
(
F
)
=
μ
∑
i
=
1
m
r
i
V
a
r
(
F
)
=
σ
2
∑
i
=
1
m
r
i
2
\begin{aligned} E(F) &= \mu \sum\limits_{i=1}^{m}r_i \\ Var(F) &= \sigma^2\sum\limits_{i=1}^{m}r_i^2 \end{aligned}
E(F)Var(F)?=μi=1∑m?ri?=σ2i=1∑m?ri2??
2. 基于偏差与方差理论分析
-
根据偏差与方差理论可以知道,测试误差主要由方差
V
a
r
Var
Var和偏差的平方
B
i
a
s
2
Bias^2
Bias2决定的,
V
a
r
(
?
)
Var(\epsilon)
Var(?)是与任务本身有关,不纳入其中考虑。在本模型中,
E
(
F
)
E(F)
E(F)反映
B
i
a
s
Bias
Bias,而
V
a
r
(
F
)
Var(F)
Var(F)反映
V
a
r
Var
Var。
[
E
(
F
)
E
(
f
)
]
2
=
(
∑
i
=
1
m
r
i
)
2
V
a
r
(
F
)
V
a
r
(
f
)
=
∑
i
=
1
m
r
i
2
[
E
(
F
)
?
E
(
f
)
]
2
=
(
1
?
∑
i
=
1
m
r
i
)
2
μ
2
V
a
r
(
F
)
?
V
a
r
(
f
)
=
(
1
?
∑
i
=
1
m
r
i
2
)
σ
2
\begin{aligned} {[\frac{E(F)}{E(f)}]}^2 &= (\sum\limits_{i=1}^{m}r_i)^2 \\ \frac{Var(F)}{Var(f)} &= \sum\limits_{i=1}^{m}r_i^2 \\ {[E(F)-E(f)]}^2 &= (1 - \sum\limits_{i=1}^{m}r_i)^2\mu^2 \\ Var(F)-Var(f) &= (1 - \sum\limits_{i=1}^{m}r_i^2)\sigma^2 \\ \end{aligned}
[E(f)E(F)?]2Var(f)Var(F)?[E(F)?E(f)]2Var(F)?Var(f)?=(i=1∑m?ri?)2=i=1∑m?ri2?=(1?i=1∑m?ri?)2μ2=(1?i=1∑m?ri2?)σ2? -
相对于基模型而言,Bagging模型能够降低模型的方差,同时也有可能增大模型的偏差。而实际上,Bagging模型中的权重系数之和
∑
i
=
1
m
r
i
≈
1
\sum\limits_{i=1}^{m}r_i \approx 1
i=1∑m?ri?≈1,Bagging模型的
B
i
a
s
Bias
Bias会十分接近于基模型的
B
i
a
s
Bias
Bias,因此模型
V
a
r
Var
Var减少的量会大于
B
i
a
s
Bias
Bias增大的量,从而达到减少测试误差(即牺牲偏差来减小测试误差)。
3. 样例
- 假设Bagging模型将每个基模型的权重系数
r
i
r_i
ri?都设为
1
m
\frac{1}{m}
m1?,则有:
E
(
F
)
=
μ
∑
i
=
1
m
1
m
=
μ
V
a
r
(
F
)
=
σ
2
∑
i
=
1
m
1
m
2
=
1
m
σ
2
\begin{aligned} E(F) &= \mu \sum\limits_{i=1}^{m}\frac{1}{m} \\ &= \mu \\ Var(F) &= \sigma^2\sum\limits_{i=1}^{m}\frac{1}{m^2} \\ &= \frac{1}{m}\sigma^2 \end{aligned}
E(F)Var(F)?=μi=1∑m?m1?=μ=σ2i=1∑m?m21?=m1?σ2? - 显然,此时Bagging模型的
B
i
a
s
Bias
Bias取决于基模型的
B
i
a
s
Bias
Bias,而Bagging模型的
V
a
r
Var
Var要远小于基模型的
V
a
r
Var
Var,因此Bagging具有更高的泛化能力。
4. 基模型的选择
- 从上述推导中可以发现,Bagging模型对
B
i
a
s
Bias
Bias改变不明显,这意味在这方面Bagging十分依赖基模型,因此Bagging对基模型选择的是强模型(低
B
i
a
s
Bias
Bias高
V
a
r
Var
Var模型),通过对基模型的线性组合来降低
V
a
r
Var
Var来提高模型的精度。
四、参考资料
- https://github.com/datawhalechina/ensemble-learning
- https://www.bilibili.com/video/BV1Mb4y1o7ck?t=470
- https://www.bilibili.com/video/BV1X64y1m71o?t=2972
- https://zhuanlan.zhihu.com/p/86263786
- https://www.math.pku.edu.cn/teachers/lidf/docs/statcomp/html/_statcompbook/sim-bootstrap.html
|