本书作者通过两个简单的、可应用于生产的Python框架展示了如何应用无监督学习:Scikit-learn和包含Keras的TensorFlow。通过代码和亲身操作的实例,数据科学家将发现数据中难以发现的模型:检测数据中的异常、进行自动特征工程和选择、生成合成数据集等,并获得更深层次的业务洞察力。
使用Python进行无监督学习实践,如何编写利用无标签数据的机器学习解决方案。
很多业内专Z家认为无监督学习是人工智能的下一个前沿,可能把握着进入通用人工智能的钥匙。因为世界上绝大部分数据是无标签的,传统的监督学习不能使用到它们。无监督学习通过另外的方法可以使用到这些无标签的数据集从而发现数据深层的有价值的数据模型,这些模型可能是人类自身也无法发现的。
作者Ankur Patel通过两个简单的、可应用于生产的Python框架向您展示了如何应用无监督学习:Scikit-learn和包含Keras的TensorFlow。通过代码和亲身操作的实例,数据科学家将发现数据中难以发现的模型:检测数据中的异常、进行自动特征工程和选择、生成合成数据集等,并获得更深层次的业务洞察力。您所需要的只是一些编程和机器学习经验就可以开始学习本书。
“研究人员、工程师和学生将会欣赏这本书,书中充满了实用的无监督学习技术、通俗易懂并非常实用的Python示例,学习起来快速并且有效。” ——Sarah Nagy
Edson资深数据科学家
Ankur A.Patel是7Park data数据科学部门的副总裁(隶属于Vista Equity Partners投资组合公司)。在7Park data,Ankur和他的数据科学团队使用替代数据为对冲基金和企业构建数据产品,并为企业客户开发机器学习服务(MLaaS)。
目录
前言 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