集成算法(Bagging,随机森林)

297 阅读4分钟
引言(关于集成学习)
集成算法包括很多种包括Bagging,随机森林,Boosting 以及其他更加高效的集成算法。在这篇博客上只介绍Bagging算法及随机森林,Boosting提升算法及其他高效的算法在下一篇详细讲解。
集成算法就是通过构建多个学习器来完成学习任务,是由多个基学习器或者是个体学习器来完成的。它可以是由决策树,神经网络等多种基学习算法组成。就像是投票表决答案一样,多数人的参与总会比一个人的观点更加准确。集成学习通过多个学习器进行结合,可以获得比单一学习器显著优越的泛化性能。而且集成学习一般都是以弱学习器集成来得到一个强的学习器获得更好地性能。
假设集成通过简单的投票方法结合T个基分类器,如果其中有半数基分类器正确,则集成分类就正确:


假设基分类器错误率相互独立 ,由Hoeffding不等式可知,集成的错误率为:

可以看出随着集成中个体分类器数目T的的增加集成的错误率将指数级下降最终趋向于零。前提是有一个关键假设:基学习器的误差相互独立。 我们所要选择的基学习器就是要选择那些好而不同个体学习器,如何去选择他们就是集成学习的核心内容。

Bagging(bootstrap aggregation)
Bootstraping的名称来自于成语 ‘’pull up by your own bootstraps‘’, 意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法。Bootstrap的本意是指高靴子后面的悬挂物,小环,是穿鞋子时用手向上拉的工具。意思是不可能的事情后来意思发生了转变,隐喻 ‘’不需要外界帮助,仅依靠自身力量让自己变得更好‘’。

Bagging策略
对数据进行自助采样法,对结果进行简单投票法。 对于给定的包含m个样本的数据集,我们随机选择一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样仍有可能被选中。我们这样选择的样本有的在采样集里面重复出现,有的则从未出现。我们分类任务使用简单投票法;对分类任务使用简单平均法;若分类投票出现相同的票数情况,则随机选择一个。


Bagging 算法

Bagging算法是一种很高效的一种算法,但是也具有一定的局限性,他不能经修改的适用于多分类和回归等任务。

随机森林(Random Forest,简称RF)
随机森林是Bagging的一个扩展变体,RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中映入了随机属性选择。具体来说,传统的决策树在选择划分属性时在当前节点选择一个最优属性;而在RF中对基决策树的每个节点,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。在很多例子中表现功能强大,进一步使泛化性能提升,被称为 ‘代表集成学习技术水平的方法’。


随机森林在Bagging的基础上做了修改
从样本集中用Bootstrap采样选出n个样本;
从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树;
重复以上两个步骤m次,即建立了m棵CART决策树
这m棵CART决策树形成随机森林,通过投票表决结果,决定数据属于哪一类
随机森林、Bagging和决策树的关系
可以使用决策树作为基本分类器
也可以使用SVM,Logistic回归等其他分类器,习惯上,这些分类器组成的 ‘’总分类器‘’,仍然叫做随机森林。
投票机制
简单投票机制
一票否决
少数服从多数
相对多数投票法:如果同时多个标记获得最高票,册随机选择一个

加权投票法
阈值表决
贝叶斯投票机制
学习法
训练数据很多时,我们另一通过另一个学习器来进行结合,模型融合也会用到。具体参考 Stacking

小结
决策树随机森林的代码清晰,逻辑也是比较简单,在胜任分类问题时,往往可以作为对数据分类探索的首要尝试方法,随机森林的集成思想方法也可以用在其他分类器的设计中。
---------------------
作者:丿回到火星去
来源:CSDN
原文:blog.csdn.net/H_hei/artic…
版权声明:本文为博主原创文章,转载请附上博文链接!

更多学习资料可关注:gzitcast