第1章星星之火11.1大數據時代1
1.2大數據分析時代2
1.3簡單、優雅、有效——這就是Spark3
1.4核心——MLlib4
1.5星星之火,可以燎原6
1.6小結6
第2章Spark安裝和開發環境配置7
2.1Windows單機模式Spark安裝和配置7
2.1.1Windows7安裝Java7
2.1.2Windows7安裝Scala10
2.1.3IntellijIDEA下載和安裝13
2.1.4IntellijIDEA中Scala插件的安裝14
2.1.5HelloJava——使用IntellijIDEA創建Java程序18
2.1.6HelloScala——使用IntellijIDEA創建Scala程序21
2.1.7最后一腳——Spark單機版安裝26
2.2經典的WordCount29
2.2.1Spark實現WordCount29
2.2.2MapReduce實現WordCount31
2.3小結34
第3章RDD詳解35
3.1RDD是什么35
3.1.1RDD名稱的秘密35
3.1.2RDD特性36
3.1.3與其他分布式共享內存的區別37
3.1.4RDD缺陷37
3.2RDD工作原理38
3.2.1RDD工作原理圖38
3.2.2RDD的相互依賴38
3.3RDD應用API詳解39
3.3.1使用aggregate方法對給定的數據集進行方法設定39
3.3.2提前計算的cache方法42
3.3.3笛卡爾操作的cartesian方法43
3.3.4分片存儲的coalesce方法44
3.3.5以value計算的countByValue方法45
3.3.6以key計算的countByKey方法45
3.3.7除去數據集中重復項的distinct方法46
3.3.8過濾數據的filter方法47
3.3.9以行為單位操作數據的flatMap方法47
3.3.10以單個數據為目標進行操作的map方法48
3.3.11分組數據的groupBy方法48
3.3.12生成鍵值對的keyBy方法49
3.3.13同時對兩個數據進行處理的reduce方法50
3.3.14對數據進行重新排序的sortBy方法51
3.3.15合并壓縮的zip方法52
3.4小結53
第4章MLlib基本概念54
4.1MLlib基本數據類型54
4.1.1多種數據類型54
4.1.2從本地向量集起步55
4.1.3向量標簽的使用56
4.1.4本地矩陣的使用58
4.1.5分布式矩陣的使用59
4.2MLlib數理統計基本概念62
4.2.1基本統計量62
4.2.2統計量基本數據63
4.2.3距離計算64
4.2.4兩組數據相關系數計算65
4.2.5分層抽樣67
4.2.6假設檢驗69
4.2.7隨機數70
4.3小結71
第5章協同過濾算法72
5.1協同過濾72
5.1.1協同過濾概述72
5.1.2基于用戶的推薦73
5.1.3基于物品的推薦74
5.1.4協同過濾算法的不足75
5.2相似度度量75
5.2.1基于歐幾里得距離的相似度計算75
5.2.2基于余弦角度的相似度計算76
5.2.3歐幾里得相似度與余弦相似度的比較77
5.2.4第一個例子——余弦相似度實戰77
5.3MLlib中的交替最小二乘法(ALS算法)80
5.3.1最小二乘法(LS算法)詳解81
5.3.2MLlib中交替最小二乘法(ALS算法)詳解82
5.3.3ALS算法實戰83
5.4小結85
第6章MLlib線性回歸理論與實戰86
6.1隨機梯度下降算法詳解86
6.1.1道士下山的故事87
6.1.2隨機梯度下降算法的理論基礎88
6.1.3隨機梯度下降算法實戰88
6.2MLlib回歸的過擬合89
6.2.1過擬合產生的原因90
6.2.2lasso回歸與嶺回歸91
6.3MLlib線性回歸實戰91
6.3.1MLlib線性回歸基本準備91
6.3.2MLlib線性回歸實戰:商品價格與消費者收入之間的關系94
6.3.3對擬合曲線的驗證95
6.4小結97
第7章MLlib分類實戰98
7.1邏輯回歸詳解98
7.1.1邏輯回歸不是回歸算法98
7.1.2邏輯回歸的數學基礎99
7.1.3一元邏輯回歸示例100
7.1.4多元邏輯回歸示例101
7.1.5MLlib邏輯回歸驗證103
7.1.6MLlib邏輯回歸實例:腎癌的轉移判斷104
7.2支持向量機詳解106
7.2.1三角還是圓106
7.2.2支持向量機的數學基礎108
7.2.3支持向量機使用示例109
7.2.4使用支持向量機分析腎癌轉移110
7.3樸素貝葉斯詳解111
7.3.1穿褲子的男生or女生111
7.3.2貝葉斯定理的數學基礎和意義112
7.3.3樸素貝葉斯定理113
7.3.4MLlib樸素貝葉斯使用示例114
7.3.5MLlib樸素貝葉斯實戰:“僵尸粉”的鑒定115
7.4小結117
第8章決策樹與保序回歸118
8.1決策樹詳解118
8.1.1水晶球的秘密119
8.1.2決策樹的算法基礎:信息熵119
8.1.3決策樹的算法基礎——ID3算法121
8.1.4MLlib中決策樹的構建122
8.1.5MLlib中決策樹示例123
8.1.6隨機雨林與梯度提升算法(GBT)125
8.2保序回歸詳解127
8.2.1何為保序回歸128
8.2.2保序回歸示例128
8.3小結129
第9章MLlib中聚類詳解130
9.1聚類與分類130
9.1.1什么是分類130
9.1.2什么是聚類131
9.2MLlib中的Kmeans算法131
9.2.1什么是kmeans算法131
9.2.2MLlib中Kmeans算法示例133
9.2.3Kmeans算法中細節的討論134
9.3高斯混合聚類135
9.3.1從高斯分布聚類起步135
9.3.2混合高斯聚類137
9.3.3MLlib高斯混合模型使用示例137
9.4快速迭代聚類138
9.4.1快速迭代聚類理論基礎138
9.4.2快速迭代聚類示例139
9.5小結140
第10章MLlib中關聯規則141
10.1Apriori頻繁項集算法141
10.1.1啤酒與尿布141
10.1.2經典的Apriori算法142
10.1.3Apriori算法示例144
10.2FP-growth算法145
10.2.1Apriori算法的局限性145
10.2.2FP-growth算法145
10.2.3FP樹示例148
10.3小結149
第11章數據降維150
11.1奇異值分解(SVD)150
11.1.1行矩陣(RowMatrix)詳解150
11.1.2奇異值分解算法基礎151
11.1.3MLlib中奇異值分解示例152
11.2主成分分析(PCA)153
11.2.1主成分分析(PCA)的定義154
11.2.2主成分分析(PCA)的數學基礎154
11.2.3MLlib中主成分分析(PCA)示例155
11.3小結156
第12章特征提取和轉換157
12.1TF-IDF157
12.1.1如何查找所要的新聞157
12.1.2TF-IDF算法的數學計算158
12.1.3MLlib中TF-IDF示例159
12.2詞向量化工具160
12.2.1詞向量化基礎160
12.2.2詞向量化使用示例161
12.3基于卡方檢驗的特征選擇162
12.3.1“吃貨”的苦惱162
12.3.2MLlib中基于卡方檢驗的特征選擇示例163
12.4小結164
第13章MLlib實戰演練——鳶尾花分析166
13.1建模說明166
13.1.1數據的描述與分析目標166
13.1.2建模說明168
13.2數據預處理和分析171
13.2.1微觀分析——均值與方差的對比分析171
13.2.2宏觀分析——不同種類特性的長度計算174
13.2.3去除重復項——相關系數的確定176
13.3長與寬之間的關系——數據集的回歸分析180
13.3.1使用線性回歸分析長與寬之間的關系180
13.3.2使用邏輯回歸分析長與寬之間的關系183
13.4使用分類和聚類對鳶尾花數據集進行處理184
13.4.1使用聚類分析對數據集進行聚類處理184
13.4.2使用分類分析對數據集進行分類處理187
13.5最終的判定——決策樹測試188
13.5.1決定數據集的歸類——決策樹188
13.5.2決定數據集歸類的分布式方法——隨機雨林190
13.6小結191