首页>参考读物>计算机科学与技术>人工智能

深度实践Spark机器学习
作者 : 吴茂贵 郁明敏 朱凤元 张粤磊 等著
出版日期 : 2018-01-29
ISBN : 978-7-111-58995-2
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 244
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书以最新的Spark2.0为技术基础,重点讲解了如何构建机器学习系统以及如何实现机器学习流程的标准化,这两点都是目前同类书中没有的。
第1章从概念、架构、算法等角度对机器学习进行了宏观介绍;第2章详细讲解了机器学习系统是如何构建的;第4~7章深入讲解了机器学习流程标准化涉及的关键技术;第8~11章则讲解了如何基于标准化的流程构建各种机器学习模型。

图书特色

系统讲解Spark机器学习的技术、原理、算法和组件,以及构建Spark机器学习系统的方法、流程、标准和规范

本书通过系统介绍Spark平台及其上的机器学习工具,能帮助读者快速了解机器学习的基础知识,以及如何利用Spark平台和Spark ML工具快速搭建机器学习模块,在实战中提升数据分析和建模的能力。此外,针对时下最火爆的深度学习,本书重点讲解了TensorFlowOnSpark,其整合了深度学习框架TensorFlow和Spark,读者可以在实践中了解深度学习的基础知识及实操效果。
—— 肖京  国家千人计划专家,平安科技首席科学家兼智能引擎部总经理,美国卡内基梅隆大学计算机博士

本书能让读者深入了解机器学习的原理,通过 Spark 框架实践机器学习的整个流程,包括算法的封装、特征转换、特征选择、数据清洗、数据划分、模型评估等。此外,还重点讲解了机器学习过程的流程化、标准化、规范化。本书采用循序渐进的方式介绍了 Spark ML,重点介绍了TensorFlowOnSpark,包括深度学习框架TensorFlow的基础知识,以及使用卷积神经网络、循环神经网络等的深度学习案例,是一本非常难得的机器学习实践指南。
—— 卢亿雷  大数据资深专家,精硕科技(AdMaster)技术副总裁兼总架构师,CCF(中国计算学会)大数据专委委员,北京航空航天大学特聘教授 

本书详细讲解了Spark框架下的机器学习和深度学习的技术与实践方法,特别注重二者在实际应用环境下的实践,实用性极强。
—— 谭昶  科大讯飞股份有限公司大数据研究院副院长,中国计算机学会大数据专家委员会委员

本书以机器学习系统架构和Spark框架为主线,渐进式地讲解了机器学习概念、技术和关键步骤。理论与实践紧密结合,既全面,又精练。在最后部分,与时俱进地延伸出深度学习的部分,以TensorFlow的实例,讲解了卷积神经网络和循环神经网络,并以TensorFlowOnSpark为结尾来弥补Spark在深度学习方面的不足。本书能引导读者以实践来领悟和夯实机器学习的专业知识和实践技能,完成数据时代的“软件”迭代升级,是一本以实战为抓手的好书。
—— 王冬  博世中国IT数据经理


作者简介

吴茂贵
资深BI和大数据专家,在BI、数据挖掘与分析、数据仓库、机器学习等领域有超过20年的工作经验,在Spark机器学习、TensorFlow深度学习领域有大量的实践经验。

郁明敏
对大数据、机器学习有一定的研究,擅长Python、Hadoop、Spark等技术,曾获得“江苏省TI杯大学生电子竞技大赛”二等奖和全国大学生数学建模大赛二等奖。

朱凤元
毕业于香港浸会大学,获运筹学与商业统计硕士学位,毕业后在飞牛网、永安保险、麦芽金服等公司从事数据挖掘建模工作。

张粤磊 
资深DBA和大数据架构师,10余年一线数据挖掘与分析实战经验。先后在咨询、金融、互联网行业担任数据平台技术负责人或架构师。

杨本法 
高级算法工程师,在机器学习、文本挖掘、可视化等领域有多年实践经验。熟悉Hadoop生态圈的相关技术,在R、Spark方面有丰富的实战经验。

内容简介
本书系统讲解了Spark机器学习的技术、原理、组件、算法,以及构建Spark机器学习系统的方法、流程、标准和规范。此外,还介绍了Spark的深度学习框架TensorFlowOnSpark,以及如何借助它实现卷积神经网络和循环神经网络。

全书共14章,分为4个部分:
第一部分(第1~7章)
主要讲解了Spark机器学习的技术、原理和核心组件,包括Spark ML、Spark ML Pipeline、Spark MLlib,以及如何构建一个Spark机器学习系统。
第二部分(第8~12章)
主要以实例为主,讲解了Spark ML的各种机器学习算法,包括推荐模型、分类模型、聚类模型、回归模型,以及PySpark决策树模型和Spark R朴素贝叶斯模型。
第三部分(第13章)
与之前的批量处理不同,本章以在线数据或流式数据为主,讲解了Spark的流式计算框架Spark Streaming。
第四部分(第14章)
介绍了Spark深度学习,主要包括TensorFlow的基础知识及它与Spark的整合框架TensorFlowOnSpark。

图书前言

为什么写这本书
大数据、人工智能正在改变或颠覆各行各业,包括我们的生活。大数据、人工智能方面的人才已经供不应求,但作为人工智能的核心——机器学习,因涉及的知识和技能比较多,除了需要具备一定的数学基础、相关业务知识外,还要求有比较全面的技术储备,如操作系统、数据库、开发语言、数据分析工具、大数据计算平台等,无形中提高了机器学习的门槛。如何降低机器学习的门槛,让更多有志于机器学习、人工智能的人能更方便或顺畅地使用、驾驭机器学习?
很多企业也正在考虑和处理这方面的问题,本书也希望借Spark技术在这方面做一些介绍或总结。
如何使原本复杂、专业性强的工作或操作简单化?封装是一个有效方法。封装降低了我们操作照相机的难度、降低了我们维护各种现代设备的成本,同时也提升了我们使用这些设备的效率。除封装外,过程的标准化、流程化同样是目前现代企业用于提升生产效率,降低成本,提高质量的有效方法。
硬件如此,软件行业同样如此。目前很多机器学习的开发语言或平台,正在这些方面加大力度,比如:对特征转换、特征选择、数据清理、数据划分、模型评估及优化等算法的封装;对机器学习过程的进行流程化、标准化、规范化;给大家比较熟悉的语言或工具提供API等方法或措施,以简化机器学习中间过程,缩短整个开发周期,使我们能更从容地应对市场的变化。Spark在这方面可谓后来居上,尤其是最近发布的版本,明显加大了这方面的力度,我们可以从以下几个方面看出这种趋势:
1)Spark机器学习的API,正在由基于RDD过渡到基于Dataset或DataFrame,基于RDD的API在Spark2.2后处于维护阶段,Spark3.0后将停止使用(来自Spark官网);
2)建议大家使用Spark ML,尤其是它的Pipeline;
3)增加大量特征选择、特征转换、模型选择和优化等算法;
4)丰富、增强Spark与Java、Python、R的API,使其更通用。
SKLearn、Spark等机器学习平台或工具在这方面都处于领先的地位,我们也希望借助本书,把Spark在这方面的有关内容介绍给大家,使大家可以少走些弯路。
此外,Spark目前主要涉及常用机器学习算法,缺乏对一般神经网络的支持,更不用说深度学习了,这好像也是目前Spark的一个不足。不过好消息是:雅虎把深度学习框架TensorFlow与Spark整合在一起,而且开源了这些代码。为弥补广大Spark爱好者的上述缺憾,本书介绍了TensorFlowOnSpark,其中包括深度学习框架TensorFlow的基础知识及使用卷积神经网络、循环神经网络等的一些实际案例。
另外,我们提供了与本书环境完全一致的免费云操作环境,这样一来是希望节约您的宝贵时间,二来是希望能通过真正的实战,给您不一样的体验和收获!总之,我们希望能使更多有志于大数据、人工智能的朋友加入这个充满生机、前景广阔的行业中来。
本书特色
本书最大特点就是注重实战!或许有读者会问,能从哪几个方面体现出来?
1)介绍了目前关于机器学习的新趋势,并分析了如何使用Pipeline使机器学习过程流程化。
2)简介了机器学习的一般框架Spark、深度学习框架Tensorflow及把两者整合在一起的框架TensorflowOnSpark。
3)提供可操作、便执行及具有实战性的项目及其详细代码。
4)提供与书完全一致的云操作环境,而且这个环境可以随时随地使用实操环境,登录地址为httpwww.feiguyun.comsparksupport。
5)除了代码外,还附有一些必要的架构或原理说明,便于大家能从一个更高的角度来理解把握相关问题。
总之,希望你通过阅读本书,不但可以了解很多内容或代码,更可以亲自运行或调试这些代码,从而带来新的体验和收获!
读者对象
对大数据、机器学习感兴趣的广大在校、在职人员。
对Spark机器学习有一定基础,欲进一步提高开发效率的人员。
熟悉Python、R等工具,希望进一步拓展到Spark机器学习的人。
对深度学习框架TensorFlow及其拓展感兴趣的读者。
如何阅读本书
本书正文共14章,从内容结构来看,可以分为四部分。
第一部分为第1~7章,主要介绍了机器学习的一些基本概念,包括如何构建一个Spark机器学习系统,Spark ML主要特点,Spark ML中流水线(Pipeline),ML中大量特征选取、特征转换、特征选择等函数或方法,同时简单介绍了Spark MLlib的一些基础知识。
第二部分为第8~12章,主要以实例为主,具体说明如何使用Spark ML中Pipeline的Stage,以及如何把这Stage组合到流水线上,最后通过评估指标,优化模型。
第三部分即第13章,与之前的批量处理不同,这一章主要以在线数据或流式数据为主,介绍Spark的流式计算框架Spark Streaming。
第四部分即第14章,为深度学习框架,主要包括TensorFlow的基础知识及它与Spark的整合框架TensorFlowOnSpark。
此外,书中的附录部分还提供了线性代数、概率统计及Scala的基础知识,以帮助读者更好地掌握机器学习的相关内容。
勘误和支持
除封面署名外,参加本书编写、环境搭建的人还有杨本法、张魁、刘未昕等、杨本法负责第12章 Spark R的编写,张魁、刘未昕负责后台环境的搭建和维护。由于笔者水平有限,加之编写时间仓促,书中难免出现错误或不准确的地方。恳请读者批评指正,你可以通过访问httpwww.feiguyun.com留下宝贵意见。也可以通过微信(wumg3000)或QQ(1715408972)给我们反馈。非常感谢你的支持和帮助。
致谢
在本书编写过程中,得到很多在校老师和同学的支持!感谢上海大学机电工程与自动化学院的王佳寅老师及黄文成、杨中源、熊奇等同学,上海理工管理学院的张帆老师,上海师大数理学院的田红炯、李昭祥老师,华师大的王旭同学,博世王冬,飞谷云小伙伴等提供的支持和帮助。
感谢机械工业出版社的杨福川、李艺老师给予本书的大力支持和帮助。
感谢参与本书编写的其他作者及提供支持的家人们,谢谢你们!

上架指导

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

封底文字

本书通过对Spark平台及其之上的机器学习工具的系统介绍,能帮助读者快速了解机器学习的基础知识,以及如何利用Spark平台和Spark ML工具快速搭建机器学习模块,在实战中提升数据分析和建模的能力。此外,针对时下最火爆的深度学习,本书重点讲解了TensorFlowOnSpark,其整合了深度学习框架TensorFlow和Spark,读者可以在实践中了解深度学习的基础知识及实操效果。
——肖京博士,国家千人计划专家,平安科技首席科学家兼智能引擎部总经理,美国卡内基梅隆大学计算机博士。

本书能让读者深入了解机器学习的原理,通过 Spark 框架实践机器学习的整个流程,包括算法的封装、特征转换、特征选择、数据清洗、数据划分、模型评估等。此外,还重点讲解了机器学习过程的流程化、标准化、规范化。本书采用循序渐进的方式介绍了 Spark ML,重点介绍了TensorFlowOnSpark,包括深度学习框架TensorFlow的基础知识,以及使用卷积神经网络、循环神经网络等的深度学习案例,是一本非常难得的机器学习实践指南。
——卢亿雷,大数据资深专家,精硕科技(AdMaster)技术副总裁兼总架构师,CCF(中国计算学会)大数据专委委员,北京航空航天大学特聘教授

本书详细讲解了Spark框架下的机器学习和深度学习的技术与实践方法,特别注重二者在实际应用环境下的实践,实用性极强。
——谭昶 科大讯飞股份有限公司大数据研究院副院长,中国计算机学会大数据专家委员会委员

本书以机器学习系统架构和Spark框架为主线,渐进式地讲解了机器学习概念、技术和关键步骤。内容理论与实践紧密结合,既全面,又精炼。在最后部分,与时俱进地延生出深度学习的部分,以TensorFlow的实例,讲解了卷积神经网络和循环神经网络,并以TensorFlowonSpark为结尾来弥补Spark在深度学习方面的不足。本书能引导读者以实践来领悟和夯实机器学习的专业知识和实践技能,完成数据时代的“软件”迭代升级,是一本以实战为抓手的好书。
——王冬 博世中国IT数据经理

图书目录

前言
第1章 了解机器学习 1
1.1 机器学习的定义 1
1.2 大数据与机器学习 2
1.3 机器学习、人工智能及深度学习 2
1.4 机器学习的基本任务 3
1.5 如何选择合适算法 4
1.6 Spark在机器学习方面的优势 5
1.7 小结 5
第2章 构建Spark机器学习系统 6
2.1 机器学习系统架构 6
2.2 启动集群 7
2.3 加载数据 9
2.4 探索数据 10
2.4.1 数据统计信息 10
2.4.2 数据质量分析 11
2.4.3 数据特征分析 12
2.4.4 数据的可视化 17
2.5 数据预处理 19
2.5.1 数据清理 20
2.5.2 数据变换 21
2.5.3 数据集成 22
2.5.4 数据归约 23
2.6 构建模型 25
2.7 模型评估 26
2.8 组装 30
2.9 模型选择或调优 30
2.9.1 交叉验证 31
2.9.2 训练–验证切分 32
2.10 保存模型 32
2.11 小结 33
第3章 ML Pipeline原理与实战 34
3.1 Pipeline简介 34
3.2 DataFrame 35
3.3 Pipeline组件 36
3.4 Pipeline原理 37
3.5 Pipeline实例 38
3.5.1 使用Estimator、Transformer和Param的实例 38
3.5.2 ML使用Pipeline的实例 40
3.6 小结 41
第4章 特征提取、转换和选择 42
4.1 特征提取 42
4.1.1 词频—逆向文件
频率(TF-IDF) 42
4.1.2 Word2Vec 43
4.1.3 计数向量器 44
4.2 特征转换 45
4.2.1 分词器 45
4.2.2 移除停用词 46
4.2.3 n-gram 47
4.2.4 二值化 48
4.2.5 主成分分析 48
4.2.6 多项式展开 50
4.2.7 离散余弦变换 50
4.2.8 字符串—索引变换 51
4.2.9  索引—字符串变换 53
4.2.10 独热编码 54
4.2.11 向量—索引变换 57
4.2.12 交互式 58
4.2.13 正则化 59
4.2.14 规范化 60
4.2.15 最大值—最小值缩放 60
4.2.16 最大值—绝对值缩放 61
4.2.17 离散化重组 62
4.2.18 元素乘积 63
4.2.19 SQL转换器 64
4.2.20 向量汇编 65
4.2.21 分位数离散化 66
4.3 特征选择 67
4.3.1 向量机 67
4.3.2 R公式 69
4.3.3 卡方特征选择 70
4.4 小结 71
第5章 模型选择和优化 72
5.1 模型选择 72
5.2 交叉验证 73
5.3 训练验证拆分法 75
5.4 自定义模型选择 76
5.5 小结 78
第6章 Spark MLlib基础 79
6.1 Spark MLlib简介 80
6.2 Spark MLlib架构 81
6.3 数据类型 82
6.4 基础统计 84
6.4.1 摘要统计 84
6.4.2 相关性 84
6.4.3 假设检验 85
6.4.4 随机数据生成 85
6.5 RDD、Dataframe和Dataset 86
6.5.1 RDD 86
6.5.2 DatasetDataFrame 87
6.5.3 相互转换 88
6.6 小结 89
第7章 构建Spark ML推荐模型 90
7.1 推荐模型简介 91
7.2 数据加载 92
7.3 数据探索 94
7.4 训练模型 94
7.5 组装 95
7.6 评估模型 96
7.7 模型优化 96
7.8 小结 98
第8章 构建Spark ML分类模型 99
8.1 分类模型简介 99
8.1.1 线性模型 100
8.1.2 决策树模型 101
8.1.3 朴素贝叶斯模型 102
8.2 数据加载 102
8.3 数据探索 103
8.4 数据预处理 104
8.5 组装 109
8.6 模型优化 110
8.7 小结 113
第9章 构建Spark ML回归模型 114
9.1 回归模型简介 115
9.2 数据加载 115
9.3 探索特征分布 117
9.4 数据预处理 120
9.4.1 特征选择 121
9.4.2 特征转换 121
9.5 组装 122
9.6 模型优化 124
9.7 小结 126
第10章 构建Spark ML聚类模型 127
10.1 K-means模型简介 128
10.2 数据加载 129
10.3 探索特征的相关性 129
10.4 数据预处理 131
10.5 组装 132
10.6 模型优化 134
10.7 小结 136
第11章 PySpark 决策树模型 137
11.1 PySpark 简介 138
11.2 决策树简介 139
11.3 数据加载 140
11.3.1 原数据集初探 140
11.3.2 PySpark的启动 142
11.3.3 基本函数 142
11.4 数据探索 143
11.5 数据预处理 143
11.6 创建决策树模型 145
11.7 训练模型进行预测 146
11.8 模型优化 149
11.8.1 特征值的优化 149
11.8.2 交叉验证和网格参数 152
11.9 脚本方式运行 154
11.9.1 在脚本中添加配置信息 154
11.9.2 运行脚本程序 154
11.10 小结 154
第12章 SparkR朴素贝叶斯模型 155
12.1 SparkR简介 156
12.2 获取数据 157
12.2.1 SparkDataFrame数据结构
说明 157
12.2.2 创建SparkDataFrame 157
12.2.3 SparkDataFrame的常用操作 160
12.3 朴素贝叶斯分类器 162
12.3.1 数据探查 162
12.3.2 对原始数据集进行转换 163
12.3.3 查看不同船舱的生还率差异 163
12.3.4 转换成SparkDataFrame格式的数据 165
12.3.5 模型概要 165
12.3.6 预测 165
12.3.7 评估模型 166
12.4 小结 167
第13章 使用Spark Streaming构建在线学习模型 168
13.1 Spark Streaming简介 168
13.1.1 Spark Streaming常用术语 169
13.1.2 Spark Streaming处理流程 169
13.2 Dstream操作 170
13.2.1 Dstream输入 170
13.2.2 Dstream转换 170
13.2.3 Dstream修改 171
13.2.4 Dstream输出 172
13.3 Spark Streaming应用实例 172
13.4 Spark Streaming在线学习实例 174
13.5 小结 175
第14章 TensorFlowOnSpark详解 176
14.1 TensorFlow简介 176
14.1.1 TensorFlow的安装 177
14.1.2 TensorFlow的发展 177
14.1.3 TensorFlow的特点 177
14.1.4 TensorFlow编程模型 178
14.1.5 TensorFlow常用函数 180
14.1.6 TensorFlow运行原理 181
14.1.7 TensorFlow系统架构 182
14.2 TensorFlow实现卷积神经网络 183
14.2.1 卷积神经网络简介 183
14.2.2 卷积神经网络的发展历程 184
14.2.3 卷积神经网络的网络结构 186
14.2.4 TensorFlow实现卷积神经网络 186
14.3 TensorFlow实现循环神经网络 191
14.3.1 循环神经网络简介 191
14.3.2 LSTM循环神经网络简介 192
14.3.3 LSTM循环神经网络分步说明 193
14.3.4 TensorFlow实现循环神经网络 194
14.4 分布式TensorFlow 198
14.4.1 客户端、主节点和工作节点间的关系 198
14.4.2 分布式模式 198
14.4.3 在Pyspark集群环境运行TensorFlow 199
14.5 TensorFlowOnSpark架构 202
14.6 TensorFlowOnSpark安装 203
14.7 TensorFlowOnSpark实例 204
14.7.1 TensorFlowOnSpark单机模式实例 204
14.7.2 TensorFlowOnSpark集群模式实例 207
14.8 小结 208
附录A 线性代数 209
附录B 概率统计 214
附录C Scala基础 220

教学资源推荐
作者: 王章阳(Zhangyang Wang) [美]傅云(Yun Fu) [美]黄煦涛(Thomas S. Huang) 编著
作者: 周昌乐 著
作者: [以]尤金·卡根(Eugene Kagan)尼尔·什瓦布(Nir Shvalb) 伊拉德·本-加尔(Irad Ben-Gal) 编著
作者: [美]马克·R. 米勒(Mark R. Miller) 雷克斯·米勒(Rex Miller) 著
参考读物推荐
作者: 庄福振 朱勇椿 祝恒书 熊辉 著
作者: [美]赫伯特·L.罗埃布莱特(Herbert L. Roitblat)著
作者: [美]韦斯·麦金尼(Wes McKinney)著
作者: [巴西]法比奥·M. 索尔斯(Fabio M. Soares),艾伦· M. F. 索萨(Alan M. F. Souza)著