编辑推荐
Apache Spark是一个分布式计算框架,专为满足低延迟任务和内存数据存储的需求而优化。现有并行计算框架中,鲜有能兼顾速度、可扩展性、内存处理以及容错性,同时还能简化编程,提供灵活、表达力丰富的强大API的,Apache Spark就是这样一个难得的框架。
本书介绍了Spark的基础知识,从利用Spark API来载入和处理数据,到将数据作为多种机器学习模型的输入。此外还通过详细的例子和现实应用讲解了常见的机器学习模型,包括推荐系统、分类、回归、聚类和降维。另外还介绍了一些高阶内容,如大规模文本数据的处理,以及Spark Streaming下的在线机器学习和模型评估方法。
如果你是一名Scala、Java或Python开发者,对机器学习和数据分析感兴趣,并想借助Spark框架来实现常见机器学习技术的大规模应用,那么本书便是为你而写。有Spark的基础知识,但并不要求你有实践经验。
通过学习本书,你将能够:
用Scala、Java或Python语言编写你的一个Spark程序;
获取公开的机器学习数据集,以及使用Spark对数据进行载入、处理、清理和转换;
借助Spark机器学习库,利用协同过滤、分类、回归、聚类和降维等常见的机器学习模型来编写程序;
编写Spark函数来评估你的机器学习模型的性能;
了解大规模文本数据的处理方法,包括特征提取和将文本数据作为机器学习模型的输入;
探索在线学习方法,利用Spark Streaming来进行在线学习和模型评估。
内容简介
《Spark机器学习》每章都设计了案例研究,以机器学习算法为主线,结合实例探讨了Spark 的实际应用。书中没有让人抓狂的数据公式,而是从准备和正确认识数据开始讲起,全面涵盖了推荐系统、回归、聚类、降维等经典的机器学习算法及其实际应用。
作者简介
Nick Pentreath是Graphflow公司联合创始人。Graphflow是一家大数据和机器学习公司,专注于以用户为中心的推荐系统和客户服务智能化技术。Nick拥有金融市场、机器学习和软件开发背景,曾任职于高盛集团,之后去在线广告营销创业公司Cognitive Match Limited(伦敦)担任研究科学家,后又去非洲更大的社交网络Mxit领导数据科学与分析团队。Nick是Apache Spark项目管理委员会成员之一。
内页插图
目录
第1 章 Spark 的环境搭建与运行 1
1.1 Spark 的本地安装与配置 2
1.2 Spark 集群 3
1.3 Spark 编程模型 4
1.3.1 SparkContext类与SparkConf类 4
1.3.2 Spark shell 5
1.3.3 弹性分布式数据集 6
1.3.4 广播变量和累加器 10
1.4 Spark Scala 编程入门 11
1.5 Spark Java 编程入门 14
1.6 Spark Python 编程入门 17
1.7 在Amazon EC2 上运行Spark 18
1.8 小结 23
第2 章 设计机器学习系统 24
2.1 MovieStream 介绍 24
2.2 机器学习系统商业用例 25
2.2.1 个性化 26
2.2.2 目标营销和客户细分 26
2.2.3 预测建模与分析 26
2.3 机器学习模型的种类 27
2.4 数据驱动的机器学习系统的组成 27
2.4.1 数据获取与存储 28
2.4.2 数据清理与转换 28
2.4.3 模型训练与测试回路 29
2.4.4 模型部署与整合 30
2.4.5 模型监控与反馈 30
2.4.6 批处理或实时方案的选择 31
2.5 机器学习系统架构 31
2.6 小结 33
第3 章 Spark 上数据的获取、处理与准备 34
3.1 获取公开数据集 35
3.2 探索与可视化数据 37
3.2.1 探索用户数据 38
3.2.2 探索电影数据 41
3.2.3 探索评级数据 43
3.3 处理与转换数据 46
3.4 从数据中提取有用特征 48
3.4.1 数值特征 48
3.4.2 类别特征 49
3.4.3 派生特征 50
3.4.4 文本特征 51
3.4.5 正则化特征 55
3.4.6 用软件包提取特征 56
3.5 小结 57
第4 章 构建基于Spark 的推荐引擎 58
4.1 推荐模型的分类 59
4.1.1 基于内容的过滤 59
4.1.2 协同过滤 59
4.1.3 矩阵分解 60
4.2 提取有效特征 64
4.3 训练推荐模型67
4.3.1 使用MovieLens 100k 数据集训练模型 67
4.3.2 使用隐式反馈数据训练模型 68
4.4 使用推荐模型 69
4.4.1 用户推荐 69
4.4.2 物品推荐 72
4.5 推荐模型效果的评估 75
4.5.1 均方差 75
4.5.2 K 值平均准确率 77
4.5.3 使用MLlib 内置的评估函数 81
4.6 小结 82
第5 章 Spark 构建分类模型 83
5.1 分类模型的种类 85
5.1.1 线性模型 85
5.1.2 朴素贝叶斯模型 89
5.1.3 决策树 90
5.2 从数据中抽取合适的特征 91
5.3 训练分类模型 93
5.4 使用分类模型 95
5.5 评估分类模型的性能 96
5.5.1 预测的正确率和错误率 96
5.5.2 准确率和召回率 97
5.5.3 ROC 曲线和AUC 99
5.6 改进模型性能以及参数调优 101
5.6.1 特征标准化 101
5.6.2 其他特征 104
5.6.3 使用正确的数据格式 106
5.6.4 模型参数调优 107
5.7 小结 115
第6 章 Spark 构建回归模型 116
6.1 回归模型的种类 116
6.1.1 最小二乘回归 117
6.1.2 决策树回归 117
6.2 从数据中抽取合适的特征 118
6.3 回归模型的训练和应用 123
6.4 评估回归模型的性能 125
6.4.1 均方误差和均方根误差 125
6.4.2 平均绝对误差 126
6.4.3 均方根对数误差 126
6.4.4 R-平方系数 126
6.4.5 计算不同度量下的性能 126
6.5 改进模型性能和参数调优 127
6.5.1 变换目标变量 128
6.5.2 模型参数调优 132
6.6 小结 140
第7 章 Spark 构建聚类模型 141
7.1 聚类模型的类型 142
7.1.1 K-均值聚类 142
7.1.2 混合模型 146
7.1.3 层次聚类 146
7.2 从数据中提取正确的特征 146
7.3 训练聚类模型 150
7.4 使用聚类模型进行预测 151
7.5 评估聚类模型的性能 155
7.5.1 内部评价指标 155
7.5.2 外部评价指标 156
7.5.3 在MovieLens 数据集计算性能 156
7.6 聚类模型参数调优 156
7.7 小结 158
第8 章 Spark 应用于数据降维 159
8.1 降维方法的种类 160
8.1.1 主成分分析 160
8.1.2 奇异值分解 160
8.1.3 和矩阵分解的关系 161
8.1.4 聚类作为降维的方法 161
8.2 从数据中抽取合适的特征 162
8.3 训练降维模型 169
8.4 使用降维模型 172
8.4.1 在LFW数据集上使用PCA投影数据 172
8.4.2 PCA 和SVD 模型的关系 173
8.5 评价降维模型 174
8.6 小结 176
第9 章 Spark 高级文本处理技术 177
9.1 处理文本数据有什么特别之处 177
9.2 从数据中抽取合适的特征 177
9.2.1 短语加权表示 178
9.2.2 特征哈希 179
9.2.3 从20 新闻组数据集中提取TF-IDF 特征 180
9.3 使用TF-IDF 模型 192
9.3.1 20 Newsgroups 数据集的文本相似度和TF-IDF 特征 192
9.3.2 基于20 Newsgroups 数据集使用TF-IDF 训练文本分类器 194
9.4 评估文本处理技术的作用 196
9.5 Word2Vec 模型 197
9.6 小结 200
第10 章 Spark Streaming 在实时机器学习上的应用 201
10.1 在线学习 201
10.2 流处理 202
10.2.1 Spark Streaming 介绍 202
10.2.2 使用Spark Streaming 缓存和容错 205
10.3 创建Spark Streaming 应用 206
10.3.1 消息生成端 207
10.3.2 创建简单的流处理程序 209
10.3.3 流式分析 211
10.3.4 有状态的流计算213
10.4 使用Spark Streaming 进行在线学习 215
10.4.1 流回归 215
10.4.2 一个简单的流回归程序 216
10.4.3 流K-均值 220
10.5 在线模型评估 221
10.6 小结 224
前言/序言
《数据科学家的炼金术:从海量数据中提取智能》 在这信息爆炸的时代,数据已成为驱动创新的核心燃料。然而,海量原始数据本身并无价值,唯有经过提炼、分析,从中挖掘出有价值的洞见,才能转化为驱动决策、优化流程、甚至创造全新商业模式的智能。本书并非一本晦涩的技术手册,而是一本关于“数据科学炼金术”的探索指南,旨在为那些渴望驾驭数据力量,将其转化为宝贵财富的读者提供一套系统而实用的方法论。 我们生活在一个被数据包围的时代。每一次在线浏览、每一次移动支付、每一次传感器记录,都在源源不断地产生着巨量的数据。这些数据如同未经雕琢的矿石,蕴藏着金矿般的潜力,但如何将这些“矿石”转化为闪耀的“黄金”,则是数据科学家的核心任务。本书将带领您穿越数据分析的各个环节,从数据的采集、清洗、探索性分析,到建模、评估、部署,为您揭示数据科学的完整流程,如同炼金术士般,一步步将粗糙的数据转化为精炼的智能。 第一部分:数据之源与初炼——理解数据的本质与准备 在炼金术中,原材料的纯度和质量至关重要。数据亦然。本书的开篇,将深入探讨数据的来源与多样性。我们将解析结构化数据(如数据库表格)与非结构化数据(如文本、图像、音频)的差异,理解它们各自的特点和挑战。您将学会如何从各种数据源(APIs、数据库、文件系统、网络爬虫)高效地获取数据,并掌握常用的数据采集工具和技术。 数据的“不完美”是普遍现象,正如矿石中夹杂着杂质。数据清洗是数据科学流程中至关重要且耗时的一步。本书将详细讲解如何识别和处理缺失值、异常值、重复数据和不一致的数据格式。我们将介绍多种数据填充、平滑、去噪和转换的技术,并演示如何利用Python等语言的强大库(如Pandas)来自动化这一过程。您将学会构建健壮的数据清洗管道,确保后续分析的准确性。 探索性数据分析(EDA)是理解数据、发现模式和形成假设的关键。如同炼金术士在实验前仔细观察矿石的纹理与光泽,EDA帮助我们“看透”数据。本书将重点介绍各种可视化技术(散点图、直方图、箱线图、热力图等)的应用,通过直观的图形揭示数据之间的关系、分布和趋势。您将学习如何运用统计摘要、相关性分析和维度降低技术(如主成分分析)来提炼数据的关键特征,从而为建模提供坚实的基础。 第二部分:模型的锻造与提纯——从数据到洞察的转化 当数据准备就绪,我们便进入了“锻造”模型的阶段。本书将深入浅出地介绍各类机器学习算法的核心原理,并侧重于它们在实际应用中的落地。我们不会回避算法的数学基础,但更强调其直观理解和工程实现。 监督学习的艺术: 分类的智慧: 您将学习如何构建模型来区分事物,例如判断一封邮件是否为垃圾邮件,识别一张图片中的物体,或者预测客户是否会流失。我们将详细讲解逻辑回归、支持向量机(SVM)、决策树、随机森林以及梯度提升模型(如XGBoost、LightGBM)的工作原理、优缺点和适用场景。您将掌握如何处理类别不平衡问题,以及如何进行特征工程来提升分类模型的性能。 回归的预测: 学习如何预测连续的数值,例如预测房价、股票价格或商品销量。本书将介绍线性回归、多项式回归、岭回归和Lasso回归等经典模型,并探讨如何处理多重共线性、非线性关系以及构建时间序列预测模型。 无监督学习的探索: 聚类的奥秘: 探索隐藏在数据中的自然分组。您将学习K-Means、DBSCAN等聚类算法,了解如何发现客户细分、用户群体或者数据中的异常模式。 降维的提炼: 将高维数据“压缩”成更易于理解和处理的低维表示,如主成分分析(PCA)和t-SNE。这对于数据可视化、噪声去除和特征提取至关重要。 模型的评估与优化: 仅仅建立模型是不够的,如何知道模型的“成色”如何?本书将详细介绍模型评估的各项指标(准确率、精确率、召回率、F1分数、ROC曲线、AUC、均方误差、R²等),并讲解交叉验证、网格搜索等超参数调优技术,确保模型具有良好的泛化能力,避免过拟合和欠拟合。 第三部分:智能的升华与应用——将洞察转化为价值 炼金术的终极目标是将卑金属转化为贵金属。数据科学的目标是将原始数据转化为有实际应用价值的智能。 特征工程的妙手: 特征是模型的“骨架”。本书将强调特征工程的重要性,教您如何从原始数据中提取、组合、变换出更有信息量的特征,这是提升模型性能的关键。您将学习如何创建交互特征、多项式特征,以及如何利用领域知识来构建有针对性的特征。 集成学习的合力: “三个臭皮匠,赛过诸葛亮”。集成学习将多个模型的预测结果结合起来,通常能获得比单一模型更优越的性能。本书将介绍Bagging(如随机森林)和Boosting(如AdaBoost、GBDT、XGBoost)等集成方法,以及Stacking等更复杂的集成策略。 模型部署与监控: 模型的价值体现在实际应用中。本书将简要介绍如何将训练好的模型部署到生产环境中,使其能够对外提供预测服务。同时,我们将探讨模型部署后的监控策略,以确保模型在不断变化的数据环境中保持有效性。 本书的特色与价值: 实战导向: 全书贯穿丰富的实际案例和代码示例(主要使用Python生态,如Scikit-learn、Pandas、NumPy等),让您边学边练,迅速掌握数据科学的实践技能。 循序渐进: 内容组织逻辑清晰,从基础概念到高级技术,层层递进,适合不同背景的读者,无论是初学者还是有一定经验的从业者,都能从中获益。 理论与实践的平衡: 在讲解算法原理的同时,也充分强调其实际应用中的注意事项和技巧,帮助读者理解“为什么”以及“如何做”。 批判性思维的培养: 鼓励读者独立思考,不盲目套用算法,而是根据具体问题选择最合适的方法,并能对模型结果进行审慎的解读。 《数据科学家的炼金术》将不仅仅是教您如何使用工具,更是培养您一种数据驱动的思维方式。它将为您揭示如何从纷繁复杂的数据中提炼出智慧的火花,如何将这些火花点燃,照亮决策的道路,驱动业务的增长,最终在数据的海洋中,创造出属于您自己的“黄金”。准备好踏上这场激动人心的“炼金”之旅了吗?