3dwoo大學簡體電腦書店
深度實踐Spark機器學習
( 簡體 字)
作者:吳茂貴 郁明敏 朱鳳云 張粵磊 楊本法 著類別:1. -> 程式設計 -> Spark
出版社:機械工業出版社深度實踐Spark機器學習 3dWoo書號: 48497
詢問書籍請說出此書號!
有庫存
NT售價: 345
出版日:1/1/2018
頁數:234
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787111589952 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章 了解機器學習 1

1.1 機器學習的定義 1

1.2 大數據與機器學習 2

1.3 機器學習、人工智能及深度學習 2

1.4 機器學習的基本任務 3

1.5 如何選擇合適算法 4

1.6 Spark在機器學習方面的優勢 5

1.7 小結 5

第2章 構建Spark機器學習系統 6

2.1 機器學習系統架構 6

2.2 啟動集群 7

2.3 加載數據 9

2.4 探索數據 10

2.4.1 數據統計信息 10

2.4.2 數據質量分析 11

2.4.3 數據特征分析 12

2.4.4 數據的可視化 17

2.5 數據預處理 19

2.5.1 數據清理 20

2.5.2 數據變換 21

2.5.3 數據集成 22

2.5.4 數據歸約 23

2.6 構建模型 25

2.7 模型評估 26

2.8 組裝 30

2.9 模型選擇或調優 30

2.9.1 交叉驗證 31

2.9.2 訓練–驗證切分 32

2.10 保存模型 32

2.11 小結 33

第3章 ML Pipeline原理與實戰 34

3.1 Pipeline簡介 34

3.2 DataFrame 35

3.3 Pipeline組件 36

3.4 Pipeline原理 37

3.5 Pipeline實例 38

3.5.1 使用Estimator、Transformer和Param的實例 38

3.5.2 ML使用Pipeline的實例 40

3.6 小結 41

第4章 特征提取、轉換和選擇 42

4.1 特征提取 42

4.1.1 詞頻—逆向文件

頻率(TF-IDF) 42

4.1.2 Word2Vec 43

4.1.3 計數向量器 44

4.2 特征轉換 45

4.2.1 分詞器 45

4.2.2 移除停用詞 46

4.2.3 n-gram 47

4.2.4 二值化 48

4.2.5 主成分分析 48

4.2.6 多項式展開 50

4.2.7 離散余弦變換 50

4.2.8 字符串—索引變換 51

4.2.9  索引—字符串變換 53

4.2.10 獨熱編碼 54

4.2.11 向量—索引變換 57

4.2.12 交互式 58

4.2.13 正則化 59

4.2.14 規范化 60

4.2.15 最大值—最小值縮放 60

4.2.16 最大值—絕對值縮放 61

4.2.17 離散化重組 62

4.2.18 元素乘積 63

4.2.19 SQL轉換器 64

4.2.20 向量匯編 65

4.2.21 分位數離散化 66

4.3 特征選擇 67

4.3.1 向量機 67

4.3.2 R公式 69

4.3.3 卡方特征選擇 70

4.4 小結 71

第5章 模型選擇和優化 72

5.1 模型選擇 72

5.2 交叉驗證 73

5.3 訓練驗證拆分法 75

5.4 自定義模型選擇 76

5.5 小結 78

第6章 Spark MLlib基礎 79

6.1 Spark MLlib簡介 80

6.2 Spark MLlib架構 81

6.3 數據類型 82

6.4 基礎統計 84

6.4.1 摘要統計 84

6.4.2 相關性 84

6.4.3 假設檢驗 85

6.4.4 隨機數據生成 85

6.5 RDD、Dataframe和Dataset 86

6.5.1 RDD 86

6.5.2 DatasetDataFrame 87

6.5.3 相互轉換 88

6.6 小結 89

第7章 構建Spark ML推薦模型 90

7.1 推薦模型簡介 91

7.2 數據加載 92

7.3 數據探索 94

7.4 訓練模型 94

7.5 組裝 95

7.6 評估模型 96

7.7 模型優化 96

7.8 小結 98

第8章 構建Spark ML分類模型 99

8.1 分類模型簡介 99

8.1.1 線性模型 100

8.1.2 決策樹模型 101

8.1.3 樸素貝葉斯模型 102

8.2 數據加載 102

8.3 數據探索 103

8.4 數據預處理 104

8.5 組裝 109

8.6 模型優化 110

8.7 小結 113

第9章 構建Spark ML回歸模型 114

9.1 回歸模型簡介 115

9.2 數據加載 115

9.3 探索特征分布 117

9.4 數據預處理 120

9.4.1 特征選擇 121

9.4.2 特征轉換 121

9.5 組裝 122

9.6 模型優化 124

9.7 小結 126

第10章 構建Spark ML聚類模型 127

10.1 K-means模型簡介 128

10.2 數據加載 129

10.3 探索特征的相關性 129

10.4 數據預處理 131

10.5 組裝 132

10.6 模型優化 134

10.7 小結 136

第11章 PySpark 決策樹模型 137

11.1 PySpark 簡介 138

11.2 決策樹簡介 139

11.3 數據加載 140

11.3.1 原數據集初探 140

11.3.2 PySpark的啟動 142

11.3.3 基本函數 142

11.4 數據探索 143

11.5 數據預處理 143

11.6 創建決策樹模型 145

11.7 訓練模型進行預測 146

11.8 模型優化 149

11.8.1 特征值的優化 149

11.8.2 交叉驗證和網格參數 152

11.9 腳本方式運行 154

11.9.1 在腳本中添加配置信息 154

11.9.2 運行腳本程序 154

11.10 小結 154

第12章 SparkR樸素貝葉斯模型 155

12.1 SparkR簡介 156

12.2 獲取數據 157

12.2.1 SparkDataFrame數據結構

說明 157

12.2.2 創建SparkDataFrame 157

12.2.3 SparkDataFrame的常用操作 160

12.3 樸素貝葉斯分類器 162

12.3.1 數據探查 162

12.3.2 對原始數據集進行轉換 163

12.3.3 查看不同船艙的生還率差異 163

12.3.4 轉換成SparkDataFrame格式的數據 165

12.3.5 模型概要 165

12.3.6 預測 165

12.3.7 評估模型 166

12.4 小結 167

第13章 使用Spark Streaming構建在線學習模型 168

13.1 Spark Streaming簡介 168

13.1.1 Spark Streaming常用術語 169

13.1.2 Spark Streaming處理流程 169

13.2 Dstream操作 170

13.2.1 Dstream輸入 170

13.2.2 Dstream轉換 170

13.2.3 Dstream修改 171

13.2.4 Dstream輸出 172

13.3 Spark Streaming應用實例 172

13.4 Spark Streaming在線學習實例 174

13.5 小結 175

第14章 TensorFlowOnSpark詳解 176

14.1 TensorFlow簡介 176

14.1.1 TensorFlow的安裝 177

14.1.2 TensorFlow的發展 177

14.1.3 TensorFlow的特點 177

14.1.4 TensorFlow編程模型 178

14.1.5 TensorFlow常用函數 180

14.1.6 TensorFlow運行原理 181

14.1.7 TensorFlow系統架構 182

14.2 TensorFlow實現卷積神經網絡 183

14.2.1 卷積神經網絡簡介 183

14.2.2 卷積神經網絡的發展歷程 184

14.2.3 卷積神經網絡的網絡結構 186

14.2.4 TensorFlow實現卷積神經網絡 186

14.3 TensorFlow實現循環神經網絡 191

14.3.1 循環神經網絡簡介 191

14.3.2 LSTM循環神經網絡簡介 192

14.3.3 LSTM循環神經網絡分步說明 193

14.3.4 TensorFlow實現循環神經網絡 194

14.4 分布式TensorFlow 198

14.4.1 客戶端、主節點和工作節點間的關系 198

14.4.2 分布式模式 198

14.4.3 在Pyspark集群環境運行TensorFlow 199

14.5 TensorFlowOnSpark架構 202

14.6 TensorFlowOnSpark安裝 203

14.7 TensorFlowOnSpark實例 204

14.7.1 TensorFlowOnSpark單機模式實例 204

14.7.2 TensorFlowOnSpark集群模式實例 207

14.8 小結 208

附錄A 線性代數 209

附錄B 概率統計 214

附錄C Scala基礎 220
本書系統講解了Spark機器學習的技術、原理、組件、算法,以及構建Spark機器學習系統的方法、流程、標準和規范。此外,還介紹了Spark的深度學習框架TensorFlowOnSpark,以及如何借助它實現卷積神經網絡和循環神經網絡。



全書共14章,分為4個部分:

第一部分(第1~7章)

主要講解了Spark機器學習的技術、原理和核心組件,包括Spark ML、Spark ML Pipeline、Spark MLlib,以及如何構建一個Spark機器學習系統。

第二部分(第8~12章)

主要以實例為主,講解了Spark ML的各種機器學習算法,包括推薦模型、分類模型、聚類模型、回歸模型,以及PySpark決策樹模型和Spark R樸素貝葉斯模型。

第三部分(第13章)

與之前的批量處理不同,本章以在線數據或流式數據為主,講解了Spark的流式計算框架Spark Streaming。

第四部分(第14章)

介紹了Spark深度學習,主要包括TensorFlow的基礎知識及它與Spark的整合框架TensorFlowOnSpark。
為什么寫這本書

大數據、人工智能正在改變或顛覆各行各業,包括我們的生活。大數據、人工智能方面的人才已經供不應求,但作為人工智能的核心——機器學習,因涉及的知識和技能比較多,除了需要具備一定的數學基礎、相關業務知識外,還要求有比較全面的技術儲備,如操作系統、數據庫、開發語言、數據分析工具、大數據計算平臺等,無形中提高了機器學習的門檻。如何降低機器學習的門檻,讓更多有志于機器學習、人工智能的人能更方便或順暢地使用、駕馭機器學習?

很多企業也正在考慮和處理這方面的問題,本書也希望借Spark技術在這方面做一些介紹或總結。

如何使原本復雜、專業性強的工作或操作簡單化?封裝是一個有效方法。封裝降低了我們操作照相機的難度、降低了我們維護各種現代設備的成本,同時也提升了我們使用這些設備的效率。除封裝外,過程的標準化、流程化同樣是目前現代企業用于提升生產效率,降低成本,提高質量的有效方法。

硬件如此,軟件行業同樣如此。目前很多機器學習的開發語言或平臺,正在這些方面加大力度,比如:對特征轉換、特征選擇、數據清理、數據劃分、模型評估及優化等算法的封裝;對機器學習過程的進行流程化、標準化、規范化;給大家比較熟悉的語言或工具提供API等方法或措施,以簡化機器學習中間過程,縮短整個開發周期,使我們能更從容地應對市場的變化。Spark在這方面可謂后來居上,尤其是最近發布的版本,明顯加大了這方面的力度,我們可以從以下幾個方面看出這種趨勢:

1)Spark機器學習的API,正在由基于RDD過渡到基于Dataset或DataFrame,基于RDD的API在Spark2.2后處于維護階段,Spark3.0后將停止使用(來自Spark官網);

2)建議大家使用Spark ML,尤其是它的Pipeline;

3)增加大量特征選擇、特征轉換、模型選擇和優化等算法;

4)豐富、增強Spark與Java、Python、R的API,使其更通用。

SKLearn、Spark等機器學習平臺或工具在這方面都處于領先的地位,我們也希望借助本書,把Spark在這方面的有關內容介紹給大家,使大家可以少走些彎路。

此外,Spark目前主要涉及常用機器學習算法,缺乏對一般神經網絡的支持,更不用說深度學習了,這好像也是目前Spark的一個不足。不過好消息是:雅虎把深度學習框架TensorFlow與Spark整合在一起,而且開源了這些代碼。為彌補廣大Spark愛好者的上述缺憾,本書介紹了TensorFlowOnSpark,其中包括深度學習框架TensorFlow的基礎知識及使用卷積神經網絡、循環神經網絡等的一些實際案例。

另外,我們提供了與本書環境完全一致的免費云操作環境,這樣一來是希望節約您的寶貴時間,二來是希望能通過真正的實戰,給您不一樣的體驗和收獲!總之,我們希望能使更多有志于大數據、人工智能的朋友加入這個充滿生機、前景廣闊的行業中來。

本書特色

本書最大特點就是注重實戰!或許有讀者會問,能從哪幾個方面體現出來?

1)介紹了目前關于機器學習的新趨勢,并分析了如何使用Pipeline使機器學習過程流程化。

2)簡介了機器學習的一般框架Spark、深度學習框架Tensorflow及把兩者整合在一起的框架TensorflowOnSpark。

3)提供可操作、便執行及具有實戰性的項目及其詳細代碼。

4)提供與書完全一致的云操作環境,而且這個環境可以隨時隨地使用實操環境,登錄地址為httpwww.feiguyun.comsparksupport。

5)除了代碼外,還附有一些必要的架構或原理說明,便于大家能從一個更高的角度來理解把握相關問題。

總之,希望你通過閱讀本書,不但可以了解很多內容或代碼,更可以親自運行或調試這些代碼,從而帶來新的體驗和收獲!

讀者對象

對大數據、機器學習感興趣的廣大在校、在職人員。

對Spark機器學習有一定基礎,欲進一步提高開發效率的人員。

熟悉Python、R等工具,希望進一步拓展到Spark機器學習的人。

對深度學習框架TensorFlow及其拓展感興趣的讀者。

如何閱讀本書

本書正文共14章,從內容結構來看,可以分為四部分。

第一部分為第1~7章,主要介紹了機器學習的一些基本概念,包括如何構建一個Spark機器學習系統,Spark ML主要特點,Spark ML中流水線(Pipeline),ML中大量特征選取、特征轉換、特征選擇等函數或方法,同時簡單介紹了Spark MLlib的一些基礎知識。

第二部分為第8~12章,主要以實例為主,具體說明如何使用Spark ML中Pipeline的Stage,以及如何把這Stage組合到流水線上,最后通過評估指標,優化模型。

第三部分即第13章,與之前的批量處理不同,這一章主要以在線數據或流式數據為主,介紹Spark的流式計算框架Spark Streaming。

第四部分即第14章,為深度學習框架,主要包括TensorFlow的基礎知識及它與Spark的整合框架TensorFlowOnSpark。

此外,書中的附錄部分還提供了線性代數、概率統計及Scala的基礎知識,以幫助讀者更好地掌握機器學習的相關內容。

勘誤和支持

除封面署名外,參加本書編寫、環境搭建的人還有楊本法、張魁、劉未昕等、楊本法負責第12章 Spark R的編寫,張魁、劉未昕負責后臺環境的搭建和維護。由于筆者水平有限,加之編寫時間倉促,書中難免出現錯誤或不準確的地方。懇請讀者批評指正,你可以通過訪問留下寶貴意見。也可以通過微信給我們反饋。非常感謝你的支持和幫助。

致謝

在本書編寫過程中,得到很多在校老師和同學的支持!感謝上海大學機電工程與自動化學院的王佳寅老師及黃文成、楊中源、熊奇等同學,上海理工管理學院的張帆老師,上海師大數理學院的田紅炯、李昭祥老師,華師大的王旭同學,博世王冬,飛谷云小伙伴等提供的支持和幫助。

感謝機械工業出版社的楊福川、李藝老師給予本書的大力支持和幫助。

感謝參與本書編寫的其他作者及提供支持的家人們,謝謝你們!
pagetop