机器学习笔记(8)——集成学习之Bootstrap aggregating(Bagging)装袋算法

时间:2024-03-23 15:29:23

Bootstrap aggregating自举汇聚法

Bagging装袋法

1.概念

是一种在原始数据集上通过有放回抽样重新选出S个新数据集来训练分类器的集成技术。也就是说这些新数据集是允许重复的。

使用训练出来的分类器集合来对新样本进行分类,然后用多数投票或者对输出求均值的方法统计所有分类器的分类结果,结果最高的类别即为最终标签。为了提高模型的方差(variance, 差异性),bagging在训练待组合的各个模型的时候是从训练集合中随机的抽取数据。比如随机森林(random forest)就是多个随机决策树平均组合起来以达到较优分类准确率的模型。

2.算法原理及实现

机器学习笔记(8)——集成学习之Bootstrap aggregating(Bagging)装袋算法

随机采样(bootsrap)就是从我们的训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。如果我们对有m个样本训练集做T次的随机采样,,则由于随机性,T个采样集各不相同。

注意到这和GBDT(梯度提升决策树)的子采样是不同的。GBDT的子采样是无放回采样,而Bagging的子采样是放回采样。

对于一个样本,它在某一次含m个样本的训练集的随机采样中,每次被采集到的概率是1m。不被采集到的概率为11m。如果m次采样都没有被采集中的概率是(11m)m。当m时,(11m)m1e0.368。也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中。

对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。

3.算法流程

输入为样本集D={(x1,y1),(x2,y2),...(xm,ym)},弱学习器算法, 弱分类器迭代次数T。

输出为最终的强分类器f(x)

1)对于t=1,2…,T:

 a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集Dm

 b)用采样集Dm训练第m个弱学习器Gm(x)

2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

机器学习笔记(8)——集成学习之Bootstrap aggregating(Bagging)装袋算法