本书结合案例研究讲解Spark 在机器学习中的应用,并介绍如何从各种公开渠道获取用于机器学习系统的数据。内容涵盖推荐系统、回归、聚类、降维等经典机器学习算法及其实际应用。第2版新增了有关机器学习数学基础以及Spark ML Pipeline API 的章节,内容更加系统、全面、与时俱进。
第 1章 Spark的环境搭建与运行 1
1.1 Spark的本地安装与配置 2
1.2 Spark集群 3
1.3 Spark编程模型 4
1.3.1 SparkContext类与SparkConf类 4
1.3.2 SparkSession 5
1.3.3 Spark shell 6
1.3.4 弹性分布式数据集 8
1.3.5 广播变量和累加器 12
1.4 SchemaRDD 13
1.5 Spark data frame 13
1.6 Spark Scala编程入门 14
1.7 Spark Java编程入门 17
1.8 Spark Python编程入门 19
1.9 Spark R编程入门 21
1.10 在Amazon EC2上运行Spark 23
1.11 在Amazon Elastic Map Reduce上配置并运行Spark 28
1.12 Spark用户界面 31
1.13 Spark所支持的机器学习算法 32
1.14 Spark ML的优势 36
1.15 在Google Compute Engine上用Dataproc构建Spark集群 38
1.15.1 Hadoop和Spark版本 38
1.15.2 创建集群 38
1.15.3 提交任务 41
1.16 小结 43
第 2章 机器学习的数学基础 44
2.1 线性代数 45
2.1.1 配置IntelliJ Scala环境 45
2.1.2 配置命令行Scala环境 47
2.1.3 域 48
2.1.4 矩阵 54
2.1.5 函数 64
2.2 梯度下降 68
2.3 先验概率、似然和后验概率 69
2.4 微积分 69
2.4.1 可微微分 69
2.4.2 积分 70
2.4.3 拉格朗日乘子 70
2.5 可视化 71
2.6 小结 72
第3章 机器学习系统设计 73
3.1 机器学习是什么 73
3.2 MovieStream介绍 74
3.3 机器学习系统商业用例 75
3.3.1 个性化 75
3.3.2 目标营销和客户细分 76
3.3.3 预测建模与分析 76
3.4 机器学习模型的种类 76
3.5 数据驱动的机器学习系统的组成 77
3.5.1 数据获取与存储 77
3.5.2 数据清理与转换 78
3.5.3 模型训练与测试循环 79
3.5.4 模型部署与整合 79
3.5.5 模型监控与反馈 80
3.5.6 批处理或实时方案的选择 80
3.5.7 Spark数据管道 81
3.6 机器学习系统架构 82
3.7 Spark MLlib 83
3.8 Spark ML的性能提升 83
3.9 MLlib支持算法的比较 85
3.9.1 分类 85
3.9.2 聚类 85
3.9.3 回归 85
3.10 MLlib支持的函数和开发者API 86
3.11 MLlib愿景 87
3.12 MLlib版本的变迁 87
3.13 小结 88
第4章 Spark上数据的获取、处理与准备 89
4.1 获取公开数据集 90
4.2 探索与可视化数据 92
4.2.1 探索用户数据 94
4.2.2 探索电影数据 102
4.2.3 探索评级数据 104
4.3 数据的处理与转换 109
4.4 从数据中提取有用特征 112
4.4.1 数值特征 112
4.4.2 类别特征 113
4.4.3 派生特征 114
4.4.4 文本特征 116
4.4.5 正则化特征 121
4.4.6 用软件
拉结帝普·杜瓦(Rajdeep Dua)
Salesforce公司工程主管,致力于打造云计算和人工智能团队。曾参与Google的大数据分析工具BigQuery的宣传团队。在云计算、大数据分析和机器学习领域有近20年的经验。
曼普利特·辛格·古特拉(Manpreet Singh Ghotra)
Salesforce公司软件工程主管,拥有十余年软件开发经验,目前致力于开发基于Apache Spark的机器学习平台。
尼克·彭特里思(Nick Pentreath)
IBM开源数据及人工智能技术中心首席工程师,大数据及机器学习公司Graphflow联合创始人,Spark项目管理委员会成员。
【译者简介】
蔡立宇
曾从事自然语言处理和图数据分析相关工作,现提供数据分析相关的独立咨询和开发服务。坐标深圳。