本文结构:
- 基本流程
- 有放回抽样的好处
- Bagging 特点
- sklearn 中 Bagging 使用
- Bagging 和 Boosting 的区别
bagging:bootstrap aggregating 的缩写。
是一种并行式集成学习方法,可用于二分类,多分类,回归等任务。
基本流程:
- 对一个包含 m 个样本的数据集,有放回地进行 m 次随机采样,这样得到具有 m 个样本的采样集。
- 取 T 个这样的采样集。
- 每个采样集训练一个基学习器。
- 结合:分类任务,使用简单投票法。回归任务,使用简单平均法。
有放回抽样的好处
这种有放回抽样会有 63.2% 的样本出现在采样集中,而剩下的 36.8% 样本可以作为验证集对模型的泛化性能进行包外估计。
当基学习器是决策树时,可以用包外样本来辅助剪枝,
还可以用于估计决策树中各结点的后验概率来辅助对零训练样本结点的处理。
基学习器是神经网络时,用包外样本来辅助早期停止来减小过拟合。
Bagging 特点
Bagging 主要关注降低方差,是要降低过拟合,而不会降低偏差,因此最好不要用高偏差的模型。
在不剪枝决策树,神经网络等易受样本扰动的学习器上效用更为明显。例如当基学习器是决策树时,Bagging 是并行的生成多个决策树,此时可以不做剪枝,这样每个都是强学习器,就会有过拟合的问题,但是多个学习器组合在一起,可以降低过拟合。
scikit-learn 中 Bagging 使用例子:
1 from sklearn.ensemble import BaggingClassifier
2 from sklearn.neighbors import KNeighborsClassifier
3 model=BaggingClassifier(KNeighborsClassifier(), max_samples=0.5,max_features=0.5)
网友评论