B a g g i n g Bagging Bagging是并行式集成学习方法最著名的代表,这个名字是由 B o o t s t r a p A G G r e g a t I N G Bootstrap AGGregatING BootstrapAGGregatING而来,顾名思义,该算法由 B o o s t s t r a p Booststrap Booststrap与 A g g r e g a t i n g Aggregating Aggregating两部分组成。
欲得到泛化性能强的集成,集成中的个体学习器应尽可能相互独立,一种可能的做法是对训练样本进行采样,产生若干不同的子集,再从每个数据子集中训练处一个学习器。同时,为了获得更好的集成,每个个体学习器不能太差。如果每次采样出的子集都完全不同,则每个基学习器只用到了一小部分训练数据,甚至不足以进行有效学习,这显然无法确保产生出比较好的基学习器。
B
a
g
g
i
n
g
Bagging
Bagging为解决这个问题,使用自助取样(
B
o
o
t
s
t
r
a
o
i
n
g
Bootstraoing
Bootstraoing)。给定包含
m
m
m个样本的数据集,我们先随机取出一个样本放入采样集中,再将该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过
m
m
m次随机采样操作,我们得到含
m
m
m个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的则从未出现,可以做一个简单的估计,样本在
m
m
m次采样中始终不被采到的概率是
(
1
?
1
m
)
m
{(1-\frac{1}{m})}^m
(1?m1?)m,求极限得到:
lim
?
m
→
∞
(
1
?
1
m
)
m
→
1
e
≈
0.368
\lim_{m \to \infty }{(1-\frac{1}{m} )}^m \to \frac{1}{e} \approx 0.368
m→∞lim?(1?m1?)m→e1?≈0.368
可知,初始训练集中约有
63.2
%
63.2\%
63.2%的样本出现在采样集中。
算法:
设有一个大小为 N N N的训练数据集,每次从该数据集中有放回的选出大小为 M M M的子数据集,一共选 K K K次;
根据这 K K K个子数据集,训练学习出 K K K个模型;
使用这 K K K个模型进行预测,再通过取平均值或者多数分类的方式,得到最后的预测结果。
随机森林简称 R F RF RF,是以决策树为估计器的 B a g g i n g Bagging Bagging算法。
算法:
假设训练集 T T T的大小为 N N N,特征数为 M M M,随机森林的大小为 K K K;
遍历 R F RF RF的大小 K K K次:
从训练集T中有放回抽样的方式,取样 N N N次形成一个新子训练集 D D D;
随机选择 m m m个特征,其中 m < M m<M m<M;
使用新的训练集 D D D和 m m m个特征,学习出一个完整的决策树
得到随机森林。
- 针对很多任务可以产生高准确度的分类器;
- 可以处理大量的输入变量;
- 可以在决定类别时,给出变量的重要性;
- 在建造森林时,可以在内部对于一般化后的误差产生不偏差的估计;
- 包含一个好方法可以估计丢失的资料,并且如果有很大一部分的资料丢失,仍可以维持准确度;
- 对于不平衡的分类资料集来说,可以平衡误差;
- 可被延伸应用在未标记的资料上,这类资料通常是使用非监督式聚类,也可以侦测偏离者和观看资料;
- 学习过程很快速。
- 不可解释性;
- 在噪音较大的任务上会过拟合;
- 在多分类任务中,RF可能无法提高基学习器的准确性。