全書共 10 章,第 1 章介紹了機器學習算法的基本概念、分類及本書開發(fā)環(huán)境的搭建。第 2 章介紹了機器學習算法中經常用到的 NumPy 相關知識及繪圖工具包 Matplotlib。從第 3 章開始介紹機器學習算法,第 3 章介紹了最簡單也是最常用的線性回歸算法。第 4 章介紹了搜索算法,包括梯度下降算法、隨機梯度下降算法、小批量梯度下降算法、牛頓迭代算法及坐標下降算法。第 5 章介紹了二分類的 Logistic回歸算法和多元回歸算法 SoftMax,以及評價分類結果優(yōu)劣的各種指標。第 6 章介紹了支持向量機算法及支持向量機的核函數方法。第 7 章介紹了樸素貝葉斯算法。第 8 章介紹了決策樹優(yōu)化算法及由多棵決策樹構成的隨機森林算法等集成學習算法。第 9 章介紹了聚類算法,包括 K 均值算法、合并聚類算法、DBSCAN 算法等。第 10 章介紹了降維算法,主要包括主成分分析法和主成分分析的核方法。每章都包含大量的實戰(zhàn)案例,既有自行實現的算法,也有直接調用 Sklearn 工具庫實現的算法。本書配備思考與練習,全書所有的示例程序都提供完整的源代碼,讀者可登錄華信教育資源網或GitHub 網站免費下載。本書適合作為人工智能、大數據等專業(yè)的學生教材,對于人工智能相關培訓機構、人工智能愛好者,也有一定的參考價值。
陳鑫,博士,畢業(yè)于中山大學,廣東機電職業(yè)技術學院計算機與設計學院專職教師。中國計算機學會會員,著作方向為人工智能,曾出版《C++ 程序設計實踐案例教程》。主持基于深度學習的人臉識別考勤系統(tǒng)的設計與研究項目,參與國家重點基礎研究發(fā)展計劃(973 計劃)項目課題、廣東省自然科學基金重大基礎研究培育項目、中山大學高校基本科研業(yè)務費2017 年度重大項目和前沿新興交叉學科培育資助計劃等重大項目。
第 1 章 機器學習算法概述 ………………………………………………………………… 1
1.1 機器學習 …………………………………………………………………………… 1
1.2 機器學習分類 ……………………………………………………………………… 2
1.2.1 監(jiān)督學習 …………………………………………………………………… 2
1.2.2 無監(jiān)督學習 ………………………………………………………………… 2
1.2.3 強化學習 …………………………………………………………………… 3
1.3 機器學習中的基本概念 …………………………………………………………… 3
1.4 機器學習環(huán)境搭建 ………………………………………………………………… 4
1.4.1 Python 安裝 ………………………………………………………………… 4
1.4.2 PyCharm 及相關包的下載安裝 …………………………………………… 6
1.4.3 JupyterLab …………………………………………………………………… 9
1.5 本章小結 ……………………………………………………………………………12
思考與練習…………………………………………………………………………………12
第 2 章? NumPy 和 Matplotlib 入門 ……………………………………………………… 13
2.1 NumPy 數組基礎 ……………………………………………………………………13
2.1.1 創(chuàng)建 NumPy 數組……………………………………………………………14
2.1.2 NumPy 數組的索引與切片 …………………………………………………16
2.1.3 NumPy 數組的變形 …………………………………………………………18
2.1.4 NumPy 合并與分割 …………………………………………………………20
2.1.5 NumPy 的通用函數 …………………………………………………………25
2.1.6 NumPy 數組的聚合運算 ……………………………………………………27
2.1.7 NumPy 數組的廣播 …………………………………………………………28
2.1.8 NumPy 數組比較、掩碼和布爾邏輯 ………………………………………30
2.1.9 NumPy 花哨的索引 …………………………………………………………30
2.1.10 NumPy 的矩陣運算 ………………………………………………………32
2.2 Matplotlib 數據可視化 ………………………………………………………………36
2.2.1 線形圖 ………………………………………………………………………36
2.2.2 散點圖 ………………………………………………………………………39
2.2.3 直方圖和柱狀圖 ……………………………………………………………41
2.2.4 等高線圖 ……………………………………………………………………43
2.2.5 多子圖 ………………………………………………………………………46
2.2.6 三維圖像 ……………………………………………………………………50
2.3 本章小結 ……………………………………………………………………………53
思考與練習…………………………………………………………………………………53
第 3 章? 線性回歸算法 …………………………………………………………………… 54
3.1 簡單線性回歸 ………………………………………………………………………54
3.2 正規(guī)方程算法(最小二乘法)………………………………………………………55
3.3 多項式回歸 …………………………………………………………………………61
3.4 線性回歸的正則化算法 ……………………………………………………………64
3.5 Sklearn 的線性回歸 …………………………………………………………………66
3.6 本章小結 ……………………………………………………………………………69
思考與練習…………………………………………………………………………………69
第 4 章? 機器學習中的搜索算法 ………………………………………………………… 70
4.1 梯度下降算法 ………………………………………………………………………70
4.1.1 梯度下降算法概述 …………………………………………………………70
4.1.2 模擬實現梯度下降算法 ……………………………………………………71
4.1.3 線性回歸中的梯度下降算法 ………………………………………………73
4.2 隨機梯度下降算法 …………………………………………………………………75
4.2.1 回歸問題中的隨機梯度下降算法 …………………………………………76
4.2.2 梯度下降算法與隨機梯度下降算法的效果對比 …………………………78
4.3 小批量梯度下降算法 ………………………………………………………………81
4.4 牛頓迭代算法 ………………………………………………………………………85
4.4.1 模擬實現牛頓迭代算法 ……………………………………………………85
4.4.2 線性回歸問題中的牛頓迭代算法 …………………………………………87
4.5 坐標下降算法 ………………………………………………………………………88
4.6 Sklearn 的隨機梯度下降算法 ………………………………………………………90
4.7 本章小結 ……………………………………………………………………………96
思考與練習…………………………………………………………………………………96
第 5 章? Logistic 回歸算法 ………………………………………………………………… 97
5.1 Logistic 回歸的基本概念 ……………………………………………………………97
5.1.1 Sigmoid() 函數 ………………………………………………………………97
5.1.2 Logistic 模型 …………………………………………………………………98
5.2 Logistic 回歸算法的應用 ……………………………………………………………99
5.3 評價分類結果 …………………………………………………………………… 103
5.3.1 準確率(Accuracy)……………………………………………………… 103
5.3.2 精確率 (Precision) 和召回率 (Recall) …………………………………… 104
5.3.3 ROC 曲線和 AUC 度量 ………………………………………………… 115
5.4 多元回歸算法 SoftMax…………………………………………………………… 118
5.4.1 SoftMax 回歸基本概念 ………………………………………………… 119
5.4.2 SoftMax 回歸優(yōu)化算法 ………………………………………………… 120
5.5 Sklearn 的 Logistic 回歸算法 …………………………………………………… 126
5.6 本章小結 ………………………………………………………………………… 130
思考與練習……………………………………………………………………………… 130
第 6 章? 支持向量機算法 ………………………………………………………………… 132
6.1 支持向量機的基本概念 ………………………………………………………… 132
6.1.1 感知機 …………………………………………………………………… 132
6.1.2 支持向量機 ……………………………………………………………… 137
6.1.3 支持向量機的對偶 ……………………………………………………… 138
6.2 支持向量機優(yōu)化算法 …………………………………………………………… 139
6.3 核方法 …………………………………………………………………………… 144
6.4 軟間隔支持向量機 ……………………………………………………………… 153
6.4.1 軟間隔支持向量機的概念 ……………………………………………… 153
6.4.2 Hinge 損失函數與軟間隔支持向量機…………………………………… 156
6.5 Sklearn 的 SVM 庫 ……………………………………………………………… 159
6.5.1 Sklearn SVM 算法庫使用概述…………………………………………… 159
6.5.2 SVM 核函數概述 ………………………………………………………… 159
6.5.3 SVM 分類算法的使用 …………………………………………………… 160
6.5.4 SVM 算法的調參要點 …………………………………………………… 162
6.6 本章小結 ………………………………………………………………………… 174
思考與練習……………………………………………………………………………… 174
第 7 章? 樸素貝葉斯算法 ………………………………………………………………… 175
7.1 樸素貝葉斯 ……………………………………………………………………… 175
7.1.1 數學基礎 ………………………………………………………………… 175
7.1.2 樸素貝葉斯的種類 ……………………………………………………… 176
7.2 樸素貝葉斯算法分類 …………………………………………………………… 177
7.2.1 基于極大似然估計的樸素貝葉斯算法 ………………………………… 178
7.2.2 基于貝葉斯估計的樸素貝葉斯算法 …………………………………… 180
7.3 Sklearn 的樸素貝葉斯算法 ……………………………………………………… 183
7.3.1 Sklearn 的高斯樸素貝葉斯實現 ………………………………………… 183
7.3.2 Sklearn 的多項式樸素貝葉斯實現 ……………………………………… 184
7.3.3 Sklearn 的伯努利樸素貝葉斯實現 ……………………………………… 186
7.4 本章小結 ………………………………………………………………………… 188
思考與練習……………………………………………………………………………… 188
第 8 章? 決策樹算法 ……………………………………………………………………… 189
8.1 決策樹的基本概念 ……………………………………………………………… 189
8.2 決策樹優(yōu)化算法 ………………………………………………………………… 194
8.2.1 決策樹回歸問題的 CART 算法 ………………………………………… 195
8.2.2 決策樹分類問題的 CART 算法 ………………………………………… 196
8.3 CART 算法的實現 ……………………………………………………………… 198
8.3.1 決策樹 CART 算法實現 ………………………………………………… 198
8.3.2 決策樹回歸算法實現 …………………………………………………… 201
8.3.3 決策樹分類算法實現 …………………………………………………… 204
8.4 Sklearn 的決策樹 ………………………………………………………………… 207
8.5 集成學習算法 …………………………………………………………………… 214
8.5.1 裝袋評估算法 …………………………………………………………… 215
8.5.2 隨機森林算法 …………………………………………………………… 218
8.5.3 AdaBoost 提升 …………………………………………………………… 221
8.5.4 梯度提升決策樹 ………………………………………………………… 227
8.6 本章小結 ………………………………………………………………………… 232
思考與練習……………………………………………………………………………… 232
第 9 章? 聚類算法 ………………………………………………………………………… 233
9.1 K 均值算法 ……………………………………………………………………… 233
9.2 合并聚類算法 …………………………………………………………………… 238
9.3 DBSCAN 算法 …………………………………………………………………… 246
9.4 Sklearn 的聚類算法 ……………………………………………………………… 252
9.4.1 K 均值算法(Kmeans) ………………………………………………… 252
9.4.2 近鄰傳播算法(Affinity Propagation) ………………………………… 258
9.4.3 均值漂移算法(Mean-shift) …………………………………………… 261
9.4.4 合并聚類算法(Agglomerative Clustering) …………………………… 263
9.4.5 帶噪聲的基于密度的空間聚類算法(DBSCAN)……………………… 268
9.5 本章小結 ………………………………………………………………………… 272
思考與練習……………………………………………………………………………… 272
第 10 章? 降維算法 ………………………………………………………………………… 273
10.1 主成分分析法 …………………………………………………………………… 273
10.1.1 算法思想 ………………………………………………………………… 273
10.1.2 主成分分析法的實現 …………………………………………………… 276
10.2 主成分分析的核方法 …………………………………………………………… 278
10.3 Sklearn 的主成分分析法 ……………………………………………………… 281
10.3.1 Sklearn 的 PCA 算法 …………………………………………………… 281
10.3.2 Sklearn 的帶核 PCA 算法 ……………………………………………… 284
10.4 本章小結 ………………………………………………………………………… 290
思考與練習……………………………………………………………………………… 290