Spark和Python機器學習實戰:預測分析核心方法(第2版) Machine Learning with Spark and Python: Essential Techniques for Predictive Analytics 2/e

[美]邁克爾·鮑爾斯(Michael Bowles)

  • Spark和Python機器學習實戰:預測分析核心方法(第2版)-preview-1
  • Spark和Python機器學習實戰:預測分析核心方法(第2版)-preview-2
Spark和Python機器學習實戰:預測分析核心方法(第2版)-preview-1

商品描述

本書著重介紹可以有效預測結果的兩類核心算法,包括懲罰線性回歸方法和集成方法,然後通過一系列的示例細節來展示針對不同的問題如何使用這些方法。全書分為7章,主要講述算法的選擇、構建預測模型時的要點等內容,並且結合Spark和Python技術,引入岩石與水雷、鮑魚年齡問題、紅酒口感、玻璃分類等經典數據集,將機器學習應用到數據預測分析中,幫助讀者全面系統地掌握利用機器學習進行預測分析的基本過程,並將其應用到實際項目中。

作者簡介

迈克尔·鲍尔斯(Michael Bowles)在加利福尼亚大学伯克利分校、纽黑文大学和硅谷的黑客道场教授机器学习,为机器学习项目提供咨询,还参与了半导体检测、药品设计、金融市场交易与优化等领域许多创业公司的创办。他在麻省理工学院获得助理教授职位之后,创办并经营了两家硅谷的创业公司,目前这两家公司已上市。

目錄大綱

目錄

第 1章 做預測的兩類核心算法 1

1.1 為什麽這兩類算法如此有用 1

1.2 什麽是懲罰線性回歸方法 5

1.3 什麽是集成方法 7

1.4 算法的選擇 8

1.5 構建預測模型的步驟 10

1.5.1 構造一個機器學習問題 12

1.5.2 特徵提取和特徵工程 13

1.5.3 確定訓練好的模型的性能 14

1.6 各章內容及其依賴關系 14

1.7 小結 16

第 2章 通過理解數據來瞭解問題 17

2.1 剖析一個新問題 17

2.1.1 屬性和標簽的不同類型決定模型的選擇 19

2.1.2 新數據集的註意事項 20

2.2 分類問題:用聲吶發現未爆炸的水雷 21

2.2.1 岩石與水雷數據集的物理特性 21

2.2.2 岩石與水雷數據集的統計概要 24

2.2.3 用分位數圖展示異常點 26

2.2.4 類別屬性的統計特徵 28

2.2.5 用Python pandas對岩石與水雷數據集進行統計分析 28

2.3 對岩石與水雷數據集屬性進行可視化 31

2.3.1 用平行坐標圖進行可視化 31

2.3.2 對屬性和標簽間關系進行可視化 33

2.3.3 用熱圖對屬性和標簽的相關性進行可視化 40

2.3.4 對岩石與水雷數據集探究過程的小結 41

2.4 以因素變量進行實數值預測:鮑魚的年齡 41

2.4.1 回歸問題的平行坐標圖——鮑魚年齡問題的屬性關系可視化 47

2.4.2 將相關性熱圖用於回歸問題——鮑魚年齡問題的屬性對相關性的可視化 50

2.5 用實數值屬性進行實數值預測:評估紅酒口感 52

2.6 多類別分類問題:玻璃分類 59

2.7 用PySpark理解大規模數據集 63

2.8 小結 67

第3章 構建預測模型:平衡性能、復雜度和大數據 69

3.1 基本問題:理解函數逼近 69

3.1.1 使用訓練數據 70

3.1.2 評估預測模型的性能 72

3.2 影響算法選擇及性能的因素——復雜度及數據 72

3.2.1 簡單問題和復雜問題的比較 73

3.2.2 簡單模型和復雜模型的比較 75

3.2.3 影響預測算法性能的因素 79

3.2.4 選擇算法:線性或者非線性 79

3.3 評測預測模型的性能 80

3.3.1 不同類型問題的性能評測 80

3.3.2 模擬部署後模型的性能 94

3.4 模型與數據的均衡 95

3.4.1 通過權衡問題復雜度、模型復雜度和數據集規模來選擇模型 96

3.4.2 使用前向逐步回歸來控制過擬合 97

3.4.3 評估並理解預測模型 102

3.4.4 通過懲罰回歸系數來控制過擬合——嶺回歸 104

3.5 在超大規模數據集上用PySpark訓練懲罰回歸模型 113

3.6 小結 116

第4章 懲罰線性回歸 117

4.1 為什麽懲罰線性回歸方法如此有用 117

4.1.1 模型訓練足夠快 118

4.1.2 有變量的重要性信息 118

4.1.3 部署時評估足夠快 118

4.1.4 性能可靠 118

4.1.5 稀疏解 119

4.1.6 問題可能需要線性模型 119

4.1.7 使用集成方法的時機 119

4.2 懲罰線性回歸:對線性回歸進行正則化以獲得最優性能 119

訓練線性模型:最小化誤差等 121

4.3 求解懲罰線性回歸問題 126

4.3.1 理解最小角度回歸及其與前向步進回歸的關系 126

4.3.2 使用Glmnet:快速且通用 136

4.4 將線性回歸擴展到分類問題 141

4.4.1 用懲罰回歸求解分類問題 141

4.4.2 多類別分類問題的求解 145

4.4.3 理解基擴展:用線性方法求解非線性問題 145

4.4.4 將非數值屬性引入線性方法 147

4.5 小結 150

第5章 用懲罰線性回歸方法構建預測模型 153

5.1 懲罰線性回歸的Python包 153

5.2 多變量回歸:預測紅酒口感 154

5.2.1 構建並測試預測紅酒口感的模型 155

5.2.2 部署前在整個數據集上進行訓練 158

5.3 二元分類:用懲罰線性回歸探測未爆炸水雷 165

5.4 多類別分類:犯罪現場玻璃樣本分類 184

5.5 用PySpark實現線性回歸和分類 187

5.6 用PySpark預測紅酒口感 188

5.7 用PySpark實現邏輯斯蒂回歸:岩石與水雷 193

5.8 將類別變量引入PySpark模型:預測鮑魚年齡 198

5.9 具有元參數優化的多類別邏輯斯蒂回歸 202

5.10 小結 205

第6章 集成方法 207

6.1 二元決策樹 207

6.1.1 如何用二元決策樹進行預測 210

6.1.2 如何訓練二元決策樹 210

6.1.3 決策樹的訓練等同於分割點的選擇 213

6.1.4 二元決策樹的過擬合 217

6.1.5 針對分類問題和類別特徵所做的修改 220

6.2 自舉匯聚:投票法 221

6.2.1 投票法如何工作 221

6.2.2 投票法小結 232

6.3 梯度提升法 232

6.3.1 梯度提升法的基本原理 232

6.3.2 獲取梯度提升法的最佳性能 236

6.3.3 針對多變量問題的梯度提升法 239

6.3.4 梯度提升法小結 243

6.4 隨機森林法 243

6.4.1 隨機森林法:投票法加隨機屬性子集 246

6.4.2 影響隨機森林法性能的因素 246

6.4.3 隨機森林法小結 248

6.5 小結 248

第7章 用Python構建集成模型 251

7.1 用Python集成方法包求解回歸問題 251

7.1.1 用梯度提升法預測紅酒口感 251

7.1.2 構建隨機森林模型預測紅酒口感 257

7.2 將非數值屬性引入Python集成模型 265

7.2.1 用Python將鮑魚性別屬性編碼引入梯度提升法 265

7.2.2 用梯度提升法評估性能和編碼變量的重要性 267

7.2.3 用Python將鮑魚性別屬性編碼引入隨機森林回歸 269

7.2.4 評估性能和編碼變量的重要性 272

7.3 用Python集成方法求解二元分類問題 273

7.3.1 用Python梯度提升法探測未爆炸水雷 273

7.3.2 測定梯度提升分類器的性能 276

7.3.3 用Python隨機森林法探測未爆炸水雷 278

7.3.4 構建隨機森林模型探測未爆炸水雷 279

7.3.5 測定隨機森林分類器的性能 283

7.4 用Python集成方法求解多類別分類問題 285

7.4.1 處理類別不均衡問題 286

7.4.2 用梯度提升法對玻璃進行分類 286

7.4.3 測定梯度提升模型在玻璃分類問題上的性能 291

7.4.4 用隨機森林法對玻璃進行分類 292

7.4.5 測定隨機森林模型在玻璃分類問題上的性能 296

7.5 用PySpark集成方法包求解回歸問題 297

7.5.1 用PySpark集成方法預測紅酒口感 298

7.5.2 用PySpark集成方法預測鮑魚年齡 303

7.5.3 用PySpark集成方法區分岩石與水雷 308

7.5.4 用PySpark集成方法識別玻璃類型 312

7.6 小結 314