基於Spark的下一代機器學習:XGBoost、LightGBM、Spark NLP與Keras分佈式深度學習實例 Next-Generation Machine Learning with Spark: Covers Xgboost, Lightgbm, Spark Nlp, Distributed Deep Learning with Keras, and More

Butch Quinto

商品描述

本書介紹如何利用Spark平台上的實際文檔和示例來構建大型企業級機器學習應用。
在過去10年中,機器學習領域取得了一系列突破性進展。
這些突破性進展正在對我們的生活和各行各業產生深遠影響。
本書首先對Spark和Spark MLlib做了介紹,
除標準Spark MLlib庫之外,還介紹了更強大的第三方機器學習算法和庫。
在本書的最後解釋了通過對多個實際用例,以幫助讀者了解機器學習知識在實際生活中的應用。
本書內容: 機器學習、Spark和Spark MLlib 2.4.x的相關內容。
使用XGBoost4J-Spark和LightGBM庫實現Spark上的快速梯度提升。
利用Spark的孤立森林算法實現異常檢測。
使用支持多種語言的Spark NLP和Stanford CoreNLP庫。
使用Alluxio內存數據加速器優化Spark上的機器學習工作負載。
使用GraphX和GraphFrames進行圖分析。
使用卷積神經網絡進行圖像識別。通過Spark使用Keras框架和分佈式深度學習庫。

作者簡介

Butch Quinto

是Intelvi AI這家人工智能公司的創始人兼首席人工智能官,
該公司為國防、工業和交通行業開發尖端解決方案。
作為首席人工智能官,Butch負責戰略、創新、研究和開發。
此前,他曾在一家領先的技術公司擔任人工智能主管,
在一家人工智能初創公司擔任首席數據官。
在任職德勤(Deloitte)的分析總監期間,他曾領導多個企業級人工智能和物聯網解決方案的開發,
以及戰略、業務發展和風險投資盡職調查方面的工作。
Butch在銀行與金融、電信、政府部​​門、公共事業、交通運輸、電子商務、
零售業、製造業和生物信息學等多個行業擁有20多年的技術和領導經驗。
他是Next-Generation Big Data (Apress,2018)的作者,
也是人工智能促進協會(AAAI)和美國科學促進會(AAAS)的成員。

目錄大綱

前言
致謝
關於作者
關於技術審校人員
第1章機器學習介紹1
1.1人工智能和機器學習用例2
1.1.1零售業2
1.1.2交通運輸3
1.1.3金融服務3
1.1.4醫療保健和生物技術3
1.1.5製造業3
1.1.6政府部門4
1.2機器學習與數據4
1.3機器學習方法6
1.3.1有監督學習6
1.3.2無監督學習6
1.3.3半監督學習6
1.3.4強化學習6
1.4深度學習7
1.5神經網絡7
1.6卷積神經網絡7
1.7特徵工程7
1.7.1特徵選擇8
1.7.2特徵重要性9
1.7.3特徵提取9
1.7.4特徵構建9
1.8模型評估10
1.8. 1準確率10
1.8.2精度10
1.8.3召回率11
1.8.4 F1度量11
1.8.5 AUROC 11
1.9過擬合與欠擬合12
1.10模型選擇12
1.11總結12
1.12參考資料13

第2章Spark和Spark MLlib
介紹16
2.1概述16
2.2架構17
2.3執行Spark應用程序19
2.3.1集群模式19
2.3.2客戶端模式19
2.4 spark-shell介紹19
2.4.1 SparkSession 20
2.4 .2彈性分佈式數據集21
2.5 Spark SQL、DataSet和DataFrame的API 29
2.6 Spark數據源31
2.6.1 CSV 31
2.6.2 XML 31
2.6.3 JSON 32
2.6.4關係數據庫和MPP數據庫33
2.6.5 Parquet 36
2.6.6 HBase 36
2.6.7 Amazon S3 41
2.6.8 Solr 42
2.6.9 Microsoft Excel 43
2.6.10 SFTP 44
2.7 Spark MLlib介紹44
2.8 ML管道46
2.8.1管道47
2.8.2轉換器47
2.8 .3估計器47
2.8.4 ParamGridBuilder 47
2.8.5 CrossValidator 47
2.8.6評估器47
2.9特徵提取、轉換和選擇48
2.9.1 StringIndexer 48
2.9.2 Tokenizer 49
2.9.3 VectorAssembler 50
2.9.4 StandardScaler 51
2.9.5 StopWordsRemover 52
2.9.6 n-gram 52
2.9.7 OneHotEncoderEstimator 53
2.9.8 SQLTransformer 54
2.9.9詞頻–逆文檔頻率55
2.9.10主成分分析57
2.9.11 ChiSqSelector 57
2.9.12 Correlation 58
2.10評估指標60
2.10.1 AUROC 60
2.10.2 F1度量61
2.10.3均方根誤差61
2.11模型持久化62
2.12 Spark MLlib示例62
2.13圖處理66
2.14超越Spark MLlib:第三方機器學習集成66
2.15利用Alluxio優化Spark和Spark MLlib 66
2.16為什麼使用Alluxio 68
2.16.1顯著提高大數據處理性能和可擴展性68
2.16.2多個框架和應用程序可以以讀寫內存的速度共享數據69
2.17在應用程序終止或失敗時提供高可用性和持久性71
2.18優化總體內存使用並最小化垃圾收集74
2.19降低硬件要求74
2.20 Apache Spark和Alluxio 75
2.21總結75
2.22參考資料76

第3章有監督學習79
3.1分類79
3.1.1分類類型79
3.1.2 Spark MLlib分類算法80
3.1.3第三方分類和回歸算法85
3.1.4使用邏輯回歸算法的多類別分類86
3.1.5使用隨機森林算法進行流失預測95
3.1.6使用XGBoost4J-Spark的*梯度提升算法108
3.1.7 LightGBM:來自微軟的快速梯度提升算法118
3.1.8使用樸素貝葉斯進行情感分析127
3.2回歸133
3.2.1簡單線性回歸134
3.2.2使用XGBoost4J-Spark進行多元回歸分析137
3.2.3使用LightGBM進行多元回歸分析143
3.3總結148
3.4參考資料149

第4章無監督學習154
4.1 k-means聚類算法154
4.2使用隱含狄利克雷分佈進行主題建模162
4.2.1 Stanford CoreNLP 163
4.2.2 John Snow實驗室的Spark NLP 164
4.2.3示例170
4.3使用孤立森林進行異常檢測182
4.3.1參數185
4.3.2示例186
4.4使用主成分分析進行降維188
4.5總結197
4.6參考資料197

第5章推薦200
5.1推薦引擎的種類201
5.1.1使用交替最小二乘法的協同過濾201
5.1.2參數203
5.1.3示例203
5.2使用FP增長進行購物籃分析209
5.2.1示例210
5.2.2基於內容的過濾217
5.3總結218
5.4參考資料218

第6章圖分析221
6.1圖介紹221
6.1 .1無向圖221
6.1.2有向圖222
6.1.3有向多重圖222
6.1.4屬性圖223
6.2圖分析用例223
6.2.1欺詐檢測和反洗錢224
6.2.2數據治理和法規遵從性224
6.2.3風險管理224
6.2.4運輸225
6.2.5社交網絡225
6.2.6網絡基礎設施管理225
6.3 GraphX簡介225
6.3.1 Graph 225
6.3.2 VertexRDD 226
6.3.3 Edge 226
6.3.4 EdgeRDD 226
6.3 .5 EdgeTriplet 226
6.3.6 EdgeContext 226
6.3.7 GraphX示例226
6.3.8圖算法229
6.3.9 GraphFrames 232
6.4總結235
6.5參考資料236

第7章深度學習238
7.1神經網絡239
7.2神經網絡的簡短歷史240
7.3卷積神經網絡242
7.4深度學習框架247
7.4.1 TensorFlow 247
7.4.2 Theano 247
7.4.3 PyTorch 247
7.4.4 DeepLearning4J 247
7.4.5 CNTK 248
7.4.6 Keras 248
7.4.7使用Keras進行深度學習248
7.5 Spark分佈式深度學習258
7.5.1模型並行與數據並行258
7.5.2 Spark分佈式深度學習框架259
7.6 Elephas:使用Keras和Spark進行分佈式深度學習261
7.7 Dist-Keras 270
7.7.1使用基於Keras和Spark的Dist-Keras來識別MNIST中的手寫數字271
7.7.2貓和狗的圖像分類276
7.8總結283
7.9參考資料283