《Spark機器學習(第2版)》是2018年11月人民郵電出版社出版的圖書,作者是[印]拉結帝普·杜瓦、[印]曼普利特·辛格·古特拉、[南非]尼克·彭特里思。
基本介紹
- 書名:Spark機器學習(第2版)
- 作者:[印]拉結帝普·杜瓦
[印]曼普利特·辛格·古特拉
[南非]尼克·彭特里思 - ISBN:9787115497833
- 頁數:375頁
- 定價:99元
- 出版社:人民郵電出版社
- 出版時間:2018年11月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書結合案例研究講解Spark 在機器學習中的套用,並介紹如何從各種公開渠道獲取用於機器學習系統的數據。內容涵蓋推薦系統、回歸、聚類、降維等經典機器學習算法及其實際套用。第2版新增了有關機器學習數學基礎以及Spark ML Pipeline API 的章節,內容更加系統、全面、與時俱進。
圖書目錄
第 1章 Spark的環境搭建與運行 1
1.1 Spark的本地安裝與配置 2
1.2 Spark集群 3
1.3 Spark編程模型 4
1.3.1 SparkContext類與SparkConf類 4
1.3.2 SparkSession 5
1.3.3 Spark shell 6
1.3.4 彈性分散式數據集 8
1.3.5 廣播變數和累加器 12
1.4 SchemaRDD 13
1.5 榜拒鞏Spark data frame 13
1.6 Spark Scala編程入門 14
1.7 Spark Java編程入門 17
1.8 Spark Python編程入門 19
1.9 Spark R編程入門 21
1.10 在Amazon EC2上運行Spark 23
1.11 在Amazon Elastic Map Reduce上配置並運行Spark 28
1.12 Spark用戶拳章駝界面 31
1.13 Spark所支持的機器學習算法 32
1.14 Spark ML的優勢嬸寒促 36
1.15 在Google Compute Engine上用Dataproc構建Spark集群 38
1.15.1 Hadoop和Spark版本 38
1.15.2 創建集群 38
1.15.3 提交任務 41
1.16 小結 43
第 2章 機器學習的數學基礎 44
2.1 線性代數 45
2.1.1 配置IntelliJ Scala環境 45
2.1.2 配置命令行Scala環境 47
2.1.3 域 48
2.1.4 矩陣 54
2.1.5 函式 64
2.2 梯度下降 68
2.3 先驗機率、似然和後驗機率 69
2.4 微積分 69
2.4.1 可微微分 69
2.4.2 積多和試櫃分 70
2.4.3 拉格朗日乘子 70
2.5 可視化 71
2.6 小結 72
第3章 機器學習系統設計 73
3.1 機器學習是什麼 73
3.2 MovieStream介紹 74
3.3 機器學習系統商業用例 75
3.3.1 個性化 75
3.3.2 目標行銷和客戶愚疊道漿細分 76
3.3.3 預測建模與分析 76
3.4 機器學習模型的種類 76
3.5 數據驅動的機器學習系統的組成 77
3.5.1 數據獲取與存儲 77
3.5.2 數據清理與轉換 78
3.5.3 模型訓練與測試循環 79
3.5.4 模型部署與整合 79
3.5.5 模型監控與反饋 80
3.5.6 批處理或實時方案的選擇 80
3.5.7 Spark數據管道 81
3.6 機器學習系統架構 82
3.7 Spark MLlib 83
3.8 Spark ML的性能提升 83
3.9 MLlib支持算法的比較 85
3.9.1 分類 85
3.9.2 聚類 85
3.9.3 回歸 85
3.10 MLlib支持的函式和開發者API 86
3.11 MLlib願景 87
3.12 MLlib版本的變遷 87
3.13 小結 88
第4章 Spark上數據的獲取、處理與準備 89
4.1 獲取公開數據集 90
4.2 探索與可視化數據 92
4.2.1 探索用戶數據 94
4.2.2 探索電影數據 102
4.2.3 探索評級數據 104
4.3 數據的處艱滲理與轉換 109
4.4 從數據中提取有用特徵 112
4.4.1 數值特徵 112
4.4.2 類別特徵 113
4.4.3 派生特徵 114
4.4.4 文本特徵 116
4.4.5 正則化特徵 121
4.4.6 用軟體包提取特徵 123
4.5 小結 126
第5章 Spark 構建推薦引擎 127
5.1 推薦模型的分類 128
5.1.1 基於船乃市內容的過濾 128
5.1.2 協同過濾 128
5.1.3 矩陣分解 130
5.2 提取有效特徵 139
5.3 訓練推薦模型 140
5.3.1 使用MovieLens 100k數據集訓練模型 141
5.3.2 使用隱式反饋數據訓練模型 143
5.4 使用推薦模型 143
5.4.1 ALS模型推薦 144
5.4.2 用戶推薦 145
5.4.3 物品推薦 148
5.5 推薦模型效果的評估 152
5.5.1 ALS模型評估 152
5.5.2 均方差 154
5.5.3 K值平均準確率 156
5.5.4 使用MLlib內置的評估函式 159
5.6 FP-Growth算法 161
5.6.1 FP-Growth的基本例子 161
5.6.2 FP-Growth在MovieLens數據集上的實踐 163
5.7 小結 164
第6章 Spark構建分類模型 165
6.1 分類模型的種類 167
6.1.1 線性模型 167
6.1.2 樸素貝葉斯模型 177
6.1.3 決策樹 180
6.1.4 樹集成模型 183
6.2 從數據中抽取合適的特徵 188
6.3 訓練分類模型 189
6.4 使用分類模型 190
6.4.1 在Kaggle/StumbleUpon evergreen數據集上進行預測 191
6.4.2 評估分類模型的性能 191
6.4.3 預測的正確率和錯誤率 191
6.4.4 準確率和召回率 193
6.4.5 ROC曲線和AUC 194
6.5 改進模型性能以及參數調優 196
6.5.1 特徵標準化 197
6.5.2 其他特徵 199
6.5.3 使用正確的數據格式 202
6.5.4 模型參數調優 203
6.6 小結 211
第7章 Spark構建回歸模型 212
7.1 回歸模型的種類 212
7.1.1 最小二乘回歸 213
7.1.2 決策樹回歸 214
7.2 評估回歸模型的性能 215
7.2.1 均方誤差和均方根誤差 215
7.2.2 平均絕對誤差 215
7.2.3 均方根對數誤差 216
7.2.4 R-平方係數 216
7.3 從數據中抽取合適的特徵 216
7.4 回歸模型的訓練和套用 220
7.4.1 BikeSharingExecutor 220
7.4.2 在bike sharing數據集上訓練回歸模型 221
7.4.3 決策樹集成 229
7.5 改進模型性能和參數調優 235
7.5.1 變換目標變數 235
7.5.2 模型參數調優 242
7.6 小結 256
第8章 Spark構建聚類模型 257
8.1 聚類模型的類型 258
8.1.1 K-均值聚類 258
8.1.2 混合模型 262
8.1.3 層次聚類 262
8.2 從數據中提取正確的特徵 262
8.3 K-均值訓練聚類模型 265
8.3.1 訓練K-均值聚類模型 266
8.3.2 用聚類模型來預測 267
8.3.3 解讀預測結果 267
8.4 評估聚類模型的性能 271
8.4.1 內部評估指標 271
8.4.2 外部評估指標 272
8.4.3 在MovieLens數據集上計算性能指標 272
8.4.4 疊代次數對WSSSE的影響 272
8.5 二分K-均值 275
8.5.1 二分K-均值——訓練一個聚類模型 276
8.5.2 WSSSE和疊代次數 280
8.6 高斯混合模型 283
8.6.1 GMM聚類分析 283
8.6.2 可視化GMM類簇分布 285
8.6.3 疊代次數對類簇邊界的影響 286
8.7 小結 287
第9章 Spark套用於數據降維 288
9.1 降維方法的種類 289
9.1.1 主成分分析 289
9.1.2 奇異值分解 289
9.1.3 和矩陣分解的關係 290
9.1.4 聚類作為降維的方法 290
9.2 從數據中抽取合適的特徵 291
9.3 訓練降維模型 299
9.4 使用降維模型 302
9.4.1 在LFW數據集上使用PCA投影數據 302
9.4.2 PCA和SVD模型的關係 303
9.5 評價降維模型 304
9.6 小結 307
第 10章 Spark高級文本處理技術 308
10.1 文本數據處理的特別之處 308
10.2 從數據中抽取合適的特徵 309
10.2.1 詞加權表示 309
10.2.2 特徵散列 310
10.2.3 從20 Newsgroups數據集中提取TF-IDF特徵 311
10.3 使用TF-IDF 模型 324
10.3.1 20 Newsgroups數據集的文本相似度和TF-IDF特徵 324
10.3.2 基於20 Newsgroups數據集使用TF-IDF訓練文本分類器 326
10.4 評估文本處理技術的作用 328
10.5 Spark 2.0上的文本分類 329
10.6 Word2Vec模型 331
10.6.1 藉助Spark MLlib訓練Word2Vec模型 331
10.6.2 藉助Spark ML訓練Word2Vec模型 332
10.7 小結 334
第 11章 Spark Streaming實時機器學習 335
11.1 線上學習 335
11.2 流處理 336
11.2.1 Spark Streaming介紹 337
11.2.2 Spark Streaming快取和容錯機制 339
11.3 創建Spark Streaming套用 340
11.3.1 訊息生成器 341
11.3.2 創建簡單的流處理程式 343
11.3.3 流式分析 346
11.3.4 有狀態的流計算 348
11.4 使用Spark Streaming進行線上學習 349
11.4.1 流回歸 350
11.4.2 一個簡單的流回歸程式 350
11.4.3 流式K-均值 354
11.5 線上模型評估 355
11.6 結構化流 358
11.7 小結 359
第 12章 Spark ML Pipeline API 360
12.1 Pipeline簡介 360
12.1.1 DataFrame 360
12.1.2 Pipeline組件 360
12.1.3 轉換器 361
12.1.4 評估器 361
12.2 Pipeline工作原理 363
12.3 Pipeline機器學習示例 367
12.4 小結 375
3.3.1 個性化 75
3.3.2 目標行銷和客戶細分 76
3.3.3 預測建模與分析 76
3.4 機器學習模型的種類 76
3.5 數據驅動的機器學習系統的組成 77
3.5.1 數據獲取與存儲 77
3.5.2 數據清理與轉換 78
3.5.3 模型訓練與測試循環 79
3.5.4 模型部署與整合 79
3.5.5 模型監控與反饋 80
3.5.6 批處理或實時方案的選擇 80
3.5.7 Spark數據管道 81
3.6 機器學習系統架構 82
3.7 Spark MLlib 83
3.8 Spark ML的性能提升 83
3.9 MLlib支持算法的比較 85
3.9.1 分類 85
3.9.2 聚類 85
3.9.3 回歸 85
3.10 MLlib支持的函式和開發者API 86
3.11 MLlib願景 87
3.12 MLlib版本的變遷 87
3.13 小結 88
第4章 Spark上數據的獲取、處理與準備 89
4.1 獲取公開數據集 90
4.2 探索與可視化數據 92
4.2.1 探索用戶數據 94
4.2.2 探索電影數據 102
4.2.3 探索評級數據 104
4.3 數據的處理與轉換 109
4.4 從數據中提取有用特徵 112
4.4.1 數值特徵 112
4.4.2 類別特徵 113
4.4.3 派生特徵 114
4.4.4 文本特徵 116
4.4.5 正則化特徵 121
4.4.6 用軟體包提取特徵 123
4.5 小結 126
第5章 Spark 構建推薦引擎 127
5.1 推薦模型的分類 128
5.1.1 基於內容的過濾 128
5.1.2 協同過濾 128
5.1.3 矩陣分解 130
5.2 提取有效特徵 139
5.3 訓練推薦模型 140
5.3.1 使用MovieLens 100k數據集訓練模型 141
5.3.2 使用隱式反饋數據訓練模型 143
5.4 使用推薦模型 143
5.4.1 ALS模型推薦 144
5.4.2 用戶推薦 145
5.4.3 物品推薦 148
5.5 推薦模型效果的評估 152
5.5.1 ALS模型評估 152
5.5.2 均方差 154
5.5.3 K值平均準確率 156
5.5.4 使用MLlib內置的評估函式 159
5.6 FP-Growth算法 161
5.6.1 FP-Growth的基本例子 161
5.6.2 FP-Growth在MovieLens數據集上的實踐 163
5.7 小結 164
第6章 Spark構建分類模型 165
6.1 分類模型的種類 167
6.1.1 線性模型 167
6.1.2 樸素貝葉斯模型 177
6.1.3 決策樹 180
6.1.4 樹集成模型 183
6.2 從數據中抽取合適的特徵 188
6.3 訓練分類模型 189
6.4 使用分類模型 190
6.4.1 在Kaggle/StumbleUpon evergreen數據集上進行預測 191
6.4.2 評估分類模型的性能 191
6.4.3 預測的正確率和錯誤率 191
6.4.4 準確率和召回率 193
6.4.5 ROC曲線和AUC 194
6.5 改進模型性能以及參數調優 196
6.5.1 特徵標準化 197
6.5.2 其他特徵 199
6.5.3 使用正確的數據格式 202
6.5.4 模型參數調優 203
6.6 小結 211
第7章 Spark構建回歸模型 212
7.1 回歸模型的種類 212
7.1.1 最小二乘回歸 213
7.1.2 決策樹回歸 214
7.2 評估回歸模型的性能 215
7.2.1 均方誤差和均方根誤差 215
7.2.2 平均絕對誤差 215
7.2.3 均方根對數誤差 216
7.2.4 R-平方係數 216
7.3 從數據中抽取合適的特徵 216
7.4 回歸模型的訓練和套用 220
7.4.1 BikeSharingExecutor 220
7.4.2 在bike sharing數據集上訓練回歸模型 221
7.4.3 決策樹集成 229
7.5 改進模型性能和參數調優 235
7.5.1 變換目標變數 235
7.5.2 模型參數調優 242
7.6 小結 256
第8章 Spark構建聚類模型 257
8.1 聚類模型的類型 258
8.1.1 K-均值聚類 258
8.1.2 混合模型 262
8.1.3 層次聚類 262
8.2 從數據中提取正確的特徵 262
8.3 K-均值訓練聚類模型 265
8.3.1 訓練K-均值聚類模型 266
8.3.2 用聚類模型來預測 267
8.3.3 解讀預測結果 267
8.4 評估聚類模型的性能 271
8.4.1 內部評估指標 271
8.4.2 外部評估指標 272
8.4.3 在MovieLens數據集上計算性能指標 272
8.4.4 疊代次數對WSSSE的影響 272
8.5 二分K-均值 275
8.5.1 二分K-均值——訓練一個聚類模型 276
8.5.2 WSSSE和疊代次數 280
8.6 高斯混合模型 283
8.6.1 GMM聚類分析 283
8.6.2 可視化GMM類簇分布 285
8.6.3 疊代次數對類簇邊界的影響 286
8.7 小結 287
第9章 Spark套用於數據降維 288
9.1 降維方法的種類 289
9.1.1 主成分分析 289
9.1.2 奇異值分解 289
9.1.3 和矩陣分解的關係 290
9.1.4 聚類作為降維的方法 290
9.2 從數據中抽取合適的特徵 291
9.3 訓練降維模型 299
9.4 使用降維模型 302
9.4.1 在LFW數據集上使用PCA投影數據 302
9.4.2 PCA和SVD模型的關係 303
9.5 評價降維模型 304
9.6 小結 307
第 10章 Spark高級文本處理技術 308
10.1 文本數據處理的特別之處 308
10.2 從數據中抽取合適的特徵 309
10.2.1 詞加權表示 309
10.2.2 特徵散列 310
10.2.3 從20 Newsgroups數據集中提取TF-IDF特徵 311
10.3 使用TF-IDF 模型 324
10.3.1 20 Newsgroups數據集的文本相似度和TF-IDF特徵 324
10.3.2 基於20 Newsgroups數據集使用TF-IDF訓練文本分類器 326
10.4 評估文本處理技術的作用 328
10.5 Spark 2.0上的文本分類 329
10.6 Word2Vec模型 331
10.6.1 藉助Spark MLlib訓練Word2Vec模型 331
10.6.2 藉助Spark ML訓練Word2Vec模型 332
10.7 小結 334
第 11章 Spark Streaming實時機器學習 335
11.1 線上學習 335
11.2 流處理 336
11.2.1 Spark Streaming介紹 337
11.2.2 Spark Streaming快取和容錯機制 339
11.3 創建Spark Streaming套用 340
11.3.1 訊息生成器 341
11.3.2 創建簡單的流處理程式 343
11.3.3 流式分析 346
11.3.4 有狀態的流計算 348
11.4 使用Spark Streaming進行線上學習 349
11.4.1 流回歸 350
11.4.2 一個簡單的流回歸程式 350
11.4.3 流式K-均值 354
11.5 線上模型評估 355
11.6 結構化流 358
11.7 小結 359
第 12章 Spark ML Pipeline API 360
12.1 Pipeline簡介 360
12.1.1 DataFrame 360
12.1.2 Pipeline組件 360
12.1.3 轉換器 361
12.1.4 評估器 361
12.2 Pipeline工作原理 363
12.3 Pipeline機器學習示例 367
12.4 小結 375