描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111598466
编辑推荐
作为一名具有机器学习和统计背景的开发人员,你是否感受到了当前缓慢的“小数据”机器学习工具的限制?那么本书就是为你而写!在本书中,你将会使用Spark创建可扩展的机器学习应用,为现代的数据驱动业务提供支持。
本书从MLlib和H2O库定义的机器学习原语开始,你将学到如何使用二分类检测由CERN粒子对撞机产生的大量数据中的希格斯波色子,并使用多元分类的集成方法对日常身体活动进行分类。接下来,你将解决一个涉及航班延误预测的典型回归问题,并编写复杂的Spark流水线。你将在doc2vec算法和K-means聚类的帮助下分析Twitter数据。后,你将会使用MLlib构建不同的模式挖掘模型,使用Spark和Spark SQL对DataFrame进行复杂的操作,并在Spark Streaming环境中部署你的应用。
内容简介
本书采用理论与大量实例相结合的方式帮助开发人员掌握使用Spark进行分析和实现机器学习算法。通过这些示例和Spark在各种企业级系统中的应用,帮助读者解锁Spark机器学习算法的复杂性,通过数据分析产生有价值的数据洞察力。
目 录
目 录?Contents
译者序
关于作者
前言
第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
译者序
关于作者
前言
第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
前 言
Preface?前 言
大数据是几年前我们开始探索用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生态系统的各个角落,追随它的演进。对我们来说,关键的是需要一个强大的机器学习库,能够提供像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下载到。
评论
还没有评论。