第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 Dataset/DataFrame 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