《Spark MLlib机器学习:算法、源码及实战详解》是一本深入解析Spark MLlib模块的权威指南,以Spark 1.4.1版本源码为研究对象,该书展现了分布式机器学习的底层实现,即数据操作及矩阵向量计算操作,值得一提的是,书中对各类机器学习算法进行了清晰易懂的解读,解析了如何透过MLlib实现分布式计算,该书并未止步于理论讲解,而是还附带了大量MLlib源码的详尽讲解及实战例子,使得读者可以更好地理解并运用Spark MLlib进行大数据处理,对于大数据、Spark、数据挖掘等领域的从业人员来说,这是一本不可错过的参考书籍,同时,它也是那些对Spark开发感兴趣或者热爱大数据的读者了解分布式机器学习原理和实现细节的优秀读物。
本书以Spark 1.4.1版本源码为切入点,全面并且深入地解析Spark MLlib模块,着力于探索分布式机器学习的底层实现。本着循序渐进的原则,首先解析MLlib的底层实现基础:数据操作及矩阵向量计算操作,该部分是MLlib实现的基础;接着对各个机器学习算法的理论知识进行讲解,并且解析机器学习算法如何在MLlib中实现分布式计算;然后对MLlib源码进行详细的讲解;最后进行MLlib实例的讲解。相信通过《Spark MLlib机器学习:算法、源码及实战详解》的学习,读者可全面掌握Spark MLlib机器学习,能够进行MLlib实战、MLlib定制开发等。适合大数据、Spark、数据挖掘领域的从业人员阅读,同时也为Spark开发者和大数据爱好者展现了分布式机器学习的原理和实现细节。
目录
- 第一部分 Spark MLlib基础
- 第1章 Spark机器学习简介 2
- 1.1 机器学习介绍 2
- 1.2 Spark介绍 3
- 1.3 Spark MLlib介绍 4
- 第2章 Spark数据操作 6
- 2.1 Spark RDD操作 6
- 2.1.1 Spark RDD创建操作 6
- 2.1.2 Spark RDD转换操作 7
- 2.1.3 Spark RDD行动操作 14
- 2.2 MLlib Statistics统计操作 15
- 2.2.1 列统计汇总 15
- 2.2.2 相关系数 16
- 2.2.3 假设检验 18
- 2.3 MLlib数据格式 18
- 2.3.1 数据处理 18
- 2.3.2 生成样本 22
- 第3章 Spark MLlib矩阵向量 26
- 3.1 Breeze介绍 26
- 3.1.1 Breeze创建函数 27
- 3.1.2 Breeze元素访问及操作函数 29
- 3.1.3 Breeze数值计算函数 34
- 3.1.4 Breeze求和函数 35
- 3.1.5 Breeze布尔函数 36
- 3.1.6 Breeze线性代数函数 37
- 3.1.7 Breeze取整函数 39
- 3.1.8 Breeze常量函数 40
- 3.1.9 Breeze复数函数 40
- 3.1.10 Breeze三角函数 40
- 3.1.11 Breeze对数和指数函数 40
- 3.2 BLAS介绍 41
- 3.2.1 BLAS向量-向量运算 42
- 3.2.2 BLAS矩阵-向量运算 42
- 3.2.3 BLAS矩阵-矩阵运算 43
- 3.3 MLlib向量 43
- 3.3.1 MLlib向量介绍 43
- 3.3.2 MLlib Vector接口 44
- 3.3.3 MLlib DenseVector类 46
- 3.3.4 MLlib SparseVector类 49
- 3.3.5 MLlib Vectors伴生对象 50
- 3.4 MLlib矩阵 57
- 3.4.1 MLlib矩阵介绍 57
- 3.4.2 MLlib Matrix接口 57
- 3.4.3 MLlib DenseMatrix类 59
- 3.4.4 MLlib SparseMatrix类 64
- 3.4.5 MLlib Matrix伴生对象 71
- 3.5 MLlib BLAS 77
- 3.6 MLlib分布式矩阵 93
- 3.6.1 MLlib分布式矩阵介绍 93
- 3.6.2 行矩阵(RowMatrix) 94
- 3.6.3 行索引矩阵(IndexedRowMatrix) 96
- 3.6.4 坐标矩阵(CoordinateMatrix) 97
- 3.6.5 分块矩阵(BlockMatrix) 98
- 第二部分 Spark MLlib回归算法
- 第4章 Spark MLlib线性回归算法 102
- 4.1 线性回归算法 102
- 4.1.1 数学模型 102
- 4.1.2 最小二乘法 105
- 4.1.3 梯度下降算法 105
- 4.2 源码分析 106
- 4.2.1 建立线性回归 108
- 4.2.2 模型训练run方法 111
- 4.2.3 权重优化计算 114
- 4.2.4 线性回归模型 121
- 4.3 实例 123
- 4.3.1 训练数据 123
- 4.3.2 实例代码 123
- 第5章 Spark MLlib逻辑回归算法 126
- 5.1 逻辑回归算法 126
- 5.1.1 数学模型 126
- 5.1.2 梯度下降算法 128
- 5.1.3 正则化 129
- 5.2 源码分析 132
- 5.2.1 建立逻辑回归 134
- 5.2.2 模型训练run方法 137
- 5.2.3 权重优化计算 137
- 5.2.4 逻辑回归模型 144
- 5.3 实例 148
- 5.3.1 训练数据 148
- 5.3.2 实例代码 148
- 第6章 Spark MLlib保序回归算法 151
- 6.1 保序回归算法 151
- 6.1.1 数学模型 151
- 6.1.2 L2保序回归算法 153
- 6.2 源码分析 153
- 6.2.1 建立保序回归 154
- 6.2.2 模型训练run方法 156
- 6.2.3 并行PAV计算 156
- 6.2.4 PAV计算 157
- 6.2.5 保序回归模型 159
- 6.3 实例 164
- 6.3.1 训练数据 164
- 6.3.2 实例代码 164
- 第三部分 Spark MLlib分类算法
- 第7章 Spark MLlib贝叶斯分类算法 170
- 7.1 贝叶斯分类算法 170
- 7.1.1 贝叶斯定理 170
- 7.1.2 朴素贝叶斯分类 171
- 7.2 源码分析 173
- 7.2.1 建立贝叶斯分类 173
- 7.2.2 模型训练run方法 176
- 7.2.3 贝叶斯分类模型 179
- 7.3 实例 181
- 7.3.1 训练数据 181
- 7.3.2 实例代码 182
- 第8章 Spark MLlib SVM支持向量机算法 184
- 8.1 SVM支持向量机算法 184
- 8.1.1 数学模型 184
- 8.1.2 拉格朗日 186
- 8.2 源码分析 189
- 8.2.1 建立线性SVM分类 191
- 8.2.2 模型训练run方法 194
- 8.2.3 权重优化计算 194
- 8.2.4 线性SVM分类模型 196
- 8.3 实例 199
- 8.3.1 训练数据 199
- 8.3.2 实例代码 199
- 第9章 Spark MLlib决策树算法 202
- 9.1 决策树算法 202
- 9.1.1 决策树 202
- 9.1.2 特征选择 203
- 9.1.3 决策树生成 205
- 9.1.4 决策树生成实例 206
- 9.1.5 决策树的剪枝 208
- 9.2 源码分析 209
- 9.2.1 建立决策树 211
- 9.2.2 建立随机森林 216
- 9.2.3 建立元数据 220
- 9.2.4 查找特征的分裂及划分 223
- 9.2.5 查找最好的分裂顺序 228
- 9.2.6 决策树模型 231
- 9.3 实例 234
- 9.3.1 训练数据 234
- 9.3.2 实例代码 234
- 第四部分 Spark MLlib聚类算法
- 第10章 Spark MLlib KMeans聚类算法 238
- 10.1 KMeans聚类算法 238
- 10.1.1 KMeans算法 238
- 10.1.2 演示KMeans算法 239
- 10.1.3 初始化聚类中心点 239
- 10.2 源码分析 240
- 10.2.1 建立KMeans聚类 242
- 10.2.2 模型训练run方法 247
- 10.2.3 聚类中心点计算 248
- 10.2.4 中心点初始化 251
- 10.2.5 快速距离计算 254
- 10.2.6 KMeans聚类模型 255
- 10.3 实例 258
- 10.3.1 训练数据 258
- 10.3.2 实例代码 259
- 第11章 Spark MLlib LDA主题模型算法 261
- 11.1 LDA主题模型算法 261
- 11.1.1 LDA概述 261
- 11.1.2 LDA概率统计基础 262
- 11.1.3 LDA数学模型 264
- 11.2 GraphX基础 267
- 11.3 源码分析 270
- 11.3.1 建立LDA主题模型 272
- 11.3.2 优化计算 279
- 11.3.3 LDA模型 283
- 11.4 实例 288
- 11.4.1 训练数据 288
- 11.4.2 实例代码 288
- 第五部分 Spark MLlib关联规则挖掘算法
- 第12章 Spark MLlib FPGrowth关联规则算法 292
- 12.1 FPGrowth关联规则算法 292
- 12.1.1 基本概念 292
- 12.1.2 FPGrowth算法 293
- 12.1.3 演示FP树构建 294
- 12.1.4 演示FP树挖掘 296
- 12.2 源码分析 298
- 12.2.1 FPGrowth类 298
- 12.2.2 关联规则挖掘 300
- 12.2.3 FPTree类 303
- 12.2.4 FPGrowthModel类 306
- 12.3 实例 306
- 12.3.1 训练数据 306
- 12.3.2 实例代码 306
- 第六部分 Spark MLlib推荐算法
- 第13章 Spark MLlib ALS交替最小二乘算法 310
- 13.1 ALS交替最小二乘算法 310
- 13.2 源码分析 312
- 13.2.1 建立ALS 314
- 13.2.2 矩阵分解计算 322
- 13.2.3 ALS模型 329
- 13.3 实例 334
- 13.3.1 训练数据 334
- 13.3.2 实例代码 334
- 第14章 Spark MLlib协同过滤推荐算法 337
- 14.1 协同过滤推荐算法 337
- 14.1.1 协同过滤推荐概述 337
- 14.1.2 用户评分 338
- 14.1.3 相似度计算 338
- 14.1.4 推荐计算 340
- 14.2 协同推荐算法实现 341
- 14.2.1 相似度计算 344
- 14.2.2 协同推荐计算 348
- 14.3 实例 350
- 14.3.1 训练数据 350
- 14.3.2 实例代码 350
- 第七部分 Spark MLlib神经网络算法
- 第15章 Spark MLlib神经网络算法综述 354
- 15.1 人工神经网络算法 354
- 15.1.1 神经元 354
- 15.1.2 神经网络模型 355
- 15.1.3 信号前向传播 356
- 15.1.4 误差反向传播 357
- 15.1.5 其他参数 360
- 15.2 神经网络算法实现 361
- 15.2.1 神经网络类 363
- 15.2.2 训练准备 370
- 15.2.3 前向传播 375
- 15.2.4 误差反向传播 377
- 15.2.5 权重更新 381
- 15.2.6 ANN模型 382
- 15.3 实例 384
- 15.3.1 测试数据 384
- 15.3.2 测试函数代码 387
- 15.3.3 实例代码 388