Spark機器學習 (第2版) Machine Learning with Spark Second Edition

Rajdeep Dua, Manpreet Singh Ghotra, Nick Pentreath 蔡立宇 , 黃章帥 , 周濟民

商品描述

本書結合案例研究講解Spark 在機器學習中的應用,並介紹如何從各種公開渠道獲取用於機器學習系統的數據。內容涵蓋推薦系統、回歸、聚類、降維等經典機器學習算法及其實際應用。第2版新增了有關機器學習數學基礎以及Spark ML Pipeline API 的章節,內容更加系統、全面、與時俱進。

目錄大綱

第一章Spark的環境搭建與運行1
1.1Spark的本地安裝與配置2
1.2Spark集群3
1.3Spark編程模型4
1.3.1SparkContext類與SparkConf類4
1.3.2SparkSession5
1.3.3Spark shell6
1.3.4彈性分佈式數據集8
1.3.5廣播變量和累加器12
1.4SchemaRDD13
1.5Spark data frame13
1.6Spark Scala編程入門14
1.7Spark Java編程入門17
1.8Spark Python編程入門19
1.9Spark R編程入門21
1.10在EC2上運行Spark23
1.11在Elastic Map Reduce上配置並運行Spark28
1.12Spark用戶界面31
1.13Spark所支持的機器學習算法32
1.14Spark ML的優勢36
1.15在Google Compute Engine上用Dataproc構建Spark集群38
1.15.1Hadoop和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.2MovieStream介紹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.7Spark數據管道81
3.6機器學統架構82
3.7Spark MLlib83
3.8Spark ML的性能提升83
3.9MLlib支持算法的比較85
3.9.1分類85
3.9.2聚類85
3.9.3回歸85
3.10MLlib支持的函數和開發者API86
3.11MLlib願景87
3.12MLlib版本的變遷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.1ALS模型推薦144
5.4.2用戶推薦145
5.4 .3物品推薦148
5.5推薦模型效果的評估152
5.5.1ALS模型評估152
5.5.2均方差154
5.5.3K值平均準確率156
5.5.4使用MLlib內置的評估函數159
5.6FP-Growth算法161
5.6. 1FP-Growth的基本例子161
5.6.2FP-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.5ROC曲線和AUC194
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.4R-平方係數216
7.3從數據中抽取合適的特徵216
7.4回歸模型的訓練和應用220
7.4.1BikeSharingExecutor220
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.1K-均值聚類258
8.1.2混合模型262
8.1.3層次聚類262
8.2從數據中提取正確的特徵262
8.3K-均值訓練聚類模型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.2WSSSE和迭代次數280
8.6高斯混合模型283
8.6.1GMM聚類分析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.2PCA和SVD模型的關係303
9.5評價降維模型304
9.6小結307

0章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.120 Newsgroups數據集的文本相似度和TF-IDF特徵324
10.3.2基於20 Newsgroups數據集使用TF-IDF訓練文本分類器326
10.4評估文本處理技術的作用328
10.5Spark 2.0上的文本分類329
10.6Word2Vec模型331
10.6.1借助Spark MLlib訓練Word2Vec模型331
10.6.2借助Spark ML訓練Word2Vec模型332
10.7小結334

1章Spark Streaming實時機器學習335
11.1在線學習335
11.2流處理336
11.2.1Spark Streaming介紹337
11.2.2Spark 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

2章Spark ML Pipeline API360
12.1Pipeline簡介360
12.1.1DataFrame360
12.1.2Pipeline組件360
12.1.3轉換器361
12.1.4評估器361
12.2Pipeline工作原理363
12.3Pipeline機器學習示例367
12.4小結375