內容簡介
本書以新的Spark2.0為技術基礎,重點講解瞭如何構建機器學習係統以及如何實現機器學習流程的標準化,這兩點都是目前同類書中沒有的。第1~7章從概念、架構、算法等角度介紹瞭機器學習的基本概念;第8~12章以實例為主,詳細講解瞭機器學習流程標準化涉及的關鍵技術;第13章主要以在綫數據或流式數據為主介紹瞭流式計算框架SparkStreaming;第14章重點講解瞭深度學習的框架TensorFlowOnSprak。此外,附錄部分提供瞭綫性代數、概率統計及Scala的基礎知識,幫助讀者更好地學習和掌握機器學習的相關內容。
目錄
目 錄?Contents
前言
第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操作
前言/序言
Preface?前 言為什麼寫這本書大數據、人工智能正在改變或顛覆各行各業,包括我們的生活。大數據、人工智能方麵的人纔已經供不應求,但作為人工智能的核心——機器學習,因涉及的知識和技能比較多,除瞭需要具備一定的數學基礎、相關業務知識外,還要求有比較全麵的技術儲備,如操作係統、數據庫、開發語言、數據分析工具、大數據計算平颱等,無形中提高瞭機器學習的門檻。如何降低機器學習的門檻,讓更多有誌於機器學習、人工智能的人能更方便或順暢地使用、駕馭機器學習?很多企業也正在考慮和處理這方麵的問題,本書也希望藉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的編寫,張魁、劉未昕負責後颱環境的搭建和維護。由於筆者水平有限,加之編寫時間倉促,書中難免齣現錯誤或不準確的地方。懇請讀者批評指正,你可以通過訪問httpwww.feiguyun.com留下寶貴意見。也可以通過微信(wumg3000)或QQ(1715408972)給我們反饋。非常感謝你的支持和幫助。
緻謝在本書編寫過程中,得到很多在校老師和同學的支持!感謝上海大學機電工程與自動化學院的王佳寅老師及黃文成、楊中源、熊奇等同學,上海理工管理學院的張帆老師,上海師大數理學院的田紅炯、李昭祥老師,華師大的王旭同學,博世王鼕,飛榖雲小夥伴等提供的支持和幫助。
感謝機械工業齣版社的楊福川、李藝老師給予本書的大力支持和幫助。
感謝參與本書編寫的其他作者及提供支持的傢人們,謝謝你們!
深度實踐Spark機器學習 下載 mobi epub pdf txt 電子書