1. bagging算法
集成学习有两个流派:一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。另一种是
bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合。
Bagging的弱学习器之间的确没有boosting那样的联系,是“随机采样”。
随机采样(bootsrap)就是从训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放
回。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于Bagging算法,一般会随机
采集和训练集样本数一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容
不同。如果我们对有m个样本的训练集做 T 次的随机采样,则由于随机性,T个采样集各不相同。
对于一个样本,它在某一次含 m 个样本的训练集的随机采样中,每次被采集到的概率是 1/m。不
被采集到的概率为 1-1/m。如果 m 次采样都没有被采集中的概率是 [(1-1/m)]^m。当 m→∞时,[(1-
1/m)]^m→1/e ≈"0.368"。也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据
没有被采样集采集中。对于这部分大约36.8%的数据没有被采样到,我们常常称之为袋外数据(Out
Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。
Bagging算法对于弱学习器没有限制,最常用的是决策树和神经网络。
Bagging结合策略:分类问题,通常使用简单投票法,得到最多票数的类别或者类别之一为最终的
模型输出。回归问题,通常使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最
终的模型输出。
Bagging方