前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >随机森林RandomForest

随机森林RandomForest

作者头像
Coder的技术之路
发布2021-05-14 14:10:23
4640
发布2021-05-14 14:10:23
举报
文章被收录于专栏:Coder的技术之路

曾听人说,几乎每一个搞机器学习的人,都有一个自己特别喜欢的算法。确实如此,像我这种每次被单词都从a开始背到渣渣,就对我首次接触的算法情有独钟。不管什么问题都喜欢从我钟爱的算法开始分析建模。

但没有一种方法是可以完美解决所有问题的,再好的算法都会受到条件和环境的限制。唯独随机森林,在适用性和可用性上都表现出相当不错的效果。

正好,最近在和这个有关的东西,就mark一下。


随机森林是以决策树为基础的,对于决策树的ID3 ,C4.5大家应该都耳熟能详,用信息增益率代替信息增益,解决属性偏向问题等等点就不在赘述,如果以后再有机会研究决策树,应该会重点关注决策树的初始数据降噪,和最终的决策树减枝。可惜伦家还不是很清楚,不然一定在这嘚瑟一下。

随机森林对数据集在行方向上采用放回抽样(bootstraping重复抽样的统计方法)得到训练数据,列方向上采用无放回随机抽样得到特征子集,下图为spark mllib包中随机森林抽样源码:

行列方向上数据的随机性,是使得最终结果有效避免over-fitting的原因之一。

随机森林的最终结果,采取投票方式产生,选择出现次数多的结果作为最终的预测结果:

votes 是一个map,key 存的是预测的结果,对应的value 可以简单的理解为存的是key出现的多少。


spark 的mllib对随机森林有完整的实现,包里的该算法单机模式下很容易实现,但在分布式环境下,需要做很多优化才能实现,主要是大的数据量造成的io消耗会十分巨大,应该资源有限,咱没有涉及到这方面的问题,可以参考ibm社区的随机森林实现一文,提出的数据存储,切分点抽样,逐层训练等几个优化点,有兴趣的同学们可以参考一下。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder的技术之路 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档