描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787519849498
使用Python进行无监督学习实践,如何编写利用无标签数据的机器学习解决方案。
很多业内专家认为无监督学习是人工智能的下一个前沿,可能把握着进入通用人工智能的钥匙。因为世界上绝大部分数据是无标签的,传统的监督学习不能使用到它们。无监督学习通过另外的方法可以使用到这些无标签的数据集从而发现数据深层的有价值的数据模型,这些模型可能是人类自身也无法发现的。
作者Ankur Patel通过两个简单的、可应用于生产的Python框架向您展示了如何应用无监督学习:Scikit-learn和包含Keras的TensorFlow。通过代码和亲身操作的实例,数据科学家将发现数据中难以发现的模型:检测数据中的异常、进行自动特征工程和选择、生成合成数据集等,并获得更深层次的业务洞察力。您所需要的只是一些编程和机器学习经验就可以开始学习本书。
“研究人员、工程师和学生将会欣赏这本书,书中充满了实用的无监督学习技术、通俗易懂并非常实用的Python示例,学习起来快速并且有效。” ——Sarah Nagy
Edson资深数据科学家
本书主要内容有:比较不同机器学习方法的优缺点、监督学习、无监督学习和强化学习。从头到尾的建立和管理机器学习项目。建立一个异常检测系统,以捕捉信用卡交易的欺诈。将用户集群到不同的同构组中。执行半监督学习。使用受限制玻尔兹曼机开发电影推荐系统。使用生成对抗网络生成合成图像。
目录
前言 1
第一部分 无监督学习基础
第1 章 机器学习生态系统中的无监督学习 15
机器学习基本术语 15
基于规则(Rules-Based) 与机器学习 17
监督学习与无监督学习 17
监督学习的优缺点 18
无监督学习的优缺点 19
使用无监督学习改进机器学习的解决方案 20
了解监督学习算法 23
线性算法 25
基于邻域的算法 26
基于树的算法 28
支持向量机 29
神经网络 30
了解无监督学习算法 30
降维 30
聚类 33
特征提取 35
无监督深度学习 36
使用无监督学习解决序列数据问题 38
利用无监督学习的强化学习 39
半监督学习 40
无监督学习的成功应用 40
结论 42
第2 章 完整机器学习项目 43
环境设置 43
版本控制:Git 43
克隆本书的Git 存储库 44
科学库:Anaconda 发行版Python 44
神经网络:TensorFlow 和Keras 45
梯度提升算法,版本1: XGBoost 45
梯度提升算法,版本2:LightGBM 46
聚类算法 46
交互式计算环境:Jupyter Notebook 47
数据概述 47
数据准备 48
数据采集 48
数据研究 50
生成特征矩阵和标签数组 53
特征工程与特征选择 54
数据可视化(Data Visualization) 55
模型准备 56
分离出训练和测试数据集 56
选择成本函数 57
创建k 折交叉验证集 58
机器学习模型(第一部分) 58
评估指标 62
混淆矩阵(Confusion Matrix) 62
精确率召回率曲线(Precision-Recall Curve) 63
观察者操作特征曲线(receiver operating characteristic) 65
机器学习模型(第二部分) 68
模型2:随机森林(Random Forests) 68
模型3:XGBoost 梯度提升机(gradient boosting machine) 71
模型4:LightGBM 梯度提升机 74
使用测试集对四个模型评估 77
集成(Ensembles) 82
最终算法选择 86
完整生产系统 87
结论 87
第二部分 使用SciKit-Learn 进行无监督学习
第3 章 降维 91
降维的动因 91
降维算法 96
主成分分析(principal component analysis,PCA) 97
PCA 概念 97
PCA 练习 98
增量PCA 103
稀疏PCA 104
核PCA 105
奇异值分解 107
随机投影 108
等距映射 111
多维标度法 112
局部线性嵌入 113
t- 分布随机邻域嵌入 114
其他降维方法 115
字典学习 116
独立成分分析 118
结论 119
第4 章 异常检测 120
信用卡欺诈检测 121
准备数据 121
定义异常评分函数 121
定义评估指标 123
定义绘图函数 124
普通PCA 异常检测 124
PCA 成分数量等于原始特征的数量 125
寻找最优主成分数 128
稀疏PCA 异常检测 130
核PCA 异常检测 132
高斯随机投影异常检测 135
稀疏随机投影异常检测 137
非线性异常检测 138
字典学习异常检测 139
ICA 异常检测 141
在测试数据集上运行欺诈检测解决方案 143
测试数据集上的普通PCA 异常检测 143
测试集上的ICA 异常检测 145
测试集上使用字典学习异常检测 146
结论 148
第5 章 聚类 149
MNIST 数字集 150
聚类算法 151
k 均值 152
k 均值惯性 153
评估聚类结果 154
k 均值精度 156
k 均值和主成分的数量 158
原始数据集上的k 均值 159
层次聚类 161
层次聚类方法 162
树状图 163
评估聚类结果 165
密度聚类(DBSCAN) 168
DBSCAN 算法 168
HDBSCAN 170
结论 172
第6 章 分组分割 173
借贷俱乐部数据 173
数据准备 174
将字符串格式转换为数字格式 176
输入缺失值 176
特征工程 179
选择最终特征集并执行缩放 179
指定用来评估的标签 179
聚类的好处 181
k 均值应用 183
分层聚类应用 186
HDBSCAN 应用程序 190
结论 192
第三部分 使用TensorFlow 和Keras
无监督学习
第7 章 自动编码器 195
神经网络 196
TensorFlow 198
Keras 199
自动编码器:编码器和解码器 199
欠完备自动编码器 200
过完备自动编码器 201
密集与稀疏自动编码器 202
降噪自动编码器 202
变分自动编码器 203
结论 204
第8 章 自动编码器实践 205
数据准备 205
自动编码器的组成部分 208
激活函数 209
我们的第一台自动编码器 210
损失函数 211
优化器 211
训练模型 212
对测试集进行评估 214
具有线性激活函数的两层欠完备自动编码器 216
增加节点数 220
添加更多隐藏层 222
非线性自动编码器 223
具有线性激活的过完备自动编码器 226
具有线性激活、随机失活的过完备自动编码器 228
具有稀疏、线性激活、随机失活的过完备自动编码器 231
具有稀疏、线性激活、随机失活功能的过完备自动编码器 234
使用噪声数据集 236
降噪自动编码器 236
二层、降噪、具备线性激活的欠完备自动编码器 237
两层、降噪、具备线性激活的过完备自动编码器 240
两层、降噪、ReLu 激活的过完备自动编码器 242
结论 244
第9 章 半监督学习 246
数据准备 246
监督模型 250
无监督模型 252
半监督模型 254
监督和无监督的合力 257
结论 258
第四部分 使用TensorFlow 和Keras
进行深度无监督学习
第10 章 使用受限玻尔兹曼机器的推荐系统 261
玻尔兹曼机器 262
推荐系统 263
协同过滤 263
Netflix 奖 264
MovieLens 数据集 264
数据准备 265
定义成本函数:均方误差 269
进行基线实验 270
矩阵分解 271
一个潜在因子 272
三个潜在因子 273
五个潜在因子 274
使用RBM 的协同过滤 274
RBM 神经网络结构 275
构建RBM 类的组件 277
训练RBM 推荐系统 280
结论 281
第11 章 基于深度信念网络的特征检测 282
深层信念网络详述 282
MNIST 图像分类 283
受限波尔兹曼机 285
构建RBM 类的组件 286
使用RBM 模型生成图像 289
查看中间特征检测器 289
为DBN 训练三个RBM 290
检查特征检测器(Examine Feature Detectors) 293
查看生成的图像 294
完整DBN 297
DBN 训练的工作原理 302
训练DBN 302
无监督学习如何帮助监督学习 304
使用LightGBM 的图像分类器 312
监督学习 312
无监督和监督的解决方案 314
结论 315
第12 章 生成对抗网络 316
生成对抗网络概念 316
深度卷积生成对抗网络 317
卷积神经网络 318
重新思考DCGAN 323
DCGAN 生成器 324
DCGAN 的鉴别器 326
鉴别器和对抗模型 327
MNIST 数据集的DCGAN 328
在MNIST 数据集执行DCGAN 330
结论 332
第13 章 时间序列聚类 333
心电数据 334
走进时间序列聚类 334
心电图k 形时间序列聚类 335
数据准备 336
训练和评估 340
在ECG5000 上使用k 形进行时间序列聚类 342
数据准备 342
训练和评估 346
基于k 均值的ECG5000 时间序列聚类 348
基于ECG5000 的分层DBSCAN 时间序列聚类 349
比较时间序列聚类算法 350
k 形 351
k 均值 353
HDBSCAN 354
比较所有三种时间序列聚类方法 355
结论 357
第14 章 尾声 358
监督学习 359
无监督学习 359
SciKit-Learn 360
TensorFlow 和Keras 361
强化学习 362
今天最有希望的无监督学习领域 362
无监督学习的未来 364
结语 366
作者介绍 367
封面介绍 367
前言机器学习简史机器学习是人工智能(AI)的一个子领域。计算机通过对数据的学习,在无需进行显式编程的情况下提高在某些狭义任务中的性能。机器学习(machine learning)这个词早在1959 年就被Arthur Samuel ( 人工智能领域的传奇人物)提出,但是在二十一世纪机器学习几乎没有什么重大的商业成功。机器学习始终是大学和学术界的研究方向。20 世纪60 年代,人工智能社区对其未来过于乐观。当时的研究人员,如Herbert Simon 和Marvin Minsky,声称人工智能将在几十年内达到与人类智力相当的水平:注1机器是可以胜任的,在二十年内,将能够完成人所能做的任何工作。——Herbert Simon,1965 年在3~8 年内,我们将拥有一台与人类平均智力水平相当的机器。——Marvin Minsky,1970 年在盲目的乐观情绪引领下,研究人员投身于所谓的强人工智能或通用人工智能项目,试图建立起具备解决问题、表述知识、学习和计划、自然语言处理、感知和运动控制的人工智能代理。这个新兴领域的乐观情绪有助于从国防部等主要机构吸引大量资金,但这些研究人员过于雄心勃勃,最终注定要失败。人工智能的研究很少能够从学术界跃升到工业界,随之而来的是一系列所谓的人工智能冬季。在这些人工智能的冬天(类比冷战时期核冬天),人们对人工智能的兴趣和资金减少了。偶尔会周期性围绕人工智能进行炒作,但持续不了多久。到20 世纪90 年代初,对人工智能的兴趣和资助已经达到低谷。人工智能(AI)回来了,但为什么是现在?在过去的二十年里,人工智能以复仇的方式重新出现,首先是作为一个纯粹的学术领域,现在是在各个领域,AI 吸引着大学和企业中最聪明的人参与其中。这种复苏背后有三个关键的进展:机器学习算法的突破、大量数据的可用性和超高速计算机。第一,研究人员不再关注过于雄心勃勃的通用人工智能项目,而是将注意力转向通用人工智能的狭义子问题[(也称为弱人工智能(Weak AI)或限制领域人工智能( narrow AI)]。这种专注于改进狭义任务解决方案的设想促进了算法上的突破,而算法的突破为成功的商业应用铺平了道路。许多最初在大学或私人研究实验室开发的算法都很快提供开源,而开源加快了行业对这些技术的应用。第二,如何获取数据成为大多数组织关注的焦点,与此同时存储数据的成本因存储技术的进步而大幅下降。在互联网的助力之下,大量的数据变得越来越容易获取,其规模达到前所未有。第三,云计算所提供计算机变得越来越强大并且可用性很高,这使得人工智能研究人员能够根据需要轻松、廉价地扩展其IT 基础设施,而无需在硬件方面进行巨额前期投资。人工智能应用的出现这三支力量将人工智能从学术界推向了工业界,业界对人工智能的兴趣越来越高并且提供的资金不断增加。人工智能不再只是一个理论领域,而是一个全面的应用领域。图P-1 Google Trends 生成的趋势图显示了过去五年对机器学习兴趣的增长。人工智能现在被视为一种突破性技术,类似于计算机和智能手机的出现,在未来十年内对每个行业都将产生重大影响。注2涉及机器学习的成功商业应用包括但不限于光学字符识别、垃圾邮件过滤、图像分类、计算机视觉、语音识别、机器翻译、分群和聚类、人工数据合成、异常检测、网络犯罪预防、信用卡欺诈检测、互联网欺诈检测、时间序列预测、自然语言处理、桌面游戏和视频游戏、文档分类、推荐系统、搜索、机器人、在线广告、情感分析、DNA 测序、金融市场分析、信息检索、问答和医疗建议。过去20 年中人工智能应用的主要里程碑这里提到的里程碑帮助人工智能从一个主要的学术话题发展到今天的主流技术。? 1997 年:IBM 公司深蓝(Deep Blue)——一款从20 世纪80 年代中期就开始开发的人工智能机器人,在一次广为人知的国际象棋比赛中击败了世界象棋大师Garry Kasparov。? 2004 年:美国国防高级研究计划局(DARPA)推出了DARPA 大挑战赛——在沙漠举办的年度自动驾驶挑战赛。2005 年,斯坦福大学获得最高奖。2007 年,卡内基梅隆大学在城市环境下完成了这一壮举。2009 年,Google 制造了一辆自动驾驶汽车。到2015 年,包括特斯拉(Tesla)、Alphabet(Google 的母公司)旗下的Waymo 和优步(Uber)在内的许多主要技术巨头已经启动了资金充足的项目,以构建主流自动驾驶技术。? 2006 年:多伦多大学的Geoffrey Hinton 推出了一种快速学习算法,用于训练多层神经网络,从而启动了深度学习革命。? 2006 年:Netflix 推出了总奖金100 万美元的Netflix 大奖赛,挑战团队需要使用机器学习提高推荐系统的准确性至少10%。2009 年,一个队伍获得了该奖。? 2007 年:阿尔伯塔大学的一个团队使人工智能在跳棋方面有了超人表现。? 2010 年:ImageNet 项目发起了年度竞赛—— ImageNet 大规模视觉识别挑战赛(ILSVRC),在该挑战赛中,团队使用机器学习算法来对这个超大规模数据集进行检测和分类。这个挑战赛引起了学术界和技术界的极大关注。分类错误率从2011 年的25% 下降到2015 年的几个百分点,这得益于深度卷积神经网络的进步。而卷积神经网络的进步导致了计算机视觉和对象识别的商业应用。? 2010 年:微软推出Xbox 360 版Kinect。由微软研究院的计算机视觉团队开发的Kinect 能够跟踪人体运动并将其转化为游戏。? 2010 年:Siri 是最早的主流数字语音助手之一,被苹果收购,并于2011年10 月作为iPhone4S 的一部分发布。最终,Siri 在苹果的所有产品中都得到了推广。在卷积神经网络和长时间短时记忆循环神经网络的支持下,Siri 可以同时执行语音识别和自然语言处理。最终,亚马逊、微软和Google 进入竞争,分别发布了Alexa(2014)、Cortana(2014)和Google Assistant(2016)。? 2011 年:IBM Watson,一个由David Ferrocci 所领导团队开发出来的回答问题人工智能代理击败了前Jeopardy 获奖者 Brad Rutter 和Ken Jennings,IBM Watson 现已在多个行业使用,包括医疗保健和零售业。? 2012:由Andrew Ng 和Jeff Dean 领导的Google 大脑团队训练了一个神经网络来自动观看YouTube 视频中提取出来的图片并识别出其中的猫。? 2013 年:Google 赢得了美国国防高级研究计划局(DARPA)的机器人挑战赛,其中包括半自主机器人在危险环境中执行复杂任务的试验,例如驾驶车辆、穿过碎石、清除堵塞入口的障碍物、打开车门和爬梯子。? 2014 年:Facebook 发布了在DeepFace 上的研究成果,DeepFace 是一个基于神经网络的系统,能够以97% 的准确率识别人脸。这接近人的水平,比以前的系统提高了27% 以上。? 2015 年:人工智能成为主流,在世界各地的媒体机构中普遍使用。? 2015 年:Google DeepMind 的AlphaGo 在围棋游戏中击败了世界级的专业选手范辉。2016 年,AlphaGo 打败了李世石,2017 年,AlphaGo 击败了何洁。2017 年,一个称为AlphaGo Zero 的新版本击败先前的AlphaGo版本100 比零。AlphaGo Zero 融合了无监督的学习技巧,大师们只需自己演奏。? 2016:Google 对其语言翻译进行了重大改造,将其现有的基于短语的翻译系统替换为基于深度学习的神经机器翻译系统,将翻译错误减少了87%,接近人类的准确度。? 2017 年:由卡内基·梅隆开发的Libratus 赢得了“一对一无限注德州扑克”。? 2017 年:在Dota 2 锦标赛上,OpenAI 训练的机器人击败了专业玩家。限制领域人工智能(Narrow AI) 到通用人工智能(AGI )当然,这些将人工智能应用于狭义问题的成功只是一个起点。人工智能界越来越相信,通过多个弱人工智能系统的结合可以发展出功能强大的人工智能系统。这种强大的人工智能或人工智能代理将能够在许多广泛定义的任务中实现人类水平的性能。一些研究人员预测,在人工智能达到人类水平后不久,这种强人工智能将超越人类智能,达到所谓的“超级智能”。据估计,人工智能从现在开始的15年后到100 年内可以达到这种程度,大多数研究人员相信人工智能将在几代人的时间内取得足够的进步。这又是一次夸大的炒作(就像我们在之前的人工智能周期中看到的那样)还是这次不同?只有时间才能证明。目的和方法迄今为止,在计算机视觉、语音识别、机器翻译和自然语言处理等领域的大多数成功的商业应用都涉及利用带标签数据集的监督学习。然而,世界上的大多数数据都是没有标签的。在本书中,我们将介绍无监督学习领域(这是机器学习的一个分支,用于查找隐藏模式),并学习没有标签的数据中的底层结构。根据许多行业专家,如Facebook 人工智能研究主管、纽约大学教授Yann LeCun 所说,无监督学习是人工智能的下一个前沿领域,可能是人工智能的关键所在。基于这一点和许多其他原因,无监督学习是当今人工智能最流行的话题之一。这本书的目标是介绍概念和工具,这些概念和工具是无监督学习技术应用到日常开发过程中所必需的。换句话说,这是一本实用的书,可以让你建立真实的系统。我们还将探讨如何有效地标记没有标签的数据集,以将无监督的学习问题转化为半监督的学习问题。这本书将采用实际操作的方法,介绍一些理论,但主要集中在应用无监督学习技术来解决现实世界中的问题。数据集和代码可以在GitHub 以Jupyter Notebook 的形式获取到。通过本书的学习可以加深你对概念的理解并获得实践的经验,从而能够将无监督学习应用于大型、未标记的数据集,以发现隐藏的模式、获得更深入的业务洞察力、检测异常、基于相似性的聚类、执行自动特征工程和选择、生成语法、Hetic 数据集等。预备知识本书假设你有一些Python 编程经验,包括熟悉NumPy 和Pandas。有关Python 的更多信息,请访问 Python 官方网站。有关Jupyter Notebook的更多信息,请访问 Jupyter 官方网站。为了复习大学水平的微积分、线性代数、概率论和统计学,请阅读Ian Goodfellow 和Yoshua Bengio) 的《Deep Learning》(《深度学习》)教科书的第一部分。关于机器学习的复习,请阅读《The Elements of Statistical Learning》(《统计学习要素》) 。路线图本书分为四个部分,涵盖以下主题:第一部分 无监督学习基础介绍监督和无监督学习的区别,当下流行的监督和无监督学习算法及概述,以及完整的机器学习项目。第二部分 使用SciKit-Learn 进行无监督学习降维、异常检测、聚类和分组分割。第三部分 使用TensorFlow 和Keras 无监督学习自动编码器、自动编码器实践和半监督学习。第四部分 使用TensorFlow 和Keras 进行深度无监督学习受限玻尔兹曼机器、深度信念网络和生成对抗网络。排版约定本书使用以下排版约定:斜体字(Italic)指示新的术语、URL、电子邮件地址、文件名和文件扩展名。等宽字体(Constant width)用于程序列表,以及在段落中引用程序元素。例如变量或函数名、数据库、数据类型、环境变量、语句和关键字。等宽粗体(Constant width bold)显示用户应按字面顺序键入的命令或其他文本。等宽斜体(Constant width italic)显示应替换为用户提供的值或由上下文确定的值的文本。使用代码示例补充资料(代码示例等)可在GitHub 上下载。这本书的目的是帮助你更好地完成工作。通常情况下,如果本书提供了示例代码,你可以在程序和文档中使用它。你不需要联系我们获得许可,除非你正在复制代码的重要部分。例如,编写一个使用本书中的几个代码块的程序不需要许可。销售或发行O’Reilly 图书中的示例光盘需要许可。通过引用本书和引用示例代码来回答问题不需要许可。将本书中的大量示例代码合并到产品文档中需要许可。我们感谢,但不要求在你的文档中标明涉及本书的引用出处。引用出处通常包括标题、作者、出版商和ISBN。例如:“Ankur A.Patel(O’Reilly)使用Python 进行无监督学习。版权所有2019 Ankur A.Patel,978-1-492-03564-0”。如果你觉得你对代码示例的使用超出了上述的合理使用或许可范围,请随时与我们联系。电子邮件地址为:[email protected]。O’Reilly 在线学习平台(O’Reilly Online Learning)近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。如何联系我们美国:O’Reilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2号成铭大厦C座807室(100035)奥莱利技术咨询(北京)有限公司我们为这本书提供了网页,其中列出了勘误表、示例和任何其他附加信息。你可以在http://bit.ly/unsupervised-learning 访问此页面。若要对本书发表评论或提出技术问题,请发送电子邮件至:[email protected]。有关我们的书籍、课程、会议和新闻的更多信息,请访问我们的网站http://www.oreilly.com。在Facebook 上找到我们:http://facebook.com/oreilly。在Twitter 上关注我们:http://twitter.com/oreillymedia。在YouTube 上观看我们:http://www.youtube.com/oreillymedia。
评论
还没有评论。