Bagging 简述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bagging 简述相关的知识,希望对你有一定的参考价值。

参考技术A

本文结构:

bagging:bootstrap aggregating 的缩写。
是一种并行式集成学习方法,可用于二分类,多分类,回归等任务。

基本流程:

有放回抽样的好处

这种有放回抽样会有 63.2% 的样本出现在采样集中,而剩下的 36.8% 样本可以作为验证集对模型的泛化性能进行包外估计。

当基学习器是决策树时,可以用包外样本来辅助剪枝,
还可以用于估计决策树中各结点的后验概率来辅助对零训练样本结点的处理。

基学习器是神经网络时,用包外样本来辅助早期停止来减小过拟合。

Bagging 特点

Bagging 主要关注降低方差,是要降低过拟合,而不会降低偏差,因此最好不要用高偏差的模型。
在不剪枝决策树,神经网络等易受样本扰动的学习器上效用更为明显。例如当基学习器是决策树时,Bagging 是并行的生成多个决策树,此时可以不做剪枝,这样每个都是强学习器,就会有过拟合的问题,但是多个学习器组合在一起,可以降低过拟合。

scikit-learn 中 Bagging 使用例子:

Bagging 和 Boosting 的区别

学习资料:
《机器学习》
http://f.dataguru.cn/thread-301569-1-1.html
http://scikit-learn.org/stable/modules/ensemble.html#bagging
http://www.cnblogs.com/liuwu265/p/4690486.html
http://www.jianshu.com/p/708dff71df3a

推荐阅读 历史技术博文链接汇总
http://www.jianshu.com/p/28f02bb59fe5
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]

2. 集成学习(Ensemble Learning)Bagging

1. 前言

前面从整体的角度介绍了集成学习算法,集成学习算法分为Bagging、Boosting、Stacking。Bagging的特点是各个弱学习器之间没有依赖关系,Boosting的特点是各个弱学习器之间有依赖关系,Stacking的特点是在多个学习器的基础上再加一个机器学习算法进行预测。

2. Bagging原理

Bagging的原理可以通过下图清楚的看到。

技术分享图片

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

这里还有一个有意思的地方,由于是随机采样,我们的所有样本中,有一些样本会一直没有采样到,这个样本的数量大约是所有样本的36.8%。我们称这部分数据为袋外数据(Out Of Bag,简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。有了OOB我们就不需要重新分离test集合,后面用OOB代替test集合进行验证。这样训练集的采样空间就是整个数据集,这样训练集的数据分布就更加接近真实的数据分布

Bagging的集合策略也比较简单,对于分类问题,使用简单投票法,得到最多票数的类别或者类别之一为最终的模型输出。对于回归问题,使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最终的模型输出。

由于Bagging算法每次都进行采样来训练模型,因此泛化能力很强,对于降低模型的方差很有作用,即降低过拟合程度。当然对于训练集的拟合程度就会差一些,也就是模型的偏倚会大一些

3. Bagging算法流程

本节就对Bagging算法的流程做一个总结。相对于Boosting系列的Adaboost和GBDT,Bagging算法要简单的多。

输入为样本集(D={(x_1,y_1),(x_2,y_2),...(x_m,y_m)}),弱学习器算法, 弱分类器迭代次数T。

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

  1. 对于(t=1,2...,T):
    1. 对训练集进行第t次随机采样,共采集(m)次,得到包含(m)个样本的采样集(D_t)
    2. 用采样集(D_t)训练第(t)个弱学习器(G_t(x))
  2. 如果是分类算法预测,则(T)个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,(T)个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

4. 总结

本文详细的介绍了下Bagging的一些细节,Bagging的思想是比较简单的,但是里面蕴含这巨大的力量,用了Bagging的算法能够有效的减少过拟合的程度,因为弱学习器之间没有依赖关系,所以可以并行训练,大幅度提升训练速度。下文介绍Bagging的优秀算法随机森林(Random Forest)。

(欢迎转载,转载请注明出处。欢迎沟通交流: [email protected]

以上是关于Bagging 简述的主要内容,如果未能解决你的问题,请参考以下文章

改进bagging,成为Boosting!

04-10 Bagging和随机森林

2. 集成学习(Ensemble Learning)Bagging

R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型并评估模型在测试集和训练集上的分类效果(accurayF1偏差Deviance):Bagging算法与随机森林对比

关于Bagging

集成学习Bagging算法Bagging+Pasting随机森林极端随机树集成(Extra-trees)特征重要度包外评估