內容簡介
《Spark MLlib機器學習:算法、源碼及實戰詳解》以Spark 1.4.1版本源碼為切入點,全面並且深入地解析Spark MLlib模組,著力於探索分散式機器學習的底層實現。
《Spark MLlib機器學習:算法、源碼及實戰詳解》中本著循序漸進的原則,首先解析MLlib的底層實現基礎:數據操作及矩陣向量計算操作,該部分是MLlib實現的基礎;接著對各個機器學習算法的理論知識進行講解,並且解析機器學習算法如何在MLlib中實現分散式計算;然後對MLlib源碼進行詳細的講解;最後進行MLlib實例的講解。相信通過《Spark MLlib機器學習:算法、源碼及實戰詳解》的學習,讀者可全面掌握Spark MLlib機器學習,能夠進行MLlib實戰、MLlib定製開發等。
《Spark MLlib機器學習:算法、源碼及實戰詳解》適合大數據、Spark、數據挖掘領域的從業人員閱讀,同時也為Spark開發者和大數據愛好者展現了分散式機器學習的原理和實現細節。
編輯推薦
本書系統、全面、深入地解析了Spark MLlib機器學習的相關知識,著力於探索分散式機器學習的底層實現。
以源碼為基礎,兼顧算法、理論與實戰,幫助讀者在實際工作中進行MLlib的套用開發和定製開發。
適合大數據、Spark、數據挖掘領域的從業人員閱讀。
內容提要
《Spark MLlib機器學習:算法、源碼及實戰詳解》以Spark 1.4.1版本源碼為切入點,全面並且深入地解析Spark MLlib模組,著力於探索分散式機器學習的底層實現。
《Spark MLlib機器學習:算法、源碼及實戰詳解》中本著循序漸進的原則,首先解析MLlib的底層實現基礎:數據操作及矩陣向量計算操作,該部分是MLlib實現的基礎;接著對各個機器學習算法的理論知識進行講解,並且解析機器學習算法如何在MLlib中實現分散式計算;然後對MLlib源碼進行詳細的講解;最後進行MLlib實例的講解。相信通過《Spark MLlib機器學習:算法、源碼及實戰詳解》的學習,讀者可全面掌握Spark MLlib機器學習,能夠進行MLlib實戰、MLlib定製開發等。
《Spark MLlib機器學習:算法、源碼及實戰詳解》適合大數據、Spark、數據挖掘領域的從業人員閱讀,同時也為Spark開發者和大數據愛好者展現了分散式機器學習的原理和實現細節。
目錄
第一部分 Spark MLlib基礎
第1章 Spark機器學習簡介 2
1.1 機器學習介紹 2
1.2 Spark介紹 3
1.3 Spark MLlib介紹 4
第2章 Spark數據操作 6
2.1 Spark RDD操作 6
2.1.1 Spark RDD創建操作 6
2.1.2 Spark RDD轉換操作 7
2.1.3 Spark RDD行動操作 14
2.2 MLlib Statistics統計操作 15
2.2.1 列統計匯總 15
2.2.2 相關係數 16
2.2.3 假設檢驗 18
2.3 MLlib數據格式 18
2.3.1 數據處理 18
2.3.2 生成樣本 22
第3章 Spark MLlib矩陣向量 26
3.1 Breeze介紹 26
3.1.1 Breeze創建函式 27
3.1.2 Breeze元素訪問及操作函式 29
3.1.3 Breeze數值計算函式 34
3.1.4 Breeze求和函式 35
3.1.5 Breeze布爾函式 36
3.1.6 Breeze線性代數函式 37
3.1.7 Breeze取整函式 39
3.1.8 Breeze常量函式 40
3.1.9 Breeze複數函式 40
3.1.10 Breeze三角函式 40
3.1.11 Breeze對數和指數函式 40
3.2 BLAS介紹 41
3.2.1 BLAS向量-向量運算 42
3.2.2 BLAS矩陣-向量運算 42
3.2.3 BLAS矩陣-矩陣運算 43
3.3 MLlib向量 43
3.3.1 MLlib向量介紹 43
3.3.2 MLlib Vector接口 44
3.3.3 MLlib DenseVector類 46
3.3.4 MLlib SparseVector類 49
3.3.5 MLlib Vectors伴生對象 50
3.4 MLlib矩陣 57
3.4.1 MLlib矩陣介紹 57
3.4.2 MLlib Matrix接口 57
3.4.3 MLlib DenseMatrix類 59
3.4.4 MLlib SparseMatrix類 64
3.4.5 MLlib Matrix伴生對象 71
3.5 MLlib BLAS 77
3.6 MLlib分散式矩陣 93
3.6.1 MLlib分散式矩陣介紹 93
3.6.2 行矩陣(RowMatrix) 94
3.6.3 行索引矩陣(IndexedRowMatrix) 96
3.6.4 坐標矩陣(CoordinateMatrix) 97
3.6.5 分塊矩陣(BlockMatrix) 98
第二部分 Spark MLlib回歸算法
第4章 Spark MLlib線性回歸算法 102
4.1 線性回歸算法 102
4.1.1 數學模型 102
4.1.2 最小二乘法 105
4.1.3 梯度下降算法 105
4.2 源碼分析 106
4.2.1 建立線性回歸 108
4.2.2 模型訓練run方法 111
4.2.3 權重最佳化計算 114
4.2.4 線性回歸模型 121
4.3 實例 123
4.3.1 訓練數據 123
4.3.2 實例代碼 123
第5章 Spark MLlib邏輯回歸算法 126
5.1 邏輯回歸算法 126
5.1.1 數學模型 126
5.1.2 梯度下降算法 128
5.1.3 正則化 129
5.2 源碼分析 132
5.2.1 建立邏輯回歸 134
5.2.2 模型訓練run方法 137
5.2.3 權重最佳化計算 137
5.2.4 邏輯回歸模型 144
5.3 實例 148
5.3.1 訓練數據 148
5.3.2 實例代碼 148
第6章 Spark MLlib保序回歸算法 151
6.1 保序回歸算法 151
6.1.1 數學模型 151
6.1.2 L2保序回歸算法 153
6.2 源碼分析 153
6.2.1 建立保序回歸 154
6.2.2 模型訓練run方法 156
6.2.3 並行PAV計算 156
6.2.4 PAV計算 157
6.2.5 保序回歸模型 159
6.3 實例 164
6.3.1 訓練數據 164
6.3.2 實例代碼 164
第三部分 Spark MLlib分類算法
第7章 Spark MLlib貝葉斯分類算法 170
7.1 貝葉斯分類算法 170
7.1.1 貝葉斯定理 170
7.1.2 樸素貝葉斯分類 171
7.2 源碼分析 173
7.2.1 建立貝葉斯分類 173
7.2.2 模型訓練run方法 176
7.2.3 貝葉斯分類模型 179
7.3 實例 181
7.3.1 訓練數據 181
7.3.2 實例代碼 182
第8章 Spark MLlib SVM支持向量機算法 184
8.1 SVM支持向量機算法 184
8.1.1 數學模型 184
8.1.2 拉格朗日 186
8.2 源碼分析 189
8.2.1 建立線性SVM分類 191
8.2.2 模型訓練run方法 194
8.2.3 權重最佳化計算 194
8.2.4 線性SVM分類模型 196
8.3 實例 199
8.3.1 訓練數據 199
8.3.2 實例代碼 199
第9章 Spark MLlib決策樹算法 202
9.1 決策樹算法 202
9.1.1 決策樹 202
9.1.2 特徵選擇 203
9.1.3 決策樹生成 205
9.1.4 決策樹生成實例 206
9.1.5 決策樹的剪枝 208
9.2 源碼分析 209
9.2.1 建立決策樹 211
9.2.2 建立隨機森林 216
9.2.3 建立元數據 220
9.2.4 查找特徵的分裂及劃分 223
9.2.5 查找最好的分裂順序 228
9.2.6 決策樹模型 231
9.3 實例 234
9.3.1 訓練數據 234
9.3.2 實例代碼 234
第四部分 Spark MLlib聚類算法
第10章 Spark MLlib KMeans聚類算法 238
10.1 KMeans聚類算法 238
10.1.1 KMeans算法 238
10.1.2 演示KMeans算法 239
10.1.3 初始化聚類中心點 239
10.2 源碼分析 240
10.2.1 建立KMeans聚類 242
10.2.2 模型訓練run方法 247
10.2.3 聚類中心點計算 248
10.2.4 中心點初始化 251
10.2.5 快速距離計算 254
10.2.6 KMeans聚類模型 255
10.3 實例 258
10.3.1 訓練數據 258
10.3.2 實例代碼 259
第11章 Spark MLlib LDA主題模型算法 261
11.1 LDA主題模型算法 261
11.1.1 LDA概述 261
11.1.2 LDA機率統計基礎 262
11.1.3 LDA數學模型 264
11.2 GraphX基礎 267
11.3 源碼分析 270
11.3.1 建立LDA主題模型 272
11.3.2 最佳化計算 279
11.3.3 LDA模型 283
11.4 實例 288
11.4.1 訓練數據 288
11.4.2 實例代碼 288
第五部分 Spark MLlib關聯規則挖掘算法
第12章 Spark MLlib FPGrowth關聯規則算法 292
12.1 FPGrowth關聯規則算法 292
12.1.1 基本概念 292
12.1.2 FPGrowth算法 293
12.1.3 演示FP樹構建 294
12.1.4 演示FP樹挖掘 296
12.2 源碼分析 298
12.2.1 FPGrowth類 298
12.2.2 關聯規則挖掘 300
12.2.3 FPTree類 303
12.2.4 FPGrowthModel類 306
12.3 實例 306
12.3.1 訓練數據 306
12.3.2 實例代碼 306
第六部分 Spark MLlib推薦算法
第13章 Spark MLlib ALS交替最小二乘算法 310
13.1 ALS交替最小二乘算法 310
13.2 源碼分析 312
13.2.1 建立ALS 314
13.2.2 矩陣分解計算 322
13.2.3 ALS模型 329
13.3 實例 334
13.3.1 訓練數據 334
13.3.2 實例代碼 334
第14章 Spark MLlib協同過濾推薦算法 337
14.1 協同過濾推薦算法 337
14.1.1 協同過濾推薦概述 337
14.1.2 用戶評分 338
14.1.3 相似度計算 338
14.1.4 推薦計算 340
14.2 協同推薦算法實現 341
14.2.1 相似度計算 344
14.2.2 協同推薦計算 348
14.3 實例 350
14.3.1 訓練數據 350
14.3.2 實例代碼 350
第七部分 Spark MLlib神經網路算法
第15章 Spark MLlib神經網路算法綜述 354
15.1 人工神經網路算法 354
15.1.1 神經元 354
15.1.2 神經網路模型 355
15.1.3 信號前向傳播 356
15.1.4 誤差反向傳播 357
15.1.5 其他參數 360
15.2 神經網路算法實現 361
15.2.1 神經網路類 363
15.2.2 訓練準備 370
15.2.3 前向傳播 375
15.2.4 誤差反向傳播 377
15.2.5 權重更新 381
15.2.6 ANN模型 382
15.3 實例 384
15.3.1 測試數據 384
15.3.2 測試函式代碼 387
15.3.3 實例代碼 388