本書(shū)是一本機(jī)器學(xué)習(xí)入門讀物,注重理論與實(shí)踐的結(jié)合。全書(shū)主要包括6個(gè)部分,每個(gè)部分均以典型的機(jī)器學(xué)習(xí)算法為例,從算法原理出發(fā),由淺入深,詳細(xì)分析算法的理論,并配合目前流行的Python語(yǔ)言,從零開(kāi)始,實(shí)現(xiàn)每一個(gè)算法,以加強(qiáng)對(duì)機(jī)器學(xué)習(xí)算法理論的理解、增強(qiáng)實(shí)際的算法實(shí)踐能力,終達(dá)到熟練掌握每一個(gè)算法的目的。與其他機(jī)器學(xué)習(xí)類書(shū)相比,本書(shū)同時(shí)包含算法理論的介紹和算法的實(shí)踐,以理論支撐實(shí)踐,同時(shí),又將復(fù)雜、枯燥的理論用簡(jiǎn)單易懂的形式表達(dá)出來(lái),促進(jìn)對(duì)理論的理解。
探索數(shù)據(jù)的內(nèi)在價(jià)值,洞悉人工智能背后的技術(shù)!
趙志勇,畢業(yè)于武漢大學(xué)計(jì)算機(jī)學(xué)院,CSDN博主,博客地址blog.csdn.net/google19890102,現(xiàn)就職于新浪微博,從事計(jì)算廣告的算法工作。對(duì)機(jī)器學(xué)習(xí)、優(yōu)化算法具有濃厚的興趣。
0 緒論 1
0.1 機(jī)器學(xué)習(xí)基礎(chǔ) 1
0.1.1 機(jī)器學(xué)習(xí)的概念 1
0.1.2 機(jī)器學(xué)習(xí)算法的分類 2
0.2 監(jiān)督學(xué)習(xí) 3
0.2.1 監(jiān)督學(xué)習(xí) 3
0.2.2 監(jiān)督學(xué)習(xí)的流程 3
0.2.3 監(jiān)督學(xué)習(xí)算法 4
0.3 無(wú)監(jiān)督學(xué)習(xí) 4
0.3.1 無(wú)監(jiān)督學(xué)習(xí) 4
0.3.2 無(wú)監(jiān)督學(xué)習(xí)的流程 4
0.3.3 無(wú)監(jiān)督學(xué)習(xí)算法 5
0.4 推薦系統(tǒng)和深度學(xué)習(xí) 6
0.4.1 推薦系統(tǒng) 6
0.4.2 深度學(xué)習(xí) 6
0.5 Python和機(jī)器學(xué)習(xí)算法實(shí)踐 6
參考文獻(xiàn) 7
及時(shí)部分 分類算法
1 Logistic Regression 10
1.1 Logistic Regression模型 10
1.1.1 線性可分VS線性不可分 10
1.1.2 Logistic Regression模型 11
1.1.3 損失函數(shù) 13
1.2 梯度下降法 14
1.2.1 梯度下降法的流程 14
1.2.2 凸優(yōu)化與非凸優(yōu)化 15
1.2.3 利用梯度下降法訓(xùn)練Logistic Regression模型 17
1.3 梯度下降法的若干問(wèn)題 18
1.3.1 選擇下降的方向 18
1.3.2 步長(zhǎng)的選擇 19
1.4 Logistic Regression算法實(shí)踐 20
1.4.1 利用訓(xùn)練樣本訓(xùn)練Logistic Regression模型 20
1.4.2 最終的訓(xùn)練效果 22
1.4.3 對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè) 23
參考文獻(xiàn) 26
2 Softmax Regression 27
2.1 多分類問(wèn)題 27
2.2 Softmax Regression算法模型 28
2.2.1 Softmax Regression模型 28
2.2.2 Softmax Regression算法的代價(jià)函數(shù) 28
2.3 Softmax Regression算法的求解 29
2.4 Softmax Regression與Logistic Regression的關(guān)系 31
2.4.1 Softmax Regression中的參數(shù)特點(diǎn) 31
2.4.2 由Softmax Regression到Logistic Regression 31
2.5 Softmax Regression算法實(shí)踐 32
2.5.1 對(duì)Softmax Regression算法的模型進(jìn)行訓(xùn)練 33
2.5.2 最終的模型 34
2.5.3 對(duì)新的數(shù)據(jù)的預(yù)測(cè) 35
參考文獻(xiàn) 39
3 Factorization Machine 40
3.1 Logistic Regression算法的不足 40
3.2 因子分解機(jī)FM的模型 42
3.2.1 因子分解機(jī)FM模型 42
3.2.2 因子分解機(jī)FM可以處理的問(wèn)題 43
3.2.3 二分類因子分解機(jī)FM算法的損失函數(shù) 43
3.3 FM算法中交叉項(xiàng)的處理 43
3.3.1 交叉項(xiàng)系數(shù) 43
3.3.2 模型的求解 44
3.4 FM算法的求解 45
3.4.1 隨機(jī)梯度下降(Stochastic Gradient Descent) 45
3.4.2 基于隨機(jī)梯度的方式求解 45
3.4.3 FM算法流程 46
3.5 因子分解機(jī)FM算法實(shí)踐 49
3.5.1 訓(xùn)練FM模型 50
3.5.2 最終的訓(xùn)練效果 53
3.5.3 對(duì)新的數(shù)據(jù)進(jìn)行預(yù)測(cè) 55
參考文獻(xiàn) 57
4 支持向量機(jī) 58
4.1 二分類問(wèn)題 58
4.1.1 二分類的分隔超平面 58
4.1.2 感知機(jī)算法 59
4.1.3 感知機(jī)算法存在的問(wèn)題 61
4.2 函數(shù)間隔和幾何間隔 61
4.2.1 函數(shù)間隔 62
4.2.2 幾何間隔 62
4.3 支持向量機(jī) 63
4.3.1 間隔較大化 63
4.3.2 支持向量和間隔邊界 64
4.3.3 線性支持向量機(jī) 65
4.4 支持向量機(jī)的訓(xùn)練 66
4.4.1 學(xué)習(xí)的對(duì)偶算法 66
4.4.2 由線性支持向量機(jī)到非線性支持向量機(jī) 68
4.4.3 序列最小化算法SMO 69
4.5 支持向量機(jī)SVM算法實(shí)踐 74
4.5.1 訓(xùn)練SVM模型 74
4.5.2 利用訓(xùn)練樣本訓(xùn)練SVM模型 81
4.5.3 利用訓(xùn)練好的SVM模型對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè) 85
參考文獻(xiàn) 88
5 隨機(jī)森林 89
5.1 決策樹(shù)分類器 89
5.1.1 決策樹(shù)的基本概念 89
5.1.2 選擇劃分的標(biāo)準(zhǔn) 91
5.1.3 停止劃分的標(biāo)準(zhǔn) 94
5.2 CART分類樹(shù)算法 95
5.2.1 CART分類樹(shù)算法的基本原理 95
5.2.2 CART分類樹(shù)的構(gòu)建 95
5.2.3 利用構(gòu)建好的分類樹(shù)進(jìn)行預(yù)測(cè) 98
5.3 集成學(xué)習(xí)(Ensemble Learning) 99
5.3.1 集成學(xué)習(xí)的思想 99
5.3.2 集成學(xué)習(xí)中的典型方法 99
5.4 隨機(jī)森林(Random Forests) 101
5.4.1 隨機(jī)森林算法模型 101
5.4.2 隨機(jī)森林算法流程 102
5.5 隨機(jī)森林RF算法實(shí)踐 104
5.5.1 訓(xùn)練隨機(jī)森林模型 105
5.5.2 最終的訓(xùn)練結(jié)果 109
5.5.3 對(duì)新數(shù)據(jù)的預(yù)測(cè) 110
參考文獻(xiàn) 113
6 BP神經(jīng)網(wǎng)絡(luò) 114
6.1 神經(jīng)元概述 114
6.1.1 神經(jīng)元的基本結(jié)構(gòu) 114
6.1.2 激活函數(shù) 115
6.2 神經(jīng)網(wǎng)絡(luò)模型 116
6.2.1 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 116
6.2.2 神經(jīng)網(wǎng)絡(luò)中的參數(shù)說(shuō)明 117
6.2.3 神經(jīng)網(wǎng)絡(luò)的計(jì)算 117
6.3 神經(jīng)網(wǎng)絡(luò)中參數(shù)的求解 118
6.3.1 神經(jīng)網(wǎng)絡(luò)損失函數(shù) 118
6.3.2 損失函數(shù)的求解 119
6.3.3 BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程 120
6.4 BP神經(jīng)網(wǎng)絡(luò)中參數(shù)的設(shè)置 126
6.4.1 非線性變換 126
6.4.2 權(quán)重向量的初始化 126
6.4.3 學(xué)習(xí)率 127
6.4.4 隱含層節(jié)點(diǎn)的個(gè)數(shù) 127
6.5 BP神經(jīng)網(wǎng)絡(luò)算法實(shí)踐 127
6.5.1 訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型 128
6.5.2 最終的訓(xùn)練效果 132
6.5.3 對(duì)新數(shù)據(jù)的預(yù)測(cè) 133
參考文獻(xiàn) 136
第二部分 回歸算法
7 線性回歸 138
7.1 基本線性回歸 138
7.1.1 線性回歸的模型 138
7.1.2 線性回歸模型的損失函數(shù) 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 利用線性回歸進(jìn)行預(yù)測(cè) 146
7.4.1 訓(xùn)練線性回歸模型 147
7.4.2 最終的訓(xùn)練結(jié)果 149
7.4.3 對(duì)新數(shù)據(jù)的預(yù)測(cè) 150
7.5 局部加權(quán)線性回歸 152
7.5.1 局部加權(quán)線性回歸模型 152
7.5.2 局部加權(quán)線性回歸的最終結(jié)果 153
參考文獻(xiàn) 154
8 嶺回歸和Lasso回歸 155
8.1 線性回歸存在的問(wèn)題 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校正公式的推導(dǎo) 158
8.4.3 BFGS校正的算法流程 159
8.5 L-BFGS求解嶺回歸模型 162
8.5.1 BGFS算法存在的問(wèn)題 162
8.5.2 L-BFGS算法思路 162
8.6 嶺回歸對(duì)數(shù)據(jù)的預(yù)測(cè) 165
8.6.1 訓(xùn)練嶺回歸模型 166
8.6.2 最終的訓(xùn)練結(jié)果 168
8.6.3 利用嶺回歸模型預(yù)測(cè)新的數(shù)據(jù) 168
參考文獻(xiàn) 171
9 CART樹(shù)回歸 172
9.1 復(fù)雜的回歸問(wèn)題 172
9.1.1 線性回歸模型 172
9.1.2 局部加權(quán)線性回歸 173
9.1.3 CART算法 174
9.2 CART回歸樹(shù)生成 175
9.2.1 CART回歸樹(shù)的劃分 175
9.2.2 CART回歸樹(shù)的構(gòu)建 177
9.3 CART回歸樹(shù)剪枝 179
9.3.1 前剪枝 179
9.3.2 后剪枝 180
9.4 CART回歸樹(shù)對(duì)數(shù)據(jù)預(yù)測(cè) 180
9.4.1 利用訓(xùn)練數(shù)據(jù)訓(xùn)練CART回歸樹(shù)模型 180
9.4.2 最終的訓(xùn)練結(jié)果 182
9.4.3 利用訓(xùn)練好的CART回歸樹(shù)模型對(duì)新的數(shù)據(jù)預(yù)測(cè) 185
參考文獻(xiàn) 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算法實(shí)踐 195
10.3.1 導(dǎo)入數(shù)據(jù) 196
10.3.2 初始化聚類中心 197
10.3.3 聚類過(guò)程 198
10.3.4 最終的聚類結(jié)果 199
10.4 K-Means 算法 200
10.4.1 K-Means算法存在的問(wèn)題 200
10.4.2 K-Means 算法的基本思路 202
10.4.3 K-Means 算法的過(guò)程和最終效果 204
參考文獻(xiàn) 205
11 Mean Shift 206
11.1 Mean Shift向量 206
11.2 核函數(shù) 207
11.3 Mean Shift算法原理 209
11.3.1 引入核函數(shù)的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算法實(shí)踐 217
11.5.1 Mean Shift的主過(guò)程 218
11.5.2 Mean Shift的最終聚類結(jié)果 219
參考文獻(xiàn) 221
12 DBSCAN 222
12.1 基于密度的聚類 222
12.1.1 基于距離的聚類算法存在的問(wèn)題 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算法實(shí)踐 231
12.3.1 DBSCAN算法的主要過(guò)程 232
12.3.2 Mean Shift的最終聚類結(jié)果 234
參考文獻(xiàn) 236
13 Label Propagation 237
13.1 社區(qū)劃分 237
13.1.1 社區(qū)以及社區(qū)劃分 237
13.1.2 社區(qū)劃分的算法 238
13.1.3 社區(qū)劃分的評(píng)價(jià)標(biāo)準(zhǔn) 239
13.2 Label Propagation算法原理 239
13.2.1 Label Propagation算法的基本原理 239
13.2.2 標(biāo)簽傳播 240
13.2.3 迭代的終止條件 242
13.3 Label Propagation算法過(guò)程 244
13.4 Label Propagation算法實(shí)踐 244
13.4.1 導(dǎo)入數(shù)據(jù) 245
13.4.2 社區(qū)的劃分 246
13.4.3 最終的結(jié)果 247
參考文獻(xiàn) 248
第四部分 推薦算法
14 協(xié)同過(guò)濾算法 250
14.1 推薦系統(tǒng)的概述 250
14.1.1 推薦系統(tǒng) 250
14.1.2 推薦問(wèn)題的描述 251
14.1.3 推薦的常用方法 251
14.2 基于協(xié)同過(guò)濾的推薦 252
14.2.1 協(xié)同過(guò)濾算法概述 252
14.2.2 協(xié)同過(guò)濾算法的分類 252
14.3 相似度的度量方法 253
14.3.1 歐氏距離 254
14.3.2 皮爾遜相關(guān)系數(shù)(Pearson Correlation) 254
14.3.3 余弦相似度 254
14.4 基于協(xié)同過(guò)濾的推薦算法 256
14.4.1 基于用戶的協(xié)同過(guò)濾算法 256
14.4.2 基于項(xiàng)的協(xié)同過(guò)濾算法 258
14.5 利用協(xié)同過(guò)濾算法進(jìn)行推薦 260
14.5.1 導(dǎo)入用戶-商品數(shù)據(jù) 260
14.5.2 利用基于用戶的協(xié)同過(guò)濾算法進(jìn)行推薦 261
在人工智能時(shí)代,機(jī)器學(xué)習(xí)已經(jīng)成了互聯(lián)網(wǎng)從業(yè)人員和在校學(xué)生的一門必修課。市場(chǎng)上不乏機(jī)器學(xué)習(xí)相關(guān)的書(shū)籍,但大都晦澀難懂而缺乏應(yīng)用場(chǎng)景。本書(shū)是作者在新浪微博廣告業(yè)務(wù)上一手的實(shí)踐經(jīng)驗(yàn)和心得體會(huì),具有極佳的實(shí)用性,非常適合于對(duì)機(jī)器學(xué)習(xí)感興趣但沒(méi)有經(jīng)驗(yàn)的開(kāi)發(fā)人員,和渴望了解“理論知識(shí)如何在業(yè)務(wù)中應(yīng)用”的在校學(xué)生,相信你們一定可以從中找到想要的答案。
——新浪微博高級(jí)技術(shù)經(jīng)理 姜貴彬
本書(shū)沒(méi)有使用高深復(fù)雜的數(shù)學(xué)邏輯來(lái)解釋機(jī)器學(xué)習(xí),而是從直觀簡(jiǎn)潔的介紹入手,通俗易懂,再輔助于代碼實(shí)現(xiàn)幫助讀者理解算法細(xì)節(jié),是機(jī)器學(xué)習(xí)入門一本不可多得的好書(shū),推薦。
——百度博學(xué)技術(shù)專家 毛欽
本書(shū)從具體的代碼開(kāi)始去理解抽象的算法,給讀者一種腳踏實(shí)地的感覺(jué),推薦給所有工程出身有志于算法的工程師。
——阿里媽媽算法工程技術(shù)專家 易慧民
本書(shū)對(duì)常用的機(jī)器學(xué)習(xí)算法進(jìn)行了深入和的介紹,書(shū)中大量的代碼清單令人印象尤為深刻,確實(shí)是一本實(shí)用易懂、快速入門的好書(shū)。
——美團(tuán) 大眾點(diǎn)評(píng)博學(xué)技術(shù)專家 潘文彬
有點(diǎn)折痕,不影響閱讀。書(shū)中有些數(shù)學(xué)公式?jīng)]有推導(dǎo),閱讀起來(lái)有點(diǎn)不明白。
算是基礎(chǔ)性質(zhì)的閱讀資料,入門不錯(cuò)
內(nèi)容一般只適合初學(xué)者