本书重点
学习Spark 3.0 ML模块的机器学习算法,用于大数据分析与挖掘。
内容简介
Spark作为新兴的、应用范围广泛的大数据处理开源框架,吸引了大量的大数据分析与挖掘从业人员进行相关内容的学习与开发,其中ML是Spark 3.0机器学习框架使用的核心。
本书用于Spark 3.0 ML大数据分析与挖掘入门,配套示例源码、PPT课件、数据集、思维导图、开发环境和作者答疑服务。
本书共分13章,从Spark 3.0大数据分析概述、基础安装和配置开始,依次介绍ML的DataFrame、ML的基本概念,以及协同过滤、线性回归、分类、决策树与随机森林、聚类、关联规则、数据降维、特征提取和转换等数据处理方法;最后通过经典的鸢尾花分析实例,回顾前面的学习内容,实现了一个完整的数据分析与挖掘过程。
适合读者
本书采取实例和理论相结合的方式,讲解细致直观,示例丰富,适合Spark 3.0机器学习初学者、大数据分析和挖掘人员,也适合高等院校和培训机构人工智能与大数据相关专业的师生教学参考。
作者简介
王晓华,计算机专业讲师,研究方向为云计算、大数据与人工智能。著有《Spark MLlib机器学习实践》《TensorFlow深度学习应用实践》《OpenCV+TensorFlow深度学习与计算机视觉实战》《TensorFlow知识图谱实战》《TensorFlow人脸识别实战》《TensorFlow语音识别实战》《TensorFlow 2.0卷积神经网络实战》《Keras实战:基于TensorFlow2.2的深度学习实践》《TensorFlow深度学习从零开始学》《深度学习的数学原理与实现》等图书。
前言
Spark在英文中是火花的意思,创作者希望能够像火花一样照亮大数据时代的数据挖掘。大数据时代是一个充满机会和挑战的时代,就像一座未经开发的金山,任何人都有资格去获得其中的宝藏,仅仅需要的就是有一把得心应手的工具—ML。
本书目的
本书的主要目的是介绍如何使用ML进行数据挖掘。ML是Spark 3.0中最核心的部分之一,是Spark 3.0机器学习库。经过无数创造者卓越的工作,ML已经成为一个优雅的、可以运行在分布式集群上的数据挖掘工具。
ML充分利用了现有数据挖掘的技术与手段,将隐藏在数据中不为人知但又包含价值的信息提取出来,并通过相应的计算机程序,无须人工干预,自动在系统中进行计算,以发现其中的规律。
通常,数据挖掘的难点和重点在于两个方面,分别是算法的学习和程序的设计。有的还需要读者有些相应的背景知识,例如统计学、人工智能、网络技术等。本书在写作上以工程实践为主,重点介绍其与数据挖掘密切相关的算法与概念,并且使用浅显易懂的语言将其中涉及的算法进行概括性描述,从而帮助读者更好地了解和掌握数据挖掘的原理。
笔者在写作本书的时候有一个基本原则—这本书应该体现工程实践与理论之间的平衡。数据挖掘的目的是为了解决现实中的问题,并提供一个结果,而不是去讨论比较哪个算法更高深、看起来更能吓唬人。本书对算法的基本理论和算法做了描述,如果有读者觉得有点难,可以找相应的教材深入学习一下,相信大多数读者都能理解相关的内容。
本书内容
本书主要介绍Spark 3.0的ML数据挖掘算法,内容分成三部分:第一部分(第1~4章)是ML、DataFrame的基本概念和用法,以及管道技术和一些数据挖掘的基本数理统计知识;第二部分(第5~12章)是ML算法的应用,包括协同过滤、线性回归、分类、决策树与随机森林、聚类、关联规则、数据降维、特征提取和转换等;第三部分(第13章)通过一个经典的鸢尾花分析实例,向读者演示如何使用ML来进行数据挖掘工作。
本书特点
? 本书尽量避免纯粹的理论知识介绍和高深技术研讨,完全从应用实践出发,用最简单、典型的示例引申出核心知识,最后指出通往“高精尖”进一步深入学习的道路。
? 本书全面介绍ML涉及的数据挖掘的基本结构和上层程序设计,借此能够系统地看到ML的全貌,使读者在学习过程中不至于迷失方向。
? 本书在写作上浅显易懂,没有深奥的数学知识,采用较为简洁的形式描述应用的理论知识,让读者轻松愉悦地掌握相关内容。
? 本书旨在引导读者进行更多技术上的创新,每章都会用示例描述的形式帮助读者更好地学习内容。
? 本书代码遵循重构原理,避免代码污染,引导读者写出优秀、简洁、可维护的代码。
? 本书所有数据格式均为DataFrame类型,并且使用管道技术执行机器学习算法。
源码、PPT课件、思维导图、数据集与开发环境下载
本书配套源码、PPT课件、思维导图、数据集与开发环境,需要使用微信扫描右侧二维码下载,可按提示把链接转发到自己的邮箱中下载。如果有疑问,请发邮件至booksaga@163.com,邮件主题为“Spark 3.0大数据分析与挖掘:基于机器学习”。
本书读者
? Spark大数据分析与挖掘初学者
? 机器学习相关从业人员
? Spark 3.0机器学习初学者
? 高等院校和培训机构数据分析和挖掘专业的师生
作者与鸣谢
本书基础内容由王晓华创作,Spark 3.0版本的更新和测试工作由罗凯靖完成。感谢本书出版过程中的所有参与人员。
作 者
2021年10月
目录
目 录
第1章 Spark大数据分析概述 1
1.1 大数据时代 1
1.2 大数据分析的要素 2
1.3 简单、优雅、有效—这就是Spark 3
1.4 Spark 3.0核心—ML 4
1.5 星星之火,可以燎原 6
1.6 小结 6
第2章 Spark 3.0安装和开发环境配置 7
2.1 Windows 10单机模式下安装和配置Spark 7
2.1.1 Windows 10安装Java 8 7
2.1.2 Windows 10安装Scala 2.12.10 10
2.1.3 Intellij IDEA下载和安装 13
2.1.4 Intellij IDEA中Scala插件的安装 13
2.1.5 HelloJava—使用Intellij IDEA创建Java程序 16
2.1.6 HelloScala—使用Intellij IDEA创建Scala程序 19
2.1.7 最后一脚—Spark 3.0单机版安装 22
2.2 经典的wordCount 25
2.2.1 Spark 3.0实现wordCount 25
2.2.2 MapReduce实现wordCount 27
2.3 小结 30
第3章 DataFrame详解 31
3.1 DataFrame是什么 31
3.1.1 DataFrame与RDD的关系 31
3.1.2 DataFrame理解及特性 32
3.1.3 DataFrame与DataSet的区别 34
3.1.4 DataFrame的缺陷 34
3.2 DataFrame工作原理 35
3.2.1 DataFrame工作原理图 35
3.2.2 宽依赖与窄依赖 35
3.3 DataFrame应用API和操作详解 37
3.3.1 创建 DataFrame 37
3.3.2 提前计算的cache方法 39
3.3.3 用于列筛选的select和selectExpr方法 41
3.3.4 DataFrame的收集行collect方法 42
3.3.5 DataFrame计算行数count方法 43
3.3.6 DataFrame限制输出limit方法 44
3.3.7 除去数据集中重复项的distinct方法 45
3.3.8 过滤数据的filter方法 46
3.3.9 以整体数据为单位操作数据的flatMap方法 46
3.3.10 以单个数据为目标进行操作的map方法 47
3.3.11 分组数据的groupBy和agg方法 48
3.3.12 删除数据集中某列的drop方法 49
3.3.13 随机采样方法和随机划分方法 49
3.3.14 排序类型操作的sort和orderBy方法 51
3.3.15 DataFrame和Dataset以及RDD之间的相互转换 52
3.4 小结 53
第4章 ML基本概念 54
4.1 ML基本数据类型及管道技术 54
4.1.1 支持多种数据类型 55
4.1.2 管道技术 55
4.1.3 管道中的主要概念 55
4.1.4 管道的工作流程 56
4.1.5 Pipeline的使用 57
4.2 ML数理统计基本概念 61
4.2.1 基本统计量 62
4.2.2 统计量基本数据 62
4.2.3 距离计算 64
4.2.4 两组数据相关系数计算 65
4.2.5 分层抽样 68
4.2.6 假设检验 69
4.2.7 随机数 71
4.3 小结 72
第5章 协同过滤算法 73
5.1 协同过滤 73
5.1.1 协同过滤概述 73
5.1.2 基于用户的推荐UserCF 74
5.1.3 基于物品的推荐ItemCF 75
5.1.4 协同过滤算法的不足 76
5.2 相似度度量 76
5.2.1 基于欧几里得距离的相似度计算 76
5.2.2 基于余弦角度的相似度计算 77
5.2.3 欧几里得相似度与余弦相似度的比较 78
5.2.4 基于余弦相似度的用户相似度计算示例 78
5.3 交替最小二乘法 82
5.3.1 最小二乘法详解 82
5.3.2 ML中交替最小二乘法详解 83
5.3.3 ALS算法示例 83
5.4 小结 88
第6章 线性回归理论与实战 89
6.1 随机梯度下降算法详解 90
6.1.1 道士下山的故事 90
6.1.2 随机梯度下降算法的理论基础 91
6.1.3 随机梯度下降算法实战 92
6.2 回归的过拟合 93
6.2.1 过拟合产生的原因 93
6.2.2 Lasso回归、岭回归与ElasticNet回归 94
6.3 ML线性回归示例 95
6.3.1 线性回归程序 95
6.3.2 线性回归:广义线性回归 98
6.4 小结 99
第7章 分类实战 100
7.1 逻辑回归详解 100
7.1.1 逻辑回归不是回归算法 101
7.1.2 逻辑回归的数学基础 101
7.1.3 ML逻辑回归二分类示例 102
7.1.4 ML逻辑回归多分类示例 105
7.1.5 ML逻辑回归汇总提取 108
7.1.6 ML逻辑回归处理文本文档 109
7.2 线性支持向量机详解 109
7.2.1 三角还是圆 110
7.2.2 支持向量机的数学基础 111
7.2.3 ML支持向量机示例 112
7.2.4 ML支持向量机进行分类预测 113
7.3 朴素贝叶斯分类器详解 115
7.3.1 穿裤子的男生or女生 115
7.3.2 贝叶斯定理的数学基础和意义 116
7.3.3 朴素贝叶斯定理 117
7.3.4 ML朴素贝叶斯使用示例 117
7.3.5 ML朴素贝叶斯中文文本分类 120
7.4 小结 123
第8章 决策树与随机森林 124
8.1 决策树详解 125
8.1.1 水晶球的秘密 125
8.1.2 决策树的算法基础:信息熵 126
8.1.3 决策树的算法基础—ID3算法 127
8.1.4 ML中决策树的构建 128
8.1.5 ML中决策树示例 130
8.2 随机森林与梯度提升算法 132
8.3 小结 138
第9章 聚类 139
9.1 聚类与分类 139
9.1.1 什么是分类 139
9.1.2 什么是聚类 140
9.2 K-means算法 140
9.2.1 K-means算法及其算法步骤 141
9.2.2 ML中K-means算法示例 142
9.2.3 K-means算法中细节的讨论 144
9.3 高斯混合聚类 144
9.3.1 从高斯分布聚类起步 145
9.3.2 混合高斯模型 146
9.3.3 ML高斯混合模型使用示例 147
9.4 快速迭代聚类 148
9.4.1 快速迭代聚类理论基础 148
9.4.2 ML快速迭代聚类使用示例 149
9.5 小结 150
第10章 关联规则 151
10.1 Apriori频繁项集算法 151
10.1.1 “啤酒与尿布”的经典故事 151
10.1.2 经典的Apriori算法 152
10.1.3 Apriori算法示例 154
10.2 FP-growth算法 155
10.2.1 Apriori算法的局限性 155
10.2.2 FP-growth算法 155
10.2.3 ML中的FP树算法示例 158
10.3 小结 160
第11章 数据降维 161
11.1 奇异值分解 161
11.1.1 行矩阵详解 162
11.1.2 奇异值分解算法基础 162
11.1.3 ML中奇异值分解示例 163
11.2 主成分分析 164
11.2.1 主成分分析的定义 165
11.2.2 主成分分析的数学基础 165
11.2.3 ML中主成分分析示例 166
11.3 小结 167
第12章 特征提取和转换 169
12.1 TF-IDF 169
12.1.1 如何查找想要的新闻 170
12.1.2 TF-IDF算法的数学计算 170
12.1.3 ML中TF-IDF示例 171
12.2 词向量化Word2Vec 173
12.2.1 词向量化基础 173
12.2.2 ML中词向量化使用示例 174
12.3 基于卡方检验的特征选择 176
12.3.1 “吃货”的苦恼 176
12.3.2 ML中基于卡方检验的特征选择示例 177
12.4 小结 179
第13章 ML实战演练—鸢尾花分析 180
13.1 建模说明 180
13.1.1 数据的描述与分析目标 180
13.1.2 建模说明 182
13.2 数据预处理和分析 185
13.2.1 微观分析—均值与方差的对比分析 185
13.2.2 宏观分析—不同种类特性的长度计算 189
13.2.3 去除重复项—相关系数的确定 192
13.3 长与宽之间的关系—数据集的回归分析 196
13.3.1 使用线性回归分析长与宽之间的关系 196
13.3.2 使用逻辑回归分析长与宽之间的关系 198
13.4 使用分类和聚类对鸢尾花数据集进行处理 201
13.4.1 使用聚类分析对数据集进行聚类处理 202
13.4.2 使用分类分析对数据集进行分类处理 206
13.5 最终的判定—决策树测试 208
13.5.1 决定数据集归类的方法之一—决策树 208
13.5.2 决定数据集归类的方法之二—随机森林 211
13.6 小结 213
正版购买
《Spark 3.0大数据分析与挖掘:基于机器学习(大数据技术丛书)》(王晓华,罗凯靖)【摘要 书评 试读】- 京东图书 (jd.com)