重磅推荐
【编辑推荐】
本书系统、全面、深入地解析了Spark MLlib机器学习的相关知识,着力于探索分布式机器学习的底层实现。以源码为基础,兼顾算法、理论与实战,帮助读者在实际工作中进行MLlib的应用开发和定制开发。适合大数据、Spark、数据挖掘领域的从业人员阅读。
【内容简介】
本书以Spark 1.4.1版本源码为切入点,全面并且深入地解析Spark MLlib模块,着力于探索分布式机器学习的底层实现。 本书循序渐进,首先解析MLlib的底层实现基础:数据操作及矩阵向量计算操作,该部分是MLlib实现的基础;其次再对各个机器学习算法的理论知识进行讲解,并且解析机器学习算法如何在MLlib中实现分布式计算;然后对MLlib源码进行详细的讲解;后进行MLlib实例的讲解。相信通过本书的学习,读者可全面掌握Spark MLlib机器学习,能够进行MLlib实战、MLlib定制开发等。
【目录】
部分 Spark MLlib基础第1章 Spark机器学习简介 21.1 机器学习介绍 21.2 Spark介绍 31.3 Spark MLlib介绍 4第2章 Spark数据操作 62.1 Spark RDD操作 62.1.1 Spark RDD创建操作 62.1.2 Spark RDD转换操作 72.1.3 Spark RDD行动操作 142.2 MLlib Statistics统计操作 152.2.1 列统计汇总 152.2.2 相关系数 162.2.3 假设检验 182.3 MLlib数据格式 182.3.1 数据处理 182.3.2 生成样本 22第3章 Spark MLlib矩阵向量 263.1 Breeze介绍 263.1.1 Breeze创建函数 273.1.2 Breeze元素访问及操作函数 293.1.3 Breeze数值计算函数 343.1.4 Breeze求和函数 353.1.5 Breeze布尔函数 363.1.6 Breeze线性代数函数 373.1.7 Breeze取整函数 393.1.8 Breeze常量函数 403.1.9 Breeze复数函数 403.1.10 Breeze三角函数 403.1.11 Breeze对数和指数函数 403.2 BLAS介绍 413.2.1 BLAS向量-向量运算 423.2.2 BLAS矩阵-向量运算 423.2.3 BLAS矩阵-矩阵运算 433.3 MLlib向量 433.3.1 MLlib向量介绍 433.3.2 MLlib Vector接口 443.3.3 MLlib DenseVector类 463.3.4 MLlib SparseVector类 493.3.5 MLlib Vectors伴生对象 503.4 MLlib矩阵 573.4.1 MLlib矩阵介绍 573.4.2 MLlib Matrix接口 573.4.3 MLlib DenseMatrix类 593.4.4 MLlib SparseMatrix类 643.4.5 MLlib Matrix伴生对象 713.5 MLlib BLAS 773.6 MLlib分布式矩阵 933.6.1 MLlib分布式矩阵介绍 933.6.2 行矩阵(RowMatrix) 943.6.3 行索引矩阵(IndexedRowMatrix) 963.6.4 坐标矩阵(CoordinateMatrix) 973.6.5 分块矩阵(BlockMatrix) 98第二部分 Spark MLlib回归算法第4章 Spark MLlib线性回归算法 1024.1 线性回归算法 1024.1.1 数学模型 1024.1.2 小二乘法 1054.1.3 梯度下降算法 1054.2 源码分析 1064.2.1 建立线性回归 1084.2.2 模型训练run方法 1114.2.3 权重优化计算 1144.2.4 线性回归模型 1214.3 实例 1234.3.1 训练数据 1234.3.2 实例代码 123第5章 Spark MLlib逻辑回归算法 1265.1 逻辑回归算法 1265.1.1 数学模型 1265.1.2 梯度下降算法 1285.1.3 正则化 1295.2 源码分析 1325.2.1 建立逻辑回归 1345.2.2 模型训练run方法 1375.2.3 权重优化计算 1375.2.4 逻辑回归模型 1445.3 实例 1485.3.1 训练数据 1485.3.2 实例代码 148第6章 Spark MLlib保序回归算法 1516.1 保序回归算法 1516.1.1 数学模型 1516.1.2 L2保序回归算法 1536.2 源码分析 1536.2.1 建立保序回归 1546.2.2 模型训练run方法 1566.2.3 并行PAV计算 1566.2.4 PAV计算 1576.2.5 保序回归模型 1596.3 实例 1646.3.1 训练数据 1646.3.2 实例代码 164第三部分 Spark MLlib分类算法第7章 Spark MLlib贝叶斯分类算法 1707.1 贝叶斯分类算法 1707.1.1 贝叶斯定理 1707.1.2 朴素贝叶斯分类 1717.2 源码分析 1737.2.1 建立贝叶斯分类 1737.2.2 模型训练run方法 1767.2.3 贝叶斯分类模型 1797.3 实例 1817.3.1 训练数据 1817.3.2 实例代码 182第8章 Spark MLlib SVM支持向量机算法 1848.1 SVM支持向量机算法 1848.1.1 数学模型 1848.1.2 拉格朗日 1868.2 源码分析 1898.2.1 建立线性SVM分类 1918.2.2 模型训练run方法 1948.2.3 权重优化计算 1948.2.4 线性SVM分类模型 1968.3 实例 1998.3.1 训练数据 1998.3.2 实例代码 199第9章 Spark MLlib决策树算法 2029.1 决策树算法 2029.1.1 决策树 2029.1.2 特征选择 2039.1.3 决策树生成 2059.1.4 决策树生成实例 2069.1.5 决策树的剪枝 2089.2 源码分析 2099.2.1 建立决策树 2119.2.2 建立随机森林 2169.2.3 建立元数据 2209.2.4 查找特征的分裂及划分 2239.2.5 查找好的分裂顺序 2289.2.6 决策树模型 2319.3 实例 2349.3.1 训练数据 2349.3.2 实例代码 234第四部分 Spark MLlib聚类算法第10章 Spark MLlib KMeans聚类算法 23810.1 KMeans聚类算法 23810.1.1 KMeans算法 23810.1.2 演示KMeans算法 23910.1.3 初始化聚类中心点 23910.2 源码分析 24010.2.1 建立KMeans聚类 24210.2.2 模型训练run方法 24710.2.3 聚类中心点计算 24810.2.4 中心点初始化 25110.2.5 快速距离计算 25410.2.6 KMeans聚类模型 25510.3 实例 25810.3.1 训练数据 25810.3.2 实例代码 259第11章 Spark MLlib LDA主题模型算法 26111.1 LDA主题模型算法 26111.1.1 LDA概述 26111.1.2 LDA概率统计基础 26211.1.3 LDA数学模型 26411.2 GraphX基础 26711.3 源码分析 27011.3.1 建立LDA主题模型 27211.3.2 优化计算 27911.3.3 LDA模型 28311.4 实例 28811.4.1 训练数据 28811.4.2 实例代码 288第五部分 Spark MLlib关联规则挖掘算法第12章 Spark MLlib FPGrowth关联规则算法 29212.1 FPGrowth关联规则算法 29212.1.1 基本概念 29212.1.2 FPGrowth算法 29312.1.3 演示FP树构建 29412.1.4 演示FP树挖掘 29612.2 源码分析 29812.2.1 FPGrowth类 29812.2.2 关联规则挖掘 30012.2.3 FPTree类 30312.2.4 FPGrowthModel类 30612.3 实例 30612.3.1 训练数据 30612.3.2 实例代码 306第六部分 Spark MLlib推荐算法第13章 Spark MLlib ALS交替小二乘算法 31013.1 ALS交替小二乘算法 31013.2 源码分析 31213.2.1 建立ALS 31413.2.2 矩阵分解计算 32213.2.3 ALS模型 32913.3 实例 33413.3.1 训练数据 33413.3.2 实例代码 334第14章 Spark MLlib协同过滤推荐算法 33714.1 协同过滤推荐算法 33714.1.1 协同过滤推荐概述 33714.1.2 用户评分 33814.1.3 相似度计算 33814.1.4 推荐计算 34014.2 协同推荐算法实现 34114.2.1 相似度计算 34414.2.2 协同推荐计算 34814.3 实例 35014.3.1 训练数据 35014.3.2 实例代码 350第七部分 Spark MLlib神经网络算法第15章 Spark MLlib神经网络算法综述 35415.1 人工神经网络算法 35415.1.1 神经元 35415.1.2 神经网络模型 35515.1.3 信号前向传播 35615.1.4 误差反向传播 35715.1.5 其他参数 36015.2 神经网络算法实现 36115.2.1 神经网络类 36315.2.2 训练准备 37015.2.3 前向传播 37515.2.4 误差反向传播 37715.2.5 权重更新 38115.2.6 ANN模型 38215.3 实例 38415.3.1 测试数据 38415.3.2 测试函数代码 38715.3.3 实例代码 388
【前言】
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科,其中大部分理论来源于18、19世纪,例如贝叶斯定理,是18世纪英国数学家托马斯?贝叶斯(Thomas Bayes)提出的重要概率论理论;而21世纪则侧重于如何将机器学习理论运用在工业化中,帮助改进性能及提升其效率。 机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。在算法设计方面,机器学习理论关注可以实现的、行之有效的学习算法;机器学习研究的不是求解精确的结果,而是研究开发容易处理的近似求解算法。尤其是在21世纪,知识和数据量爆发的时代,机器学习面临大数据的求解难题。 随着数据量的增加,从传统的单机计算发展到大规模的集群计算,以至发展到今天的一种大规模、快速计算的集群平台—Apache Spark。Spark是一个开源集群运算框架,初由加州大学伯克利分校AMP实验室开发。相对于Hadoop的MapReduce会在执行完工作后将中介资料存放到磁盘中,Spark使用了内存内运算技术,能在资料尚未写入硬盘时即在内存内分析运算。Spark在内存上的运算速度比Hadoop MapReduce的运算速度快100倍,即便是在磁盘上运行也能快10倍。Spark允许将数据加载至集群内存,并多次对其进行查询,非常适合用于机器学习算法。 本书侧重讲解Spark MLlib模块。Spark MLlib是一种高效、快速、可扩展的分布式计算框架,实现了常用的机器学习,如聚类、分类、回归等算法。本文循序渐进,从Spark的基础知识、矩阵向量的基础知识开始,然后再讲解各种算法的理论知识,以及Spark源码实现和实例实战,帮助读者从基础到实践全面掌握Spark MLlib分布式机器学习。 学习本书需要的基础知识包括:Spark基础入门、Scala入门、线性代数基础知识。 本书面向的读者:Spark开发者、大数据工程师、数据挖掘工程师、机器学习工程师、研究生和高年级本科生等。本书学习指南:部分 Spark MLlib基础 Spark MLlib机器学习的基础包括:Spark数据操作、矩阵向量,它们都是各个机器学习算法的底层实现基础 通过这部分掌握:RDD的基础操作、矩阵和向量的运算、数据格式等第1章 Spark机器学习简介 第2章 Spark数据操作 第3章 Spark MLlib矩阵向量 第二部分 Spark MLlib回归算法 Spark MLlib机器学习算法的全面解析。包含常见机器学习:回归、分类、聚类、关联、推荐和神经网络 通过这部分掌握:机器学习算法理论知识、机器学习算法的分布实现方法、MLlib源码解析、实例解析其中第14、15章是基于Spark MLlib上实现或者定制开发机器学习算法,读者可掌握分布式机器学习的开发分布式机器学习的学习路径:理论→分布式实现逻辑→开发→实例第4章 Spark MLlib线性回归算法 第5章 Spark MLlib逻辑回归算法 第6章 Spark MLlib保序回归算法 第三部分 Spark MLlib分类算法 第7章 Spark MLlib贝叶斯分类算法 第8章 Spark MLlib SVM支持向量机算法 第9章 Spark MLlib决策树算法 第四部分 Spark MLlib聚类算法 第10章 Spark MLlib KMeans聚类算法 第11章 Spark MLlib LDA主题模型算法 第五部分 Spark MLlib关联规则挖掘算法 第12章 Spark MLlib FPGrowth关联规则算法 第六部分 Spark MLlib推荐算法 第13章 Spark MLlib ALS交替小二乘算法 第14章 Spark MLlib 协同过滤推荐算法 第七部分 Spark MLlib神经网络算法 第15章 Spark MLlib神经网络算法综述 在本书的编写过程中,何娟、何丹、王蒙、叶月媚参与了全书的编写、整理及校对工作,刘程辉、李俊、廖宏参与了Spark集群运维和第2章数据操作的实例部分工作,刘晓宏、方佳武、于善龙参与了全书的实例部分工作。 由于笔者水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。您也可以通过博客http://blog.csdn.net/sunbow0、邮箱humeli317@163.com和QQ群487540403联系到我,期待能够得到读者朋友们的真挚反馈,在技术之路上互勉共进。 本书在写作的过程中,得到了很多朋友及同事的帮助和支持,在此表示衷心感谢! 感谢久邦数码大数据团队的同事们。在两年的工作中,笔者得到了很多同事的指导、支持和帮助,尤其感谢杨树清、周小平、梁宁、刘程辉、刘晓宏、方佳武、于善龙、王蒙、叶月媚、廖宏、谭钊承、吴梦玲、邹桂芳、曹越等。 感谢电子工业出版社的付睿编辑,她不仅积极策划和推动本书的出版,而且在写作过程中还给出了极为详细的改进意见。感谢电子工业出版社的李云静编辑为本书做了非常辛苦和专业的编辑工作。感谢我的父母和妻子,有了你们的帮助和支持,我才有时间和精力去完成写作。 谨以此书献给热爱大数据技术的朋友们!
【书摘与插画】

返回顶部