機器學習 公式推導與代碼實現
內容描述
作為一門應用型學科,機器學習植根於數學理論,落地於代碼實現。這就意味著,掌握公式推導和代碼編寫,方能更加深入地理解機器學習算法的內在邏輯和運行機制。本書在對全部機器學習算法進行分類梳理的基礎之上,分別對監督學習單模型、監督學習集成模型、無監督學習模型、概率模型四個大類共26個經典算法進行了細致的公式推導和代碼實現,旨在幫助機器學習學習者和研究者完整地掌握算法細節、實現方法以及內在邏輯。
目錄大綱
序
前言
第 1章 機器學習預備知識 2
1.1 引言 2
1.2 關鍵術語與任務類型 2
1.3 機器學習三要素 3
1.4 機器學習核心 4
1.5 機器學習流程 5
1.6 NumPy必學必會 7
1.6.1 創建數組 7
1.6.2 數組的索引與切片 9
1.6.3 數組的基礎運算 10
1.6.4 數組維度變換 11
1.6.5 數組合併與切分 12
1.7 sklearn簡介 13
1.8章節安排 14
1.9 小結 16
第 2章 線性回歸 18
2.1 杭州的二手房房價 18
2.2 線性回歸的原理推導 19
2.3 線性回歸的代碼實現 22
2.3.1 編寫思路 22
2.3.2 基於NumPy的代碼實現 23
2.3.3 基於sklearn的模型實現 28
2.4 小結 29
第3章 邏輯回歸 30
3.1 App開屏廣告 30
3.2 邏輯回歸的原理推導 31
3.3 邏輯回歸的代碼實現 33
3.3.1 編寫思路 33
3.3.2 基於NumPy的邏輯回歸實現 34
3.3.3 基於sklearn的邏輯回歸實現 41
3.4 小結 41
第4章 回歸模型拓展 42
4.1 回到杭州二手房房價 42
4.2 LASSO回歸的原理推導 42
4.3 LASSO回歸的代碼實現 44
4.3.1 編寫思路 44
4.3.2 基於NumPy的LASSO回歸實現 45
4.3.3 基於sklearn的LASSO回歸實現 49
4.4 Ridge回歸的原理推導 49
4.5 Ridge回歸的代碼實現 50
4.6 小結 54
第5章 線性判別分析 55
5.1 LDA基本思想 55
5.2 LDA數學推導 56
5.3 LDA算法實現 57
5.3.1 基於NumPy的LDA算法實現 57
5.3.2 基於sklearn的LDA算法實現 60
5.4 小結 61
第6章 k近鄰算法 62
6.1 “猜你喜歡”的推薦邏輯 62
6.2 距離度量方式 63
6.3 k 近鄰算法的基本原理 64
6.4 k 近鄰算法的代碼實現 64
6.4.1 編寫思路 64
6.4.2 基於NumPy的k近鄰算法實現 65
6.4.3 基於sklearn的k近鄰算法實現 71
6.5 小結 71
第7章 決策樹 72
7.1 “今天是否要打高爾夫” 72
7.2 決策樹 73
7.3 特徵選擇:從信息增益到基尼指數 75
7.3.1 什麼是特徵選擇 75
7.3.2 信息增益 75
7.3.3 信息增益比 78
7.3.4 基尼指數 79
7.4 決策樹模型:從ID3到CART 81
7.4.1 ID3 81
7.4.2 C4.5 85
7.4.3 CART分類樹 86
7.4.4 CART回歸樹 86
7.4.5 CART算法實現 88
7.5 決策樹剪枝 95
7.6 小結 96
第8章 神經網絡 97
8.1 無處不在的圖像識別 97
8.2 從感知機說起 98
8.2.1 感知機推導 98
8.2.2 基於NumPy的感知機實現 100
8.3 從單層到多層 103
8.3.1 神經網絡與反向傳播 103
8.3.2 基於NumPy的神經網絡搭建 105
8.4 神經網絡的廣闊天地 114
8.5 小結 114
第9章 支持向量機 115
9.1 重新從感知機出發 115
9.2 線性可分支持向量機 116
9.2.1 線性可分支持向量機的原理推導 116
9.2.2 線性可分支持向量機的算法實現 120
9.3 近似線性可分支持向量機 125
9.3.1 近似線性可分支持向量機的原理推導 125
9.3.2 近似線性可分支持向量機的算法實現 128
9.4 線性不可分支持向量機 132
9.4.1 線性不可分與核技巧 132
9.4.2 SMO算法 135
9.4.3 線性不可分支持向量機的算法實現 137
9.5 小結 142
第 10章 AdaBoost 144
10.1 什麼是Boosting 144
10.2 AdaBoost算法的原理推導 144
10.2.1 AdaBoost基本原理 144
10.2.2 AdaBoost與前向分步算法 146
10.3 AdaBoost算法實現 147
10.3.1 基於NumPy的AdaBoost算法實現 147
10.3.2 基於sklearn的AdaBoost算法實現 153
10.4 小結 153
第 11章 GBDT 154
11.1 從提升樹到梯度提升樹 154
11.2 GBDT算法的原理推導 154
11.3 GBDT算法實現 157
11.3.1 從零開始實現一個GBDT算法系統 157
11.3.2 基於sklearn的GBDT實現 161
11.4 小結 162
第 12章 XGBoost 163
12.1 XGBoost:極度梯度提升樹 163
12.2 XGBoost算法的原理推導 164
12.3 XGBoost算法實現 168
12.3.1 XGBoost實現:基於GBDT的改進 168
12.3.2 原生庫XGBoost示例 172
12.4 小結 174
第 13章 LightGBM 175
13.1 XGBoost可優化的地方 175
13.2 LightGBM基本原理 175
13.2.1 直方圖算法 175
13.2.2 單邊梯度抽樣 176
13.2.3 互斥特徵捆綁算法 177
13.2.4 leaf-wise生長策略 178
13.3 LightGBM算法實現 179
13.4 小結 181
第 14章 CatBoost 182
14.1 機器學習中類別特徵的處理方法 182
14.2 CatBoost理論基礎 183
14.2.1 目標變量統計 183
14.2.2 特徵組合 184
14.2.3 排序提升算法 184
14.3 CatBoost算法實現 186
14.4 小結 188
第 15章 隨機森林 189
15.1 Bagging:另一種集成學習框架 189
15.2 隨機森林的基本原理 190
15.3 隨機森林的算法實現 191
15.3.1 基於NumPy的隨機森林算法實現 191
15.3.2 基於sklearn的隨機森林算法實現 195
15.4 小結 196
第 16章 集成學習:對比與調參 197
16.1 三大Boosting算法對比 197
16.2 常用的超參數調優方法 201
16.2.1 網格搜索法 201
16.2.2 隨機搜索 202
16.2.3 貝葉斯調參 203
16.3 小結 205
第 17章 聚類分析與k均值聚類算法 208
17.1 距離度量和相似度度量方式 208
17.2 聚類算法一覽 209
17.3 k均值聚類算法的原理推導 211
17.4 k均值聚類算法實現 212
17.4.1 基於NumPy的k均值聚類算法實現 212
17.4.2 基於sklearn的k均值聚類算法實現 217
17.5 小結 217
第 18章 主成分分析 218
18.1 PCA算法的原理推導 218
18.2 PCA算法實現 220
18.2.1 基於NumPy的PCA算法實現 220
18.2.2 基於sklearn的PCA算法實現 222
18.3 小結 223
第 19章 奇異值分解 224
19.1 特徵向量與矩陣分解 224
19.2 SVD算法的原理推導 225
19.3 SVD算法實現與應用 226
19.3.1 SVD算法實現 226
19.3.2 基於SVD的圖像去噪 227
19.4 小結 231
第 20章 最大信息熵模型 234
20.1 最大信息熵原理 234
20.2 最大信息熵模型的推導 234
20.3 小結 237
第 21章 貝葉斯概率模型 238
21.1 貝葉斯定理簡介 238
21.2 樸素貝葉斯 239
21.2.1 樸素貝葉斯的原理推導 239
21.2.2 基於NumPy的樸素貝葉斯實現 240
21.2.3 基於sklearn的樸素貝葉斯實現 243
21.3 貝葉斯網絡 244
21.3.1 貝葉斯網絡的原理推導 244
21.3.2 借助於pgmpy的貝葉斯網絡實現 246
21.4 小結 249
第 22章 EM算法 250
22.1 極大似然估計 250
22.2 EM算法的原理推導 251
22.3 EM算法實現 253
22.4 小結 255
第 23章 隱馬爾可夫模型 256
23.1 什麼是概率圖模型 256
23.2 HMM的定義與相關概念 257
23.3 HMM的三個經典問題 262
23.3.1 概率計算問題與前向 後向算法 262
23.3.2 參數估計問題與Baum-Welch算法 266
23.3.3 序列標註問題與維特比算法 269
23.4 小結 271
第 24章 條件隨機場 272
24.1 從生活畫像到詞性標註問題 272
24.2 概率無向圖 273
24.3 CRF的定義與形式 275
24.4 CRF的三大問題 277
24.4.1 CRF的概率計算問題 277
24.4.2 CRF的參數估計問題 278
24.4.3 CRF的序列標註問題 279
24.4.4 基於sklearn_crfsuite的CRF代碼實現 281
24.5 小結 281
第 25章 馬爾可夫鏈蒙特卡洛方法 283
25.1 前置知識與相關概念 283
25.1.1 馬爾可夫鏈 283
25.1.2 蒙特卡洛算法 285
25.2 MCMC的原理推導 287
25.2.1 MCMC採樣 287
25.2.2 Metropolis-Hasting採樣算法 289
25.2.3 Gibbs採樣算法 291
25.3 MCMC與貝葉斯推斷 296
25.4 小結 296
第 26章 機器學習模型總結 298
26.1 機器學習模型的歸納與分類 298
26.1.1 單模型與集成模型 300
26.1.2 監督模型與無監督模型 301
26.1.3 生成式模型與判別式模型 301
26.1.4 概率模型與非概率模型 302
26.2 本書的不足和未來展望 303
參考文獻 305
作者介紹
魯偉
貝葉斯統計方向碩士畢業,深度學習算法工程師,主要從事醫療數據分析、醫學圖像處理和深度學習應用相關研究與工作。著有《深度學習筆記》一書,也是“機器學習實驗室”的主理人。