Spark 3.0大數據分析與挖掘:基於機器學習
內容描述
Spark作為新興的、應用範圍廣泛的大數據處理開源框架,吸引了大量的大數據分析與挖掘從業人員進行相關內容的學習與開發,其中ML是Spark 3.0機器學習框架使用的核心。本書用於Spark 3.0 ML大數據分析與挖掘入門,配套示例源碼、PPT課件、數據集、思維導圖、開發環境和作者答疑服務。
本書共分13章,從Spark 3.0大數據分析概述、基礎安裝和配置開始,依次介紹ML的DataFrame、ML的基本概念,以及協同過濾、線性回歸、分類、決策樹與隨機森林、聚類、關聯規則、數據降維、特徵提取和轉換等數據處理方法;最後通過經典的鳶尾花分析實例,回顧前面的學習內容,實現了一個完整的數據分析與挖掘過程。
本書採取實例和理論相結合的方式,講解細致直觀,示例豐富,適合Spark 3.0機器學習初學者、大數據分析和挖掘人員,也適合高等院校和培訓機構人工智能與大數據相關專業的師生教學參考。
目錄大綱
目 錄
第1章 Spark大數據分析概述 1
1.1 大數據時代 1
1.2 大數據分析的要素 2
1.3 簡單、優雅、有效—這就是Spark 3
1.4 Spark 3.0核心—ML 4
1.5 星星之火,可以燎原 6
1.6 小結 6
第2章 Spark 3.0安裝和開發環境配置 7
2.1 Windows 10單機模式下安裝和配置Spark 7
2.1.1 Windows 10安裝Java 8 7
2.1.2 Windows 10安裝Scala 2.12.10 10
2.1.3 Intellij IDEA下載和安裝 13
2.1.4 Intellij IDEA中Scala插件的安裝 13
2.1.5 HelloJava—使用Intellij IDEA創建Java程序 16
2.1.6 HelloScala—使用Intellij IDEA創建Scala程序 19
2.1.7 最後一腳—Spark 3.0單機版安裝 22
2.2 經典的wordCount 25
2.2.1 Spark 3.0實現wordCount 25
2.2.2 MapReduce實現wordCount 27
2.3 小結 30
第3章 DataFrame詳解 31
3.1 DataFrame是什麽 31
3.1.1 DataFrame與RDD的關系 31
3.1.2 DataFrame理解及特性 32
3.1.3 DataFrame與DataSet的區別 34
3.1.4 DataFrame的缺陷 34
3.2 DataFrame工作原理 35
3.2.1 DataFrame工作原理圖 35
3.2.2 寬依賴與窄依賴 35
3.3 DataFrame應用API和操作詳解 37
3.3.1 創建 DataFrame 37
3.3.2 提前計算的cache方法 39
3.3.3 用於列篩選的select和selectExpr方法 41
3.3.4 DataFrame的收集行collect方法 42
3.3.5 DataFrame計算行數count方法 43
3.3.6 DataFrame限制輸出limit方法 44
3.3.7 除去數據集中重復項的distinct方法 45
3.3.8 過濾數據的filter方法 46
3.3.9 以整體數據為單位操作數據的flatMap方法 46
3.3.10 以單個數據為目標進行操作的map方法 47
3.3.11 分組數據的groupBy和agg方法 48
3.3.12 刪除數據集中某列的drop方法 49
3.3.13 隨機採樣方法和隨機劃分方法 49
3.3.14 排序類型操作的sort和orderBy方法 51
3.3.15 DataFrame和Dataset以及RDD之間的相互轉換 52
3.4 小結 53
第4章 ML基本概念 54
4.1 ML基本數據類型及管道技術 54
4.1.1 支持多種數據類型 55
4.1.2 管道技術 55
4.1.3 管道中的主要概念 55
4.1.4 管道的工作流程 56
4.1.5 Pipeline的使用 57
4.2 ML數理統計基本概念 61
4.2.1 基本統計量 62
4.2.2 統計量基本數據 62
4.2.3 距離計算 64
4.2.4 兩組數據相關系數計算 65
4.2.5 分層抽樣 68
4.2.6 假設檢驗 69
4.2.7 隨機數 71
4.3 小結 72
第5章 協同過濾算法 73
5.1 協同過濾 73
5.1.1 協同過濾概述 73
5.1.2 基於用戶的推薦UserCF 74
5.1.3 基於物品的推薦ItemCF 75
5.1.4 協同過濾算法的不足 76
5.2 相似度度量 76
5.2.1 基於歐幾里得距離的相似度計算 76
5.2.2 基於餘弦角度的相似度計算 77
5.2.3 歐幾里得相似度與餘弦相似度的比較 78
5.2.4 基於餘弦相似度的用戶相似度計算示例 78
5.3 交替最小二乘法 82
5.3.1 最小二乘法詳解 82
5.3.2 ML中交替最小二乘法詳解 83
5.3.3 ALS算法示例 83
5.4 小結 88
第6章 線性回歸理論與實戰 89
6.1 隨機梯度下降算法詳解 90
6.1.1 道士下山的故事 90
6.1.2 隨機梯度下降算法的理論基礎 91
6.1.3 隨機梯度下降算法實戰 92
6.2 回歸的過擬合 93
6.2.1 過擬合產生的原因 93
6.2.2 Lasso回歸、嶺回歸與ElasticNet回歸 94
6.3 ML線性回歸示例 95
6.3.1 線性回歸程序 95
6.3.2 線性回歸:廣義線性回歸 98
6.4 小結 99
第7章 分類實戰 100
7.1 邏輯回歸詳解 100
7.1.1 邏輯回歸不是回歸算法 101
7.1.2 邏輯回歸的數學基礎 101
7.1.3 ML邏輯回歸二分類示例 102
7.1.4 ML邏輯回歸多分類示例 105
7.1.5 ML邏輯回歸匯總提取 108
7.1.6 ML邏輯回歸處理文本文檔 109
7.2 線性支持向量機詳解 109
7.2.1 三角還是圓 110
7.2.2 支持向量機的數學基礎 111
7.2.3 ML支持向量機示例 112
7.2.4 ML支持向量機進行分類預測 113
7.3 樸素貝葉斯分類器詳解 115
7.3.1 穿褲子的男生or女生 115
7.3.2 貝葉斯定理的數學基礎和意義 116
7.3.3 樸素貝葉斯定理 117
7.3.4 ML樸素貝葉斯使用示例 117
7.3.5 ML樸素貝葉斯中文文本分類 120
7.4 小結 123
第8章 決策樹與隨機森林 124
8.1 決策樹詳解 125
8.1.1 水晶球的秘密 125
8.1.2 決策樹的算法基礎:信息熵 126
8.1.3 決策樹的算法基礎—ID3算法 127
8.1.4 ML中決策樹的構建 128
8.1.5 ML中決策樹示例 130
8.2 隨機森林與梯度提升算法 132
8.3 小結 138
第9章 聚類 139
9.1 聚類與分類 139
9.1.1 什麽是分類 139
9.1.2 什麽是聚類 140
9.2 K-means算法 140
9.2.1 K-means算法及其算法步驟 141
9.2.2 ML中K-means算法示例 142
9.2.3 K-means算法中細節的討論 144
9.3 高斯混合聚類 144
9.3.1 從高斯分佈聚類起步 145
9.3.2 混合高斯模型 146
9.3.3 ML高斯混合模型使用示例 147
9.4 快速迭代聚類 148
9.4.1 快速迭代聚類理論基礎 148
9.4.2 ML快速迭代聚類使用示例 149
9.5 小結 150
第10章 關聯規則 151
10.1 Apriori頻繁項集算法 151
10.1.1 “啤酒與尿布”的經典故事 151
10.1.2 經典的Apriori算法 152
10.1.3 Apriori算法示例 154
10.2 FP-growth算法 155
10.2.1 Apriori算法的局限性 155
10.2.2 FP-growth算法 155
10.2.3 ML中的FP樹算法示例 158
10.3 小結 160
第11章 數據降維 161
11.1 奇異值分解 161
11.1.1 行矩陣詳解 162
11.1.2 奇異值分解算法基礎 162
11.1.3 ML中奇異值分解示例 163
11.2 主成分分析 164
11.2.1 主成分分析的定義 165
11.2.2 主成分分析的數學基礎 165
11.2.3 ML中主成分分析示例 166
11.3 小結 167
第12章 特徵提取和轉換 169
12.1 TF-IDF 169
12.1.1 如何查找想要的新聞 170
12.1.2 TF-IDF算法的數學計算 170
12.1.3 ML中TF-IDF示例 171
12.2 詞向量化Word2Vec 173
12.2.1 詞向量化基礎 173
12.2.2 ML中詞向量化使用示例 174
12.3 基於卡方檢驗的特徵選擇 176
12.3.1 “吃貨”的苦惱 176
12.3.2 ML中基於卡方檢驗的特徵選擇示例 177
12.4 小結 179
第13章 ML實戰演練—鳶尾花分析 180
13.1 建模說明 180
13.1.1 數據的描述與分析目標 180
13.1.2 建模說明 182
13.2 數據預處理和分析 185
13.2.1 微觀分析—均值與方差的對比分析 185
13.2.2 宏觀分析—不同種類特性的長度計算 189
13.2.3 去除重復項—相關系數的確定 192
13.3 長與寬之間的關系—數據集的回歸分析 196
13.3.1 使用線性回歸分析長與寬之間的關系 196
13.3.2 使用邏輯回歸分析長與寬之間的關系 198
13.4 使用分類和聚類對鳶尾花數據集進行處理 201
13.4.1 使用聚類分析對數據集進行聚類處理 202
13.4.2 使用分類分析對數據集進行分類處理 206
13.5 最終的判定—決策樹測試 208
13.5.1 決定數據集歸類的方法之一—決策樹 208
13.5.2 決定數據集歸類的方法之二—隨機森林 211
13.6 小結 213