基本信息
- 原书名:Mastering Machine Learning with Spark 2.x
- 作者: (美)亚历克斯·特列斯(Alex Tellez) (美)马克斯·帕普拉(Max Pumperla) (美)迈克尔·马洛赫拉瓦(Michal Malohlava)
- 译者: 邵赛赛 阳卫清 唐明洁
- 丛书名: 大数据技术丛书
- 出版社:机械工业出版社
- ISBN:9787111598466
- 上架时间:2018-10-29
- 出版日期:2018 年6月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 人工智能 > 综合

编辑推荐
机器学习的目的是建立从数据中习得的系统。能够理解复杂数据中的趋势和模式对于成功至关重要,这是当代充满挑战的市场中取得增长的关键战略之一。随着机器学习的飞速发展,开发人员正在热衷于找出如何让他们的Spark应用更为智能化的手段。
本书赋予你将数据转化为可操作知识的途径,通过大量的实践案例,讲解机器学习的高级应用和Spark在各种企业级系统中的应用,帮助你掌握使用Spark进行分析和实现机器学习算法。
通过阅读本书,你将学到:
使用Spark流在线聚合推文
运行PageRank算法计算用户影响力
使用Spark执行复杂的DataFrame操作
定义Spark流水线以组合各个数据转换
利用生成的模型进行离线/在线预测
将学习从集成方法迁移到更为简单的神经网络
了解基本的图属性和重要的图操作
使用GraphFrame、DataFrame在图上的扩展,以优雅的查询语言学习图结构
使用K-means算法聚类电影评论数据集
内容简介
计算机书籍
本书作为Spark MLlib的书籍从实践的角度介绍了各种机器学习算法,其中第2章和第3章介绍分类算法,第4~6章介绍自然语言处理的相关技术,第7章介绍图算法相关的知识,第8章则集合前面所有的算法介绍一个端到端机器学习处理实例。与其他同类书籍相比,本书并没有对算法原理进行详细的介绍,同时也没有涉及过多的Spark和Spark MLlib实现/API。本书每一章节对于每一种算法都辅以一个具体而实际的例子,从利用二分类算法来分类希格斯波色子到使用自然语言处理技术来区分电影评论中的正负面情绪。更为难能可贵的是本书同时介绍了模型部署和模型评分的实际场景和问题,而不仅仅局限于模型训练。最后本书以Lending Club借贷预测的实际例子来展示从数据整理到建模再到部署的整个过程。
作译者
Alex Tellez是一名终身的数据黑客/爱好者,对数据科学及其在商业问题上的应用充满了激情。他在多个行业拥有丰富的经验,包括银行业、医疗保健、在线约会、人力资源和在线游戏。Alex还在各种人工智能/机器学习会议上进行过多次演讲,同时也在大学讲授关于神经网络的课程。闲暇时间,Alex喜欢和家人在一起,骑自行车,并利用机器学习来满足他对法国葡萄酒的好奇心!
首先,我要感谢Michal与我一起编写本书。同样作为资深的机器学习(Machine Learning,以下简称ML)爱好者、自行车爱好者、跑者和父亲,在一年来共同努力的过程中,我们对彼此有了更深的了解。换句话说,没有Michal的支持和鼓励,本书是不可能完成的。
接下来,我要感谢我的妈妈、爸爸和哥哥Andres,从我出生第一天直到现在的每一步,你们都陪伴在我的周围。毋庸置疑,我的哥哥仍会是我的英雄,是我永远仰望的人,是我的指路灯。当然,还要感谢我美丽的妻子Denise和女儿Miya,在每个夜晚和周末给予我写作上的关心和支持。我无法描述你们对我而言意味着多少,你们是我保持持续创作的灵感和动力。对我的女儿Miya,我的希望是,有一天当你拿起这本书时,会意识到你的老爸并不像看起来那么傻。
最后,我也要感谢你——读者,感谢你对这个令人兴奋的领域以及难以置信的技术感兴趣。无论你是一名经验丰富的ML专家,还是希望立足的新人,你都会找到适合自己的内容,我希望你能像Michal和我一样,从本书中获得很多。
Max Pumperla是一名数据科学家和工程师,专注于深度学习及其应用。他目前在Skymind担任深度学习工程师,并且是aetros.com的联合创始人。Max是几个Python软件包的作者和维护者,包括elephas,一个使用Spark的分布式深度学习库。他的开源足迹包括对许多流行的机器学习库的贡献,如keras、deeplearning4j和hyperopt。他拥有汉堡大学的代数几何博士学位。
Michal Malohlava是Sparkling Water的创建者、极客和开发者,Java、Linux、编程语言爱好者,拥有10年以上的软件开发经验。他于2012年在布拉格的查尔斯大学获得博士学位,并在普渡大学攻读博士后。
在学习期间,他关注利用模型驱动方法和领域特定语言构建分布式、嵌入式、实时和模块化系统,参与了各种系统的设计和开发,包括SOFA和分形组件系统以及jPapabench控制系统。
现在,他的主要兴趣是大数据计算。他参与了高级大数据计算平台H2O的开发,并将其嵌入到Spark引擎中作为Sparkling Water项目发布。
我要感谢我的妻子Claire,感谢她对于我的爱和鼓励。
目录
关于作者
前言
第1章 大规模机器学习和Spark入门 1
1.1 数据科学 2
1.2 数据科学家:21世纪最炫酷的职业 2
1.2.1 数据科学家的一天 3
1.2.2 大数据处理 4
1.2.3 分布式环境下的机器学习算法 4
1.2.4 将数据拆分到多台机器 6
1.2.5 从Hadoop MapReduce到Spark 6
1.2.6 什么是Databricks 7
1.2.7 Spark包含的内容 8
1.3 H2O.ai简介 8
1.4 H2O和Spark MLlib的区别 10
1.5 数据整理 10
1.6 数据科学:一个迭代过程 11
1.7 小结 11
第2章 探索暗物质:希格斯玻色子 12
2.1 Ⅰ型错误与Ⅱ型错误 12
译者序
在这样的背景下,传统的基于单机、小数据的机器学习算法库变得不再合适,人们迫切希望有一个分布式的、可伸缩的、高性能的机器学习库来处理海量数据。为此大量基于分布式框架的机器学习库应运而生,而Spark MLlib作为其中最为耀眼的明星受到了极大的关注。为什么Spark MLlib会受到如此青睐呢?
首先,Spark MLlib是基于Spark通用计算引擎所构建的,Spark计算引擎因其更为优异的架构和实现而拥有很好的性能。因此构建在其上的MLlib也具备很好的性能表现。
其次,Spark MLlib充分吸收和借鉴了当今主流的机器学习API的设计,它的API与Python scikit-learn极为相似,因此传统的机器学习工程师可以极低的学习成本将已有经验迁移到Spark上来。
再者,Spark提供了一个完整的生态圈,囊括了各种类型的计算模式。用户可以轻松地使用Spark来实现完整的数据处理和机器学习流水线,而无须切换不同的系统。
当然,Spark和Spark MLlib还有很多其他的优点,这就是它为什么能够成为现今主流大数据机器学习库的原因所在。
本书作为Spark MLlib的书籍从实践的角度介绍了各种机器学习算法,其中第2章和第3章介绍了分类算法,第4~6章介绍了自然语言处理的相关技术,第7章介绍了图算法相关的知识,第8章则集合了前面所有的算法介绍了一个端到端的机器学习处理实例。
本书与其他常见机器学习书籍的最大不同点在于,本书并没有对算法原理进行详细的介绍,同时也没有过多涉及Spark和Spark MLlib实现/API。本书希望读者对算法基础和Spark使用有一个基本的了解。相反,本书每一章对于每一种算法都辅以一个具体而实际的例子,从利用二分类算法来分类希格斯玻色子到使用自然语言处理技术来区分电影评论中的正负面情绪。更为难能可贵的是1本书同时介绍了模型部署和模型评分的实际场景和问题,而不仅仅局限于模型训练。最后本书以Lending Club借贷预测的实际例子来展示从数据整理到建模再到部署的整个过程。
算法和技术的更新日新月异,译者并不期待书中所介绍的东西不会过时,但是译者更希望读者能从本书中了解到数据科学和机器学习的方法论,这将会更有帮助。
本书由本人和两位同事阳卫清、唐明洁共同翻译而成。在翻译期间译者付出了大量的时间和精力。同时,感谢家人的支持和帮助,没有她们在背后的支持,本书的翻译是不可能实现的。
译者水平有限,翻译之中难免疏漏,有任何的意见和建议请及时反馈,以便译者及时修正和改进。为此译者在GitHub上创建了一个网页https://github.com/jerryshao/Mastering-Machine-Learning-with-Spark,读者可以通过创建issues来对任何问题进行反馈。
邵赛赛
2018年1月12日于上海
前言
慢慢地,我们开始探索Spark生态系统的各个角落,追随它的演进。对我们来说,最关键的是需要一个强大的机器学习库,能够提供像R和Python库那样的功能。这对我们来说比较容易,因为当时我们正积极参与H2O机器学习库和它的一个叫作Sparkling Water的分支的开发,这个分支能够让Spark应用程序使用H2O库。然而,模型训练只是机器学习的冰山一角,我们还不得不弄清楚如何把Sparkling Water连接到Spark RDD、DataFrame以及DataSet,怎样用Spark连接和读取不同的数据源,以及怎样把模型导出到其他的应用程序加以使用。
在这个过程中,Spark自身也在演进。Spark最初是一个纯粹的Scala项目,后来开始提供Python接口,之后提供R接口。Spark API也在这个漫长的过程中从提供底层的RDD接口发展到高阶的DataSet接口(一组类SQL的接口)。而且,Spark也采纳了源自Python scikit-learn库的机器学习流水线的概念。所有这些改进使得Spark成为一个非常好的数据转换和处理工具。
基于这些经验,我们决定撰写本书,同世界分享我们得到的知识,意图很简单:用示例来展示建立Spark机器学习应用的方方面面,不仅展示如何使用最新的Spark功能,而且也展示Spark底层接口。我们所发现的关于Spark、机器学习应用开发流程和源代码组织方面很多小的技巧和捷径也会在本书中分享给读者,让大家免于犯同样的错误。
本书的示例使用Scala作为主要的实现语言。使用Python还是Scala是一个艰难的抉择,但是最终Scala胜出。使用Scala有两个主要的原因:它提供了最为完整的Spark接口,而且得益于JVM带来的性能优势,在生产环境中部署的大部分应用都使用Scala。最后,本书的示例源代码都可以在网上下载。
希望你能够享受本书带来的阅读乐趣,并且希望它能够帮助你遨游Spark的世界,帮助你开发机器学习应用。
本书主要内容
第1章带领读者进入机器学习和大数据的世界,介绍它们的历史,以及包括Apache Spark和H2O在内的当代工具。
第2章专注于二项模型的训练和评估。
第3章尝试根据健身房中人体传感器所收集的数据推测人的活动。
第4章介绍使用Spark处理自然语言问题,展示其对电影评论进行情感分析的能力。
第5章详细讨论了当代自然语言处理技术。
第6章介绍频繁模式挖掘的基础知识,Spark MLlib中相关的三个算法,以及把算法部署为Spark Streaming应用。
第7章介绍图和图分析的基本概念,解释Spark GraphX的核心功能,以及一些图算法,如PageRank。
第8章把之前章节介绍的技巧组合为一个完整的示例,包括数据处理、模型搜索和训练,以及把模型部署为一个Spark Streaming应用。
所需的环境
本书提供的代码示例基于Apache Spark 2.1及Scala API,使用Sparkling Water库来访问H2O机器学习库。在每一章中,我们会展示如何使用spark-shell启动Spark,以及如何下载运行代码所需要的数据。
简而言之,运行本书提供的代码所需的基础环境包括:
Java 8
Spark 2.1
媒体评论
本书赋予你将数据转化为可操作知识的途径,通过大量的实践案例,讲解机器学习的高级应用和Spark在各种企业级系统中的应用,帮助你掌握使用Spark进行分析和实现机器学习算法。
通过阅读本书,你将学到:
·使用Spark流在线聚合推文
·运行PageRank算法计算用户影响力
·使用Spark执行复杂的DataFrame操作
·定义Spark流水线以组合各个数据转换
·利用生成的模型进行离线/在线预测
·将学习从集成方法迁移到更为简单的神经网络
·了解基本的图属性和重要的图操作
·使用GraphFrame、DataFrame在图上的扩展,以优雅的查询语言学习图结构
·使用K-means算法聚类电影评论数据集