基於 Python 的無監督學習 Hands-On Unsupervised Learning Using Python

Ankur A. Patel

商品描述

本書主要內容有:比較不同機器學習方法的優缺點、監督學習、無監督學習和強化學習。
從頭到尾的建立和管理機器學習項目。
建立一個異常檢測系統,以捕捉信用卡交易的欺詐。
將用戶集群到不同的同構組中。
執行半監督學習。
使用受限制玻爾茲曼機開發電影推薦系統。
使用生成對抗網絡生成合成圖像。

作者簡介

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