Python機器學習算法

Python機器學習算法

《Python機器學習算法》 一書作者趙志勇,電子工業出版社2017年7月出版

內容提要

《Python機器學習算法》是一本機器學習入門讀物,注重理論與實踐的結合。全書主要包括6個部分,每個部分均以典型的機器學習算法為例,從算法原理出發,由淺入深,詳細介紹算法的理論,並配合目前流行的Python語言,從零開始,實現每一個算法,以加強對機器學習算法理論的理解、增強實際的算法實踐能力,最終達到熟練掌握每一個算法的目的。與其他機器學習類圖書相比,《Python機器學習算法》同時包含算法理論的介紹和算法的實踐,以理論支撐實踐,同時,又將複雜、枯燥的理論用簡單易懂的形式表達出來,促進對理論的理解。

目錄

0 緒論 1

0.1 機器學習基礎 1

0.1.1 機器學習的概念 1

0.1.2 機器學習算法的分類 2

0.2 監督學習 3

0.2.1 監督學習 3

0.2.2 監督學習的流程 3

0.2.3 監督學習算法 4

0.3 無監督學習 4

0.3.1 無監督學習 4

0.3.2 無監督學習的流程 4

0.3.3 無監督學習算法 5

0.4 推薦系統和深度學習 6

0.4.1 推薦系統 6

0.4.2 深度學習 6

0.5 Python和機器學習算法實踐 6

參考文獻 7

第一部分 分類算法

1 Logistic Regression 10

1.1 Logistic Regression模型 10

1.1.1 線性可分VS線性不可分 10

1.1.2 Logistic Regression模型 11

1.1.3 損失函式 13

1.2 梯度下降法 14

1.2.1 梯度下降法的流程 14

1.2.2 凸最佳化與非凸最佳化 15

1.2.3 利用梯度下降法訓練Logistic Regression模型 17

1.3 梯度下降法的若干問題 18

1.3.1 選擇下降的方向 18

1.3.2 步長的選擇 19

1.4 Logistic Regression算法實踐 20

1.4.1 利用訓練樣本訓練Logistic Regression模型 20

1.4.2 最終的訓練效果 22

1.4.3 對新數據進行預測 23

參考文獻 26

2 Softmax Regression 27

2.1 多分類問題 27

2.2 Softmax Regression算法模型 28

2.2.1 Softmax Regression模型 28

2.2.2 Softmax Regression算法的代價函式 28

2.3 Softmax Regression算法的求解 29

2.4 Softmax Regression與Logistic Regression的關係 31

2.4.1 Softmax Regression中的參數特點 31

2.4.2 由Softmax Regression到Logistic Regression 31

2.5 Softmax Regression算法實踐 32

2.5.1 對Softmax Regression算法的模型進行訓練 33

2.5.2 最終的模型 34

2.5.3 對新的數據的預測 35

參考文獻 39

3 Factorization Machine 40

3.1 Logistic Regression算法的不足 40

3.2 因子分解機FM的模型 42

3.2.1 因子分解機FM模型 42

3.2.2 因子分解機FM可以處理的問題 43

3.2.3 二分類因子分解機FM算法的損失函式 43

3.3 FM算法中交叉項的處理 43

3.3.1 交叉項係數 43

3.3.2 模型的求解 44

3.4 FM算法的求解 45

3.4.1 隨機梯度下降(Stochastic Gradient Descent) 45

3.4.2 基於隨機梯度的方式求解 45

3.4.3 FM算法流程 46

3.5 因子分解機FM算法實踐 49

3.5.1 訓練FM模型 50

3.5.2 最終的訓練效果 53

3.5.3 對新的數據進行預測 55

參考文獻 57

4 支持向量機 58

4.1 二分類問題 58

4.1.1 二分類的分隔超平面 58

4.1.2 感知機算法 59

4.1.3 感知機算法存在的問題 61

4.2 函式間隔和幾何間隔 61

4.2.1 函式間隔 62

4.2.2 幾何間隔 62

4.3 支持向量機 63

4.3.1 間隔最大化 63

4.3.2 支持向量和間隔邊界 64

4.3.3 線性支持向量機 65

4.4 支持向量機的訓練 66

4.4.1 學習的對偶算法 66

4.4.2 由線性支持向量機到非線性支持向量機 68

4.4.3 序列最小最最佳化算法SMO 69

4.5 支持向量機SVM算法實踐 74

4.5.1 訓練SVM模型 74

4.5.2 利用訓練樣本訓練SVM模型 81

4.5.3 利用訓練好的SVM模型對新數據進行預測 85

參考文獻 88

5 隨機森林 89

5.1 決策樹分類器 89

5.1.1 決策樹的基本概念 89

5.1.2 選擇最佳劃分的標準 91

5.1.3 停止劃分的標準 94

5.2 CART分類樹算法 95

5.2.1 CART分類樹算法的基本原理 95

5.2.2 CART分類樹的構建 95

5.2.3 利用構建好的分類樹進行預測 98

5.3 集成學習(Ensemble Learning) 99

5.3.1 集成學習的思想 99

5.3.2 集成學習中的典型方法 99

5.4 隨機森林(Random Forests) 101

5.4.1 隨機森林算法模型 101

5.4.2 隨機森林算法流程 102

5.5 隨機森林RF算法實踐 104

5.5.1 訓練隨機森林模型 105

5.5.2 最終的訓練結果 109

5.5.3 對新數據的預測 110

參考文獻 113

6 BP神經網路 114

6.1 神經元概述 114

6.1.1 神經元的基本結構 114

6.1.2 激活函式 115

6.2 神經網路模型 116

6.2.1 神經網路的結構 116

6.2.2 神經網路中的參數說明 117

6.2.3 神經網路的計算 117

6.3 神經網路中參數的求解 118

6.3.1 神經網路損失函式 118

6.3.2 損失函式的求解 119

6.3.3 BP神經網路的學習過程 120

6.4 BP神經網路中參數的設定 126

6.4.1 非線性變換 126

6.4.2 權重向量的初始化 126

6.4.3 學習率 127

6.4.4 隱含層節點的個數 127

6.5 BP神經網路算法實踐 127

6.5.1 訓練BP神經網路模型 128

6.5.2 最終的訓練效果 132

6.5.3 對新數據的預測 133

參考文獻 136

第二部分 回歸算法

7 線性回歸 138

7.1 基本線性回歸 138

7.1.1 線性回歸的模型 138

7.1.2 線性回歸模型的損失函式 139

7.2 線性回歸的最小二乘解法 140

7.2.1 線性回歸的最小二乘解法 140

7.2.2 廣義逆的概念 141

7.3 牛頓法 141

7.3.1 基本牛頓法的原理 141

7.3.2 基本牛頓法的流程 142

7.3.3 全局牛頓法 142

7.3.4 Armijo搜尋 144

7.3.5 利用全局牛頓法求解線性回歸模型 145

7.4 利用線性回歸進行預測 146

7.4.1 訓練線性回歸模型 147

7.4.2 最終的訓練結果 149

7.4.3 對新數據的預測 150

7.5 局部加權線性回歸 152

7.5.1 局部加權線性回歸模型 152

7.5.2 局部加權線性回歸的最終結果 153

參考文獻 154

8 嶺回歸和Lasso回歸 155

8.1 線性回歸存在的問題 155

8.2 嶺回歸模型 156

8.2.1 嶺回歸模型 156

8.2.2 嶺回歸模型的求解 156

8.3 Lasso回歸模型 157

8.4 擬牛頓法 158

8.4.1 擬牛頓法 158

8.4.2 BFGS校正公式的推導 158

8.4.3 BFGS校正的算法流程 159

8.5 L-BFGS求解嶺回歸模型 162

8.5.1 BGFS算法存在的問題 162

8.5.2 L-BFGS算法思路 162

8.6 嶺回歸對數據的預測 165

8.6.1 訓練嶺回歸模型 166

8.6.2 最終的訓練結果 168

8.6.3 利用嶺回歸模型預測新的數據 168

參考文獻 171

9 CART樹回歸 172

9.1 複雜的回歸問題 172

9.1.1 線性回歸模型 172

9.1.2 局部加權線性回歸 173

9.1.3 CART算法 174

9.2 CART回歸樹生成 175

9.2.1 CART回歸樹的劃分 175

9.2.2 CART回歸樹的構建 177

9.3 CART回歸樹剪枝 179

9.3.1 前剪枝 179

9.3.2 後剪枝 180

9.4 CART回歸樹對數據預測 180

9.4.1 利用訓練數據訓練CART回歸樹模型 180

9.4.2 最終的訓練結果 182

9.4.3 利用訓練好的CART回歸樹模型對新的數據預測 185

參考文獻 187

第三部分 聚類算法

10 K-Means 190

10.1 相似性的度量 190

10.1.1 閔可夫斯基距離 191

10.1.2 曼哈頓距離 191

10.1.3 歐氏距離 191

10.2 K-Means算法原理 192

10.2.1 K-Means算法的基本原理 192

10.2.2 K-Means算法步驟 193

10.2.3 K-Means算法與矩陣分解 193

10.3 K-Means算法實踐 195

10.3.1 導入數據 196

10.3.2 初始化聚類中心 197

10.3.3 聚類過程 198

10.3.4 最終的聚類結果 199

10.4 K-Means++算法 200

10.4.1 K-Means算法存在的問題 200

10.4.2 K-Means++算法的基本思路 202

10.4.3 K-Means++算法的過程和最終效果 204

參考文獻 205

11 Mean Shift 206

11.1 Mean Shift向量 206

11.2 核函式 207

11.3 Mean Shift算法原理 209

11.3.1 引入核函式的Mean Shift向量 209

11.3.2 Mean Shift算法的基本原理 210

11.4 Mean Shift算法的解釋 212

11.4.1 機率密度梯度 212

11.4.2 Mean Shift向量的修正 213

11.4.3 Mean Shift算法流程 213

11.5 Mean Shift算法實踐 217

11.5.1 Mean Shift的主過程 218

11.5.2 Mean Shift的最終聚類結果 219

參考文獻 221

12 DBSCAN 222

12.1 基於密度的聚類 222

12.1.1 基於距離的聚類算法存在的問題 222

12.1.2 基於密度的聚類算法 225

12.2 DBSCAN算法原理 225

12.2.1 DBSCAN算法的基本概念 225

12.2.2 DBSCAN算法原理 227

12.2.3 DBSCAN算法流程 228

12.3 DBSCAN算法實踐 231

12.3.1 DBSCAN算法的主要過程 232

12.3.2 Mean Shift的最終聚類結果 234

參考文獻 236

13 Label Propagation 237

13.1 社區劃分 237

13.1.1 社區以及社區劃分 237

13.1.2 社區劃分的算法 238

13.1.3 社區劃分的評價標準 239

13.2 Label Propagation算法原理 239

13.2.1 Label Propagation算法的基本原理 239

13.2.2 標籤傳播 240

13.2.3 疊代的終止條件 242

13.3 Label Propagation算法過程 244

13.4 Label Propagation算法實踐 244

13.4.1 導入數據 245

13.4.2 社區的劃分 246

13.4.3 最終的結果 247

參考文獻 248

第四部分 推薦算法

14 協同過濾算法 250

14.1 推薦系統的概述 250

14.1.1 推薦系統 250

14.1.2 推薦問題的描述 251

14.1.3 推薦的常用方法 251

14.2 基於協同過濾的推薦 252

14.2.1 協同過濾算法概述 252

14.2.2 協同過濾算法的分類 252

14.3 相似度的度量方法 253

14.3.1 歐氏距離 254

14.3.2 皮爾遜相關係數(Pearson Correlation) 254

14.3.3 餘弦相似度 254

14.4 基於協同過濾的推薦算法 256

14.4.1 基於用戶的協同過濾算法 256

14.4.2 基於項的協同過濾算法 258

14.5 利用協同過濾算法進行推薦 260

14.5.1 導入用戶-商品數據 260

14.5.2 利用基於用戶的協同過濾算法進行推薦 261

14.5.3 利用基於項的協同過濾算法進行推薦 262

參考文獻 264

15 基於矩陣分解的推薦算法 265

15.1 矩陣分解 265

15.2 基於矩陣分解的推薦算法 266

15.2.1 損失函式 266

15.2.2 損失函式的求解 266

15.2.3 加入正則項的損失函式即求解方法 267

15.2.4 預測 269

15.3 利用矩陣分解進行推薦 270

15.3.1 利用梯度下降對用戶商品矩陣分解和預測 270

15.3.2 最終的結果 272

15.4 非負矩陣分解 273

15.4.1 非負矩陣分解的形式化定義 274

15.4.2 損失函式 274

15.4.3 最佳化問題的求解 274

15.5 利用非負矩陣分解進行推薦 277

15.5.1 利用乘法規則進行分解和預測 277

15.5.2 最終的結果 278

參考文獻 279

16 基於圖的推薦算法 280

16.1 二部圖與推薦算法 280

16.1.1 二部圖 280

16.1.2 由用戶商品矩陣到二部圖 281

16.2 PageRank算法 282

16.2.1 PageRank算法的概念 282

16.2.2 PageRank的兩個假設 283

16.2.3 PageRank的計算方法 283

16.3 PersonalRank算法 285

16.3.1 PersonalRank算法原理 285

16.3.2 PersonalRank算法的流程 286

16.4 利用PersonalRank算法進行推薦 288

16.4.1 利用PersonalRank算法進行推薦 288

16.4.2 最終的結果 291

參考文獻 291

第五部分 深度學習

17 AutoEncoder 294

17.1 多層神經網路 294

17.1.1 三層神經網路模型 294

17.1.2 由三層神經網路到多層神經網路 295

17.2 AutoEncoder模型 296

17.2.1 AutoEncoder模型結構 296

17.2.2 AutoEncoder的損失函式 297

17.3 降噪自編碼器Denoising AutoEncoder 298

17.3.1 Denoising AutoEncoder原理 298

17.3.2 Denoising AutoEncoder實現 299

17.4 利用Denoising AutoEncoders構建深度網路 302

17.4.1 無監督的逐層訓練 302

17.4.2 有監督的微調 303

17.5 利用TensorFlow實現Stacked Denoising AutoEncoders 306

17.5.1 訓練Stacked Denoising AutoEncoders模型 306

17.5.2 訓練的過程 307

參考文獻 308

18 卷積神經網路 309

18.1 傳統神經網路模型存在的問題 309

18.2 卷積神經網路 311

18.2.1 卷積神經網路中的核心概念 311

18.2.2 卷積神經網路模型 312

18.3 卷積神經網路的求解 313

18.3.1 卷積層(Convolution Layer) 313

18.3.2 下採樣層(Sub-Sampling Layer) 316

18.3.3 全連線層(Fully-Connected Layer) 316

18.4 利用TensorFlow實現CNN 316

18.4.1 CNN的實現 316

18.4.2 訓練CNN模型 320

18.4.3 訓練的過程 321

參考文獻 321

第六部分 項目實踐

19 微博精準推薦 324

19.1 精準推薦 324

19.1.1 精準推薦的項目背景 324

19.1.2 精準推薦的技術架構 325

19.1.3 離線數據挖掘 326

19.2 基於用戶行為的挖掘 327

19.2.1 基於互動內容的興趣挖掘 327

19.2.2 基於與博主互動的興趣挖掘 328

19.3 基於相似用戶的挖掘 329

19.3.1 基於“@”人的相似用戶挖掘 329

19.3.2 基於社區的相似用戶挖掘 329

19.3.3 基於協同過濾的相似用戶挖掘 331

19.4 點擊率預估 332

19.4.1 點擊率預估的概念 332

19.4.2 點擊率預估的方法 332

19.5 各種數據技術的效果 334

參考文獻 335

附錄A 336

附錄B 341

相關詞條

相關搜尋

熱門詞條

聯絡我們