Spark機器學習:核心技術與實踐
內容描述
本書採用理論與大量實例相結合的方式幫助開發人員掌握使用Spark進行分析和實現機器學習算法。通過這些示例和Spark在各種企業級系統中的應用,幫助讀者解鎖Spark機器學習算法的復雜性,通過數據分析產生有價值的數據洞察力。
目錄大綱
前言
第1章大規模機器學習和Spark入門1
1.1數據科學2
1.2數據科學家:21世紀最炫酷的職業2
1.2.1數據科學家的一天3
1.2.2大數據處理4
1.2.3分佈式環境下的機器學習算法4
1.2.4將數據拆分到多台機器6
1.2.5從Hadoop MapReduce到Spark 6
1.2.6什麼是Databricks 7
1.2.7 Spark包含的內容8
1.3 H2O.ai簡介8
1.4 H2O和Spark MLlib的區別10
1.5數據整理10
1.6數據科學:一個迭代過程11
1.7小結11
第2章探索暗物質:希格斯玻色子12
2.1 Ⅰ型錯誤與Ⅱ型錯誤12
2.1.1尋找希格斯玻色子13
2.1.2 LHC和數據的創建13
2.1.3希格斯玻色子背後的理論14
2.1.4測量希格斯玻色子14
2.1.5數據集14
2.2啟動Spark與加載數據15
2.2.1標記點向量22
2.2.2創建訓練和測試集合24
2.2.3第一個模型:決策樹26
2.2.4下一個模型:集合樹32
2.2.5最後一個模型:H2O深度學習37
2.2. 6構建一個3層DNN 39
2.3小結45
第3章多元分類的集成方法46
3.1數據47
3.2模型目標48
3.2.1挑戰48
3.2.2機器學習工作流程48
3.2.3使用隨機森林建模61
3.3小結78
第4章使用NLP和Spark Streaming預測電影評論80
4.1 NLP簡介81
4.2數據集82
4.3特徵提取85
4.3.1特徵提取方法:詞袋模型85
4.3.2文本標記86
4.4特徵化——特徵哈希89
4.5我們來做一些模型訓練吧92
4.5.1 Spark決策樹模型93
4.5.2 Spark樸素貝葉斯模型94
4.5.3 Spark隨機森林模型95
4.5.4 Spark GBM模型96
4.5.5超級學習器模型97
4.6超級學習器97
4.6.1集合所有的轉換101
4.6.2使用超級學習器模型105
4.7小結105
第5章word2vec預測和聚類107
5.1詞向量的動機108
5.2 word2vec解釋108
5.2.1什麼是單詞向量108
5.2.2 CBOW模型110
5.2.3 skip-gram模型111
5.2.4玩轉詞彙向量112
5.2.5餘弦相似性113
5.3 doc2vec解釋113
5.3.1分佈式內存模型113
5.3.2分佈式詞袋模型114
5.4應用word2vec並用向量探索數據116
5.5創建文檔向量118
5.6監督學習任務119
5.7小結123
第6章從點擊流數據中抽取模式125
6.1頻繁模式挖掘126
6.2使用Spark MLlib進行模式挖掘130
6.2.1使用FP-growth進行頻繁模式挖掘131
6.2.2關聯規則挖掘136
6.2.3使用prefix span進行序列模式挖掘138
6.2.4在MSNBC點擊流數據上進行模式挖掘141
6.3部署模式挖掘應用147
6.4小結154
第7章使用GraphX進行圖分析155
7.1基本的圖理論156
7.1.1圖156
7.1.2有向和無向圖156
7.1.3階和度157
7.1.4有向無環圖158
7.1 .5連通分量159
7.1.6樹160
7.1.7多重圖160
7.1.8屬性圖161
7.2 GraphX分佈式圖計算引擎162
7.2.1 GraphX中圖的表示163
7.2.2圖的特性和操作165
7.2. 3構建和加載圖170
7.2.4使用Gephi可視化圖結構172
7.2.5圖計算進階178
7.2.6 GraphFrame 181
7.3圖算法及其應用183
7.3.1聚類183
7.3.2頂點重要性185
7.4 GraphX在上下文中188
7.5小結189
第8章Lending Club借貸預測190
8.1動機190
8.1.1目標191
8.1.2數據192
8.1.3數據字典192
8.2環境準備193
8.3數據加載193
8.4探索——數據分析194
8.4.1基本清理194
8.4.2預測目標200
8.4.3使用模型評分221
8.4.4模型部署224
8.5小結229
作者介紹
About the Authors關於作者
Alex Tellez是一名終身的數據黑客/愛好者,對數據科學及其在商業問題上的應用充滿了激情。他在多個行業擁有豐富的經驗,包括銀行業、醫療保健、在線約會、人力資源和在線遊戲。Alex還在各種人工智能/機器學習會議上進行過多次演講,同時也在大學講授關於神經網絡的課程。閒暇時間,Alex喜歡和家人在一起,騎自行車!
首先,我要感謝Michal與我一起編寫本書。同樣作為的機器學習(Machine Learning,以下簡稱ML)愛好者、自行車愛好者、跑者和父親,在一年來共同努力的過程中,我們對彼此有了更深的了解。換句話說,沒有Michal的支持和鼓勵,本書是不可能完成的。
接下來,我要感謝我的媽媽、爸爸和哥哥Andres,從我出生天直到現在的每一步,你們都陪伴在我的周圍。毋庸置疑,我的哥哥仍會是我的英雄,是我永遠仰望的人,是我的指路燈。當然,還要感謝我美麗的妻子Denise和女兒Miya,在每個夜晚和周末給予我寫作上的關心和支持。我無法描述你們對我而言意味著多少,你們是我保持持續創作的靈感和動力。對我的女兒Miya,我的希望是,有一天當你拿起這本書時,會意識到你的老爸並不像看起來那麼傻。
後,我也要感謝你——讀者,感謝你對這個令人興奮的領域以及難以置信的技術感興趣。無論你是一名經驗豐富的ML專家,還是希望立足的新人,你都會找到適合自己的內容,我希望你能像Michal和我一樣,從本書中獲得很多。
Max Pumperla是一名數據科學家和工程師,專注於深度學習及其應用。他目前在Skymind擔任深度學習工程師,並且是aetros.com的聯合創始人。Max是幾個Python軟件包的作者和維護者,包括elephas,一個使用Spark的分佈式深度學習庫。他的開源足跡包括對許多流行的機器學習庫的貢獻,如keras、deeplearning4j和hyperopt。他擁有漢堡大學的代數幾何博士學位。
Michal Malohlava是Sparkling Water的創建者、極客和開發者,Java、Linux、編程語言愛好者,擁有10年以上的軟件開發經驗。他於2012年在布拉格的查爾斯大學獲得博士學位,並在普渡大學攻讀博士後。
在學習期間,他關注利用模型驅動方法和領域特定語言構建分佈式、嵌入式、實時和模塊化系統,參與了各種系統的設計和開發,包括SOFA和分形組件系統以及jPapabench控制系統。
現在,他的主要興趣是大數據計算。他參與了高級大數據計算平台H2O的開發,並將其嵌入到Spark引擎中作為Sparkling Water項目發布。