首页>参考读物>公共基础课>心理生活

Spark机器学习:核心技术与实践
作者 : [美]亚历克斯·特列斯(Alex Tellez) 马克斯·帕普拉(Max Pumperla) 迈克尔·马洛赫拉瓦(Michal Malohlava) 著
译者 : 邵赛赛 阳卫清 唐明洁 译
丛书名 : 大数据技术丛书
出版日期 : 2018-05-18
ISBN : 978-7-111-59846-6
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 241
开本 : 16
原书名 : Mastering Machine Learning with Spark 2.x
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书作为Spark MLlib的书籍从实践的角度介绍了各种机器学习算法,其中第2章和第3章介绍分类算法,第4~6章介绍自然语言处理的相关技术,第7章介绍图算法相关的知识,第8章则集合前面所有的算法介绍一个端到端机器学习处理实例。与其他同类书籍相比,本书并没有对算法原理进行详细的介绍,同时也没有涉及过多的Spark和Spark MLlib实现/API。本书每一章节对于每一种算法都辅以一个具体而实际的例子,从利用二分类算法来分类希格斯波色子到使用自然语言处理技术来区分电影评论中的正负面情绪。更为难能可贵的是本书同时介绍了模型部署和模型评分的实际场景和问题,而不仅仅局限于模型训练。最后本书以Lending Club借贷预测的实际例子来展示从数据整理到建模再到部署的整个过程。

图书特色

以分布式和可扩展的方式处理和分析大数据,包含精心设计的抽取过程;构建和使用回归模型预测航班延误,并编写复杂的Spark流水线。

图书前言

大数据是几年前我们开始探索用Spark进行机器学习时的初衷。我们希望建立的机器学习程序能够充分利用大量数据训练模型,但一开始这并不容易。Spark仍在演进阶段,还没有包含强大的机器学习库,而且我们也在试图弄清楚建立一个机器学习程序到底意味着什么。
慢慢地,我们开始探索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的各种基本库有一些基础的了解。
下载示例代码和彩图
本书的代码包在GitHub(https://GitHub.com/PacktPublishing/Mastering-Machine-Learning-with-Spark-2.x)上也可以找到。来自其他书籍的代码和视频也可以在https://github.com/Pac-ktPublishing/上找到。去看看吧!
本书提供一个PDF文件,它以彩图的格式包含了本书中所使用到的屏幕截图和图表。这些彩图可以帮助读者更好地理解输出中发生的变化。该PDF文件可以从https://www.packtpub.com/sites/default/files/downloads/MasteringMachineLearningwithSpark2.x_ColorImages.pdf下载到。

上架指导

计算机/人工智能/机器学习

封底文字

机器学习的目的是建立从数据中习得的系统。能够理解复杂数据中的趋势和模式对于成功至关重要,这是当代充满挑战的市场中取得增长的关键战略之一。随着机器学习的飞速发展,开发人员正在热衷于找出如何让他们的Spark应用更为智能化的手段。

本书赋予你将数据转化为可操作知识的途径,通过大量的实践案例,讲解机器学习的高级应用和Spark在各种企业级系统中的应用,帮助你掌握使用Spark进行分析和实现机器学习算法。

通过阅读本书,你将学到:
•使用Spark流在线聚合推文
•运行PageRank算法计算用户影响力
•使用Spark执行复杂的DataFrame操作
•定义Spark流水线以组合各个数据转换
•利用生成的模型进行离线/在线预测
•将学习从集成方法迁移到更为简单的神经网络
•了解基本的图属性和重要的图操作
•使用GraphFrame、DataFrame在图上的扩展,以优雅的查询语言学习图结构
•使用K-means算法聚类电影评论数据集

作者简介

[美]亚历克斯·特列斯(Alex Tellez) 马克斯·帕普拉(Max Pumperla) 迈克尔·马洛赫拉瓦(Michal Malohlava) 著:Alex Tellez 是一名终身的数据黑客/爱好者,对数据科学及其在商业问题上的应用充满了激情。他在多个行业拥有丰富的经验,包括银行业、医疗保健、在线约会、人力资源和在线游戏。Alex还在各种人工智能/机器学习会议上进行过多次演讲,同时也在大学讲授关于神经网络的课程。

Max Pumperla 是一名数据科学家和工程师,专注于深度学习及其应用。他目前在Skymind担任深度学习工程师,并且他是aetros.com的联合创始人。Max是几个Python软件包的作者和维护者,包括elephas,一个使用Spark的分布式深度学习库。他的开源足迹包括对许多流行的机器学习库的贡献,如keras、deeplearning4j和hyperopt。

Michal Malohlava 是Sparkling Water的创建者、极客和开发者,Java、Linux、编程语言爱好者,拥有10年以上的软件开发经验。

译者序

近些年来,随着计算力的提升、集群规模的扩大以及大数据基础软件的普及,人们对于海量数据的存储和处理能力得到了极大的提升,大数据的处理要求不再仅限于简单的数据清理、聚合和转换,更希望能从海量数据中发现模式,预测规律。而人工智能、深度学习热潮的兴起,更是把大数据和机器学习推向了更高的高度。
在这样的背景下,传统的基于单机、小数据的机器学习算法库变得不再合适,人们迫切希望有一个分布式的、可伸缩的、高性能的机器学习库来处理海量数据。为此大量基于分布式框架的机器学习库应运而生,而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日于上海

图书目录

译者序
关于作者
前言
第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
2.1.1 寻找希格斯玻色子 13
2.1.2 LHC和数据的创建 13
2.1.3 希格斯玻色子背后的理论 14
2.1.4 测量希格斯玻色子 14
2.1.5 数据集 14
2.2 启动Spark与加载数据 15
2.2.1 标记点向量 22
2.2.2 创建训练和测试集合 24
2.2.3 第一个模型:决策树 26
2.2.4 下一个模型:集合树 32
2.2.5 最后一个模型:H2O深度学习 37
2.2.6 构建一个3层DNN 39
2.3 小结 45
第3章 多元分类的集成方法 46
3.1 数据 47
3.2 模型目标 48
3.2.1 挑战 48
3.2.2 机器学习工作流程 48
3.2.3 使用随机森林建模 61
3.3 小结 78
第4章 使用NLP和Spark Streaming预测电影评论 80
4.1 NLP简介 81
4.2 数据集 82
4.3 特征提取 85
4.3.1 特征提取方法:词袋模型 85
4.3.2 文本标记 86
4.4 特征化——特征哈希 89
4.5 我们来做一些模型训练吧 92
4.5.1 Spark决策树模型 93
4.5.2 Spark朴素贝叶斯模型 94
4.5.3 Spark随机森林模型 95
4.5.4 Spark GBM模型 96
4.5.5 超级学习器模型 97
4.6 超级学习器 97
4.6.1 集合所有的转换 101
4.6.2 使用超级学习器模型 105
4.7 小结 105
第5章 word2vec预测和聚类 107
5.1 词向量的动机 108
5.2 word2vec解释 108
5.2.1 什么是单词向量 108
5.2.2 CBOW模型 110
5.2.3 skip-gram模型 111
5.2.4 玩转词汇向量 112
5.2.5 余弦相似性 113
5.3 doc2vec解释 113
5.3.1 分布式内存模型 113
5.3.2 分布式词袋模型 114
5.4 应用word2vec并用向量探索数据 116
5.5 创建文档向量 118
5.6 监督学习任务 119
5.7 小结 123
第6章 从点击流数据中抽取模式 125
6.1 频繁模式挖掘 126
6.2 使用Spark MLlib进行模式挖掘 130
6.2.1 使用FP-growth进行频繁模式挖掘 131
6.2.2 关联规则挖掘 136
6.2.3 使用prefix span进行序列模式挖掘 138
6.2.4 在MSNBC点击流数据上进行模式挖掘 141
6.3 部署模式挖掘应用 147
6.4 小结 154
第7章 使用GraphX进行图分析 155
7.1 基本的图理论 156
7.1.1 图 156
7.1.2 有向和无向图 156
7.1.3 阶和度 157
7.1.4 有向无环图 158
7.1.5 连通分量 159
7.1.6 树 160
7.1.7 多重图 160
7.1.8 属性图 161
7.2 GraphX分布式图计算引擎 162
7.2.1 GraphX中图的表示 163
7.2.2 图的特性和操作 165
7.2.3 构建和加载图 170
7.2.4 使用Gephi可视化图结构 172
7.2.5 图计算进阶 178
7.2.6 GraphFrame 181
7.3 图算法及其应用 183
7.3.1 聚类 183
7.3.2 顶点重要性 185
7.4 GraphX在上下文中 188
7.5 小结 189
第8章 Lending Club借贷预测 190
8.1 动机 190
8.1.1 目标 191
8.1.2 数据 192
8.1.3 数据字典 192
8.2 环境准备 193
8.3 数据加载 193
8.4 探索——数据分析 194
8.4.1 基本清理 194
8.4.2 预测目标 200
8.4.3 使用模型评分 221
8.4.4 模型部署 224
8.5 小结 229

教学资源推荐
作者: (美)韦恩·韦登(Wayne Weiten)著 (美) 韦恩&
作者: (美)杰弗里 O. 贝内特(Jeffrey O.Bennett) 著 科罗拉多大学波尔得分校威廉 L. 布里格斯(William L.Briggs)科罗拉多大学丹佛分校马里奥 F. 特里奥拉(Mario F. Triola)达奇斯社区学院
作者: (美)罗伯特 M. 卡普兰(Robert M. Kaplan)加利福尼亚大学洛杉矶分校 丹尼斯 P. 萨库兹(Dennis P. Saccuzzo)圣迭戈州立大学
作者: (美)加洛蒂(Galotti,K. M.)
参考读物推荐
作者: [美]丹·P.麦克亚当斯(Dan P. McAdams)
作者: [美]戴夫·格雷(Dave Gray) 著
作者: [美]乔纳森·赫林(Jonathan Herring) 著