第1章 Spark的環境搭建與運行 1
1.1 Spark的本地安裝與配置 2
1.2 Spark集群 3
1.3 Spark編程模型 4
1.3.1 SparkContext類與SparkConf 類 4
1.3.2 Spark shell 5
1.3.3 彈性分布式數據集 6
1.3.4 廣播變量和纍加器 10
1.4 Spark Scala編程入門 11
1.5 Spark Java編程入門 14
1.6 Spark Python編程入門 17
1.7 在Amazon EC2上運行Spark 18
1.8 小結 23
第2章 設計機器學習係統 24
2.1 MovieStream介紹 24
2.2 機器學習係統商業用例 25
2.2.1 個性化 26
2.2.2 目標營銷和客戶細分 26
2.2.3 預測建模與分析 26
2.3 機器學習模型的種類 27
2.4 數據驅動的機器學習係統的組成 27
2.4.1 數據獲取與存儲 28
2.4.2 數據清理與轉換 28
2.4.3 模型訓練與測試迴路 29
2.4.4 模型部署與整閤 30
2.4.5 模型監控與反饋 30
2.4.6 批處理或實時方案的選擇 31
2.5 機器學習係統架構 31
2.6 小結 33
第3章 Spark上數據的獲取、處理與準備 34
3.1 獲取公開數據集 35
3.2 探索與可視化數據 37
3.2.1 探索用戶數據 38
3.2.2 探索電影數據 41
3.2.3 探索評級數據 43
3.3 處理與轉換數據 46
3.4 從數據中提取有用特徵 48
3.4.1 數值特徵 48
3.4.2 類彆特徵 49
3.4.3 派生特徵 50
3.4.4 文本特徵 51
3.4.5 正則化特徵 55
3.4.6 用軟件包提取特徵 56
3.5 小結 57
第4章 構建基於Spark的推薦引擎 58
4.1 推薦模型的分類 59
4.1.1 基於內容的過濾 59
4.1.2 協同過濾 59
4.1.3 矩陣分解 60
4.2 提取有效特徵 64
4.3 訓練推薦模型 67
4.3.1 使用MovieLens 100k數據集訓練模型 67
4.3.2 使用隱式反饋數據訓練模型 68
4.4 使用推薦模型 69
4.4.1 用戶推薦 69
4.4.2 物品推薦 72
4.5 推薦模型效果的評估 75
4.5.1 均方差 75
4.5.2 K值平均準確率 77
4.5.3 使用MLlib內置的評估函數 81
4.6 小結 82
第5章 Spark構建分類模型 83
5.1 分類模型的種類 85
5.1.1 綫性模型 85
5.1.2 樸素貝葉斯模型 89
5.1.3 決策樹 90
5.2 從數據中抽取閤適的特徵 91
5.3 訓練分類模型 93
5.4 使用分類模型 95
5.5 評估分類模型的性能 96
5.5.1 預測的正確率和錯誤率 96
5.5.2 準確率和召迴率 97
5.5.3 ROC麯綫和AUC 99
5.6 改進模型性能以及參數調優 101
5.6.1 特徵標準化 101
5.6.2 其他特徵 104
5.6.3 使用正確的數據格式 106
5.6.4 模型參數調優 107
5.7 小結 115
第6章 Spark構建迴歸模型 116
6.1 迴歸模型的種類 116
6.1.1 最小二乘迴歸 117
6.1.2 決策樹迴歸 117
6.2 從數據中抽取閤適的特徵 118
6.3 迴歸模型的訓練和應用 123
6.4 評估迴歸模型的性能 125
6.4.1 均方誤差和均方根誤差 125
6.4.2 平均絕對誤差 126
6.4.3 均方根對數誤差 126
6.4.4 R-平方係數 126
6.4.5 計算不同度量下的性能 126
6.5 改進模型性能和參數調優 127
6.5.1 變換目標變量 128
6.5.2 模型參數調優 132
6.6 小結 140
第7章 Spark構建聚類模型 141
7.1 聚類模型的類型 142
7.1.1 K-均值聚類 142
7.1.2 混閤模型 146
7.1.3 層次聚類 146
7.2 從數據中提取正確的特徵 146
7.3 訓練聚類模型 150
7.4 使用聚類模型進行預測 151
7.5 評估聚類模型的性能 155
7.5.1 內部評價指標 155
7.5.2 外部評價指標 156
7.5.3 在MovieLens數據集計算性能 156
7.6 聚類模型參數調優 156
7.7 小結 158
第8章 Spark應用於數據降維 159
8.1 降維方法的種類 160
8.1.1 主成分分析 160
8.1.2 奇異值分解 160
8.1.3 和矩陣分解的關係 161
8.1.4 聚類作為降維的方法 161
8.2 從數據中抽取閤適的特徵 162
8.3 訓練降維模型 169
8.4 使用降維模型 172
8.4.1 在LFW數據集上使用PCA投影數據 172
8.4.2 PCA和SVD模型的關係 173
8.5 評價降維模型 174
8.6 小結 176
第9章 Spark高級文本處理技術 177
9.1 處理文本數據有什麼特彆之處 177
9.2 從數據中抽取閤適的特徵 177
9.2.1 短語加權錶示 178
9.2.2 特徵哈希 179
9.2.3 從20新聞組數據集中提取TF-IDF特徵 180
9.3 使用TF-IDF模型 192
9.3.1 20 Newsgroups數據集的文本相似度和TF-IDF特徵 192
9.3.2 基於20 Newsgroups數據集使用TF-IDF訓練文本分類器 194
9.4 評估文本處理技術的作用 196
9.5 Word2Vec 模型 197
9.6 小結 200
第10章 Spark Streaming在實時機器學習上的應用 201
10.1 在綫學習 201
10.2 流處理 202
10.2.1 Spark Streaming介紹 202
10.2.2 使用Spark Streaming緩存和容錯 205
10.3 創建Spark Streaming應用 206
10.3.1 消息生成端 207
10.3.2 創建簡單的流處理程序 209
10.3.3 流式分析 211
10.3.4 有狀態的流計算 213
10.4 使用Spark Streaming進行在綫學習 215
10.4.1 流迴歸 215
10.4.2 一個簡單的流迴歸程序 216
10.4.3 流K-均值 220
10.5 在綫模型評估 221
10.6 小結 224
· · · · · · (
收起)