spark 随机森林算法原理源码分析及案例实战
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Spark 随机森林算法原理、源码分析及案例实战
在IBM Bluemix 云平台上开发并部署您的下一个应用。
开始您的试用
引言Spark 内存计算框架在大数据处理领域内占有举足轻
重的地位,2014 年Spark 风靡IT 界,Twitter 数据显示Spark 已经超越Hadoop、Yarn 等技术,成为大数据处理
领域中最热门的技术,如图1 所示。
2015 年6 月17 日,IBM 宣布它的“百万数据工程师计划”,承诺大力推进Apache Spark 项目,并称该项目为“以数据为主导的,未来十年最为重要的新的开源项目”,计划投入超过3500 名研
究和开发人员在全球十余个实验室开展与Spark 相关的项目,并将为Spark 开源生态系统无偿提供突破性的机器学
习技术——IBM SystemML。
从中不难发现,机器学习技术是IBM 大力支持Spark 的一个重要原因,这是因为
Spark 是基于内存的,而机器学习算法内部实现几乎都需要进行迭代式计算,这使得Spark 特别适用于分布式环境下
的机器学习。
本文将对机器学习领域中经典的分类和回归算法——随机森林(Random Forests)进行介绍。
首先对随机森林算法的核心原理进行介绍,接着介绍其在Spark 上的
实现方式并对其源码进行分析,最后给出一个案例说明随机森林算法在实际项目中的应用。
后续相关内容介绍全部以分
类角度进行,回归预测与分类在算法上并没有太多的差异,本文旨在理解随机森林在Spark 上的实现原理。
图1. Spark 与其它大数据处理工具的活跃程度比较回页首环境
要求
操作系统:Linux,本文采用的Ubuntu 10.04,大家可以根据自己的喜好使用自己擅长的Linux 发行版
Java 与Scala 版本:Scala 2.10.4,Java 1.7
Spark 集群环境(3 台):Hadoop 2.4.1+Spark 1.4.0,Spark 集群搭建方式参见本人博客:
/lovehuangjiaju/article/details/4688397 3
源码阅读与案例实战环境:Intellij IDEA 14.1.4回页首决策树随机森林算法是机器学习、计算机视觉等领域内应用极为广泛的一个算法,它不仅可以用来做分类,也可用来做回归即预测,随机森林机由多个决策树构成,相比于单个决策树算法,它分类、预测效果更好,不容易出现过度拟合的情况。
随机森林算法基于决策树,在正式讲解随机森林算法之前,先来介绍决策树的原理。
决策树是数据挖掘与机器学习领域中一种非常重要的分类器,算法通过训练数据来构建一棵用于分类的树,从而对未知数据进行高效分类。
举个相亲的例子来说明什么是决策树、如何构建一个决策树及如何利用决策树进行分类,某相亲网站通过调查相亲历史数据发现,女
孩在实际相亲时有如下表现:表1. 相亲历史数据表序号
城市拥有房产
婚姻历史(离过婚、单身)
年收入(单位:万元)
见面(是、否)
1
是
单身
12
是
2
否
单身15
是
3
是
离过婚10
是
4
否
单身18
是
5
是
离过婚25
是
6
是
单身
50
是
7
否
离过婚35
是
8
是
离过婚40
是
9
否
单身60
是
10
否
离过婚17
否。