与投票法不同的是,Bagging不仅仅集成模型最后的预测结果,同时采用一定策略来影响基模型训练,保证基模型可以服从一定的假设。希望各个模型之间具有较大的差异性,而在实际操作中的模型却往往是同质的,因此一个简单的思路是通过不同的采样增加模型的差异性。
Bagging的核心在于自助采样(bootstrap)这一概念,即有放回的从数据集中进行采样,也就是说,同样的一个样本可能被多次进行采样。统计学上的重采样。
Bagging的基本流程:首先我们随机取出一个样本放入采样集合中,再把这个样本放回初始数据集,重复N次采样,最终我们可以获得一个大小为N的样本集合。同样的方法, 我们可以采样出X个含N个样本的采样集合,然后基于每个采样集合训练出一个基学习器,再将这些基学习器进行结合。其中我们可以引出一个重要概念OOB,中文名字叫做袋外误差,这个也是我们衡量学习器好坏的重要标准。
from numpy import mean
from numpy import std
from sklearn.datasets import make_classification
from sklearn.mod