本书系统、全面、深入地解析了SparkMLlib机器学习的相关知识,着力于探索分布式机器学习的底层实现。
以源码为基础,兼顾算法、理论与实战,帮助读者在实际工作中进行MLlib的应用开发和定制开发。 适合大数据、Spark、数据挖掘领域的从业人员阅读。《Spark MLlib机器学习:算法、源码及实战详解》以Spark 1.4.1版本源码为切入点,全面并且深入地解析Spark MLlib模块,着力于探索分布式机器学习的底层实现。
《Spark MLlib机器学习:算法、源码及实战详解》中本着循序渐进的原则,首先解析MLlib的底层实现基础:数据操作及矩阵向量计算操作,该部分是MLlib实现的基础;接着对各个机器学习算法的理论知识进行讲解,并且解析机器学习算法如何在MLlib中实现分布式计算;然后对MLlib源码进行详细的讲解;最后进行MLlib实例的讲解。相信通过《Spark MLlib机器学习:算法、源码及实战详解》的学习,读者可全面掌握Spark MLlib机器学习,能够进行MLlib实战、MLlib定制开发等。 《Spark MLlib机器学习:算法、源码及实战详解》适合大数据、Spark、数据挖掘领域的从业人员阅读,同时也为Spark开发者和大数据爱好者展现了分布式机器学习的原理和实现细节。黄美灵,久邦数码高级数据挖掘工程师,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
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科,其中大部分理论来源于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集群运维和第2章数据操作的实例部分工作,刘晓宏、方佳武、于善龙参与了全书的实例部分工作。
本书在写作的过程中,得到了很多朋友及同事的帮助和支持,在此表示衷心感谢!
感谢久邦数码大数据团队的同事们。在两年的工作中,笔者得到了很多同事的指导、支持和帮助,尤其感谢杨树清、周小平、梁宁、刘程辉、刘晓宏、方佳武、于善龙、王蒙、叶月媚、廖宏、谭钊承、吴梦玲、邹桂芳、曹越等。
感谢电子工业出版社的付睿编辑,她不仅积极策划和推动本书的出版,而且在写作过程中还给出了极为详细的改进意见。感谢电子工业出版社的李云静编辑为本书做了非常辛苦和专业的编辑工作。
感谢我的父母和妻子,有了你们的帮助和支持,我才有时间和精力去完成写作。
谨以此书献给热爱大数据技术的朋友们!
我是一名对大数据技术和机器学习应用都非常有兴趣的工程师,日常工作中会接触到一些需要处理海量数据的场景,而Spark MLlib正是解决这类问题的有力工具。我看到这本书的标题,立刻联想到它应该能够很好地连接起Spark的分布式计算能力与机器学习算法的强大威力。我最看重的是“实战”部分,希望书中能够提供一些贴近实际业务场景的案例,例如如何利用Spark MLlib构建一个精准的推荐系统,或者如何进行大规模的用户行为分析,亦或是如何用它来优化工业生产中的预测模型。我期待书中能够详细介绍这些案例的完整流程,包括数据准备、特征工程、模型训练、评估和部署等环节,并且能够给出具体的代码实现,让我能够一步步跟着学习和实践。如果书中能够强调如何有效地利用Spark的分布式特性来加速机器学习模型的训练和推理,以及如何处理和管理大规模数据集,那将极大地提升我对这本书的满意度。我希望这本书能够帮助我将理论知识转化为实际生产力。
评分作为一名正在学习机器学习的研究生,我一直在寻找一本能够系统性地介绍Spark MLlib的教材。我对这本书的第一个印象是它的“算法”这个关键词,这表明它不会仅仅停留在API的使用层面,而是会对底层的机器学习算法进行深入的讲解。我希望书中能够对Spark MLlib中包含的各种算法,比如分类、回归、聚类、降维等,都进行清晰的数学推导和原理阐述。理解算法背后的数学原理,对于我进行模型选择、参数调优,甚至是在遇到新问题时设计新的算法模型都至关重要。我特别希望能够看到书中对一些经典算法,如逻辑回归、支持向量机、决策树、K-Means等,进行详细的剖析,包括它们的优缺点、适用场景以及在Spark MLlib中的具体实现方式。如果书中还能涉及到一些更高级的算法,比如深度学习在Spark MLlib上的应用,那将更加令人兴奋。总而言之,我希望这本书能够为我打下坚实的理论基础,让我能够从更深的层次去理解和运用Spark MLlib。
评分拿到这本《Spark MLlib机器学习:算法、源码及实战详解》之后,我第一眼就被它严谨的标题所吸引。作为一名希望深入了解Spark MLlib内部机制的开发者,我一直觉得,仅仅停留在API层面的学习是不够的,理解算法的实现细节以及它们在分布式环境下的运作方式,才是掌握这项技术的核心。所以我非常期待书中能够对Spark MLlib中一些关键算法的源码进行剖析,例如数据如何在分布式节点上传播,计算是如何并行进行的,以及最终结果是如何聚合的。这种深度的讲解,对于优化模型性能、理解潜在的瓶颈以及进行底层的二次开发都至关重要。我希望这本书能够像一本“内幕揭秘”一样,带我深入到Spark MLlib的“心脏”,了解它的运行机制。同时,如果书中能够结合源码,对MLlib中各个模块的API进行更细致的解释,并且提供一些高级用法的技巧,那将对我非常有启发。我希望这本书能够让我不仅仅成为MLlib的使用者,更能成为它的理解者和优化者。
评分这本书的封面设计给我的第一印象是专业且有深度,封面上“Spark MLlib”和“机器学习”的字样清晰醒目,表明了其核心技术和领域。整体色调沉稳,有一种技术书籍特有的严谨感,让我对内容充满了期待。拿到书后,厚度适中,排版清晰,纸张的触感也很好,阅读起来会比较舒适。我尤其关注书中的案例部分,希望能够通过实际操作来巩固理论知识,并且最好是针对一些实际应用场景,比如推荐系统、用户画像分析、文本分类等等,这样才能更好地理解算法的落地过程。同时,如果书中能够对Spark MLlib的API进行详细的讲解,并且给出一些常用的函数的使用示例,那将对我学习和使用Spark MLlib非常有帮助。我一直觉得,学习机器学习不仅仅是理解算法原理,更重要的是能够将这些算法应用到实际问题中去解决,所以,本书在源码层面是否有深入的剖析,或者对算法的实现细节有更细致的介绍,对我来说也是一个重要的考量点。如果能结合一些数据科学的流程,比如数据预处理、特征工程、模型评估等步骤,并以Spark MLlib作为工具来实现,那就更完美了。我对这本书的期望很高,希望它能成为我学习Spark MLlib道路上的一本得力助手。
评分坦白说,一开始是被这本书的“源码及实战详解”几个字吸引了。我一直觉得,理论知识固然重要,但如果能看到算法在代码层面是如何实现的,理解其底层逻辑,那才是真正掌握了。尤其是对于Spark MLlib这样的大数据机器学习框架,它的源码可能涉及很多底层的优化和分布式计算的原理,能够深入解析这些内容,对于我理解其性能和调优方向非常有价值。我希望这本书不仅仅是简单地介绍MLlib的API,而是能带领我走进源码的世界,了解每个算法的具体实现,比如在分布式环境下,它们是如何进行数据分片、计算、聚合的。同时,实战部分如果能够涵盖一些具有代表性的案例,并且这些案例的源码实现也一并提供,让我能够亲手运行、调试,甚至在此基础上进行二次开发,那就太棒了。我不太喜欢那种“纸上谈兵”的书籍,希望这本书能够真正地做到“授人以渔”,让我不仅学会“怎么用”,更能理解“为什么这么用”,并且知道“如何做得更好”。期待书中能够有精彩的代码示例和细致的解释,让我能够真正地“玩转”Spark MLlib。
评分好,,,,,,,,,,,,,
评分送货速度很快,质量不错。棒棒哒。
评分应该是一本spark mllib api的详细解释加应用的指导书 节省了很多自己读api走弯路的时间
评分一次性买了4本书,相信京东,现在已着手看了,希望里面内容能对自己有很大帮助!
评分一颗心要放在哪里才不会痛?一首歌要听多少遍才不会觉得孤单?一个人要思念多久才能忘记?一个人的时候我总是会被寂寞与悲伤重重包围,那些被尘封的记忆和往事都会一一浮现在眼前。
评分好多书啊好多好多好多好好
评分有点深度 看起来需要费些时间 印刷质量送货速度很棒
评分此用户未填写评价内容
评分物流快,服务好
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有