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

引言(关于集成学习)

集成算法包括很多种包括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

小结

决策树随机森林的代码清晰,逻辑也是比较简单,在胜任分类问题时,往往可以作为对数据分类探索的首要尝试方法,随机森林的集成思想方法也可以用在其他分类器的设计中。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏marsggbo

(转载) 浅谈高斯过程回归

  在训练集中,我们有3个点 x_1, x_2, x_3,   以及这3个点对应的结果,f1,f2,f3. (如图) 这三个返回值可以有噪声,也可以没有。我们先...

2161
来自专栏机器之心

从决策树到随机森林:树型算法的原理与实现

选自Github.io 作者:Sadanand Singh 机器之心编译 基于树(Tree based)的学习算法在数据科学竞赛中是相当常见的。这些算法给预测模...

5306
来自专栏Spark学习技巧

【深度学习】③--神经网络细节与训练注意点

1. 权重的初始化 1.1 fine-tuning 神经网络的训练的有两种方式,第一种是自己从头到尾训练一遍;第二种是使用别人训练好的模型,然后根据自己的实际需...

4655
来自专栏大数据文摘

斯坦福CS231N深度学习与计算机视觉第六弹:神经网络结构与神经元激励函数

2296
来自专栏计算机视觉战队

干货——图像分类(下)

在机器学习或者深度学习领域,参数和超参数是一个常见的问题,个人根据经验给出了一个很狭隘的区分这两种参数的方法。

812
来自专栏智能算法

机器学习三人行(系列五)----你不了解的线性模型(附代码)

到目前为止,我们已经将机器学习模型和他们的训练算法大部分视为黑盒子。 如果你经历了前面系列的一些操作,如回归系统、数字图像分类器,甚至从头开始建立一个垃圾邮件分...

37516
来自专栏人工智能头条

敲重点!一文详解解决对抗性样本问题的新方法——L2正则化法

【导读】许多研究已经证明深度神经网络容易受到对抗性样本现象(adversarial example phenomenon)的影响:到目前为止测试的所有模型都可以...

1042
来自专栏企鹅号快讯

从零学习:从Python和R理解和编码神经网络

作者:SUNIL RAY 编译:Bot 编者按:当你面对一个新概念时,你会怎么学习和实践它?是耗费大量时间学习整个理论,掌握背后的算法、数学、假设、局限再亲身实...

36710
来自专栏CreateAMind

如何理解深度学习中的deconvolution networks?

谭旭 https://www.zhihu.com/question/43609045/answer/132235276

1801
来自专栏人工智能头条

KNN(K-近邻算法):靠跟自己关系的远近来做预测的算法

假设你是某影视网站序员中的一员。你们网站的用户热衷于观看《延禧攻略》《如懿传》这类古装宫廷剧,而你们平台有机会花1000万买下《扶摇》的版权。

1364

扫码关注云+社区