本書詳細地介紹了機器學習的基本原理,并采用“原理簡述+問題實例+實際代碼+運行結果”的模式介紹常用算法。全書共11章,主要包括決策樹、神經(jīng)網(wǎng)絡、支持向量機、貝葉斯分類器、集成學習、聚類、降維等內(nèi)容。
內(nèi)容新穎,可操作性強,層層深入,簡明易懂。從實用角度出發(fā),重點培養(yǎng)動手解決問題的能力。
提供體系完整的在線實驗,即學即練,書網(wǎng)結合。
不拘泥于機器學習的理論算法,注重機器學習的具體應用。
李克清,男,博士,教授,蘇州大學碩士生導師,中國礦業(yè)大學碩士生導師,中國計算機學會會員,江蘇省計算機學會監(jiān)事。
第 1章 導論 1
1.1 引言 1
1.2 基本術語 2
1.3 概念學習與假設空間 3
1.4 歸納偏好 4
1.5 經(jīng)驗誤差與過擬合 5
1.6 模型評估與選擇 5
1.7 性能度量 6
1.8 發(fā)展歷程 8
1.9 應用現(xiàn)狀 10
習題1 11
第 2章 Python初步 12
2.1 Python概述 12
2.2 NumPy庫介紹 12
2.2.1 ndarray對象 12
2.2.2 ufunc函數(shù) 14
2.2.3 常用函數(shù)庫 15
2.3 Matplotlib庫介紹 19
2.3.1 快速繪制二維圖表 19
2.3.2 Artist對象 21
2.3.3 配置屬性 24
2.3.4 繪制三維圖表 24
2.4 SciPy庫函數(shù) 26
2.4.1 線性代數(shù)模塊 26
2.4.2 優(yōu)化和擬合模塊 28
2.4.3 統(tǒng)計模塊 30
2.4.4 稀疏矩陣模塊 32
2.5 scikit-learn庫函數(shù) 35
2.5.1 sklearn.datasets 35
2.5.2 模型選擇與評價 36
2.5.3 scikit-learn的機器學習 44
習題2 46
第3章 決策樹 48
3.1 引言 48
3.1.1 決策樹的基本思想 48
3.1.2 決策樹的構造 49
3.1.3 決策樹的算法框架 54
3.1.4 信息增益 54
3.2 ID3決策樹 57
3.2.1 ID3算法 57
3.2.2 ID3的實現(xiàn) 59
3.3 C4.5決策樹 63
3.3.1 C4.5算法 63
3.3.2 C4.5的實現(xiàn) 64
3.4 sklearn與回歸樹 68
3.4.1 回歸算法原理 68
3.4.2 最小剩余方差法 69
3.4.3 剪枝策略 69
3.4.4 sklearn實現(xiàn) 70
習題3 72
第4章 神經(jīng)網(wǎng)絡 73
4.1 引言 73
4.1.1 人工神經(jīng)網(wǎng)絡的發(fā)展歷程 73
4.1.2 人工神經(jīng)網(wǎng)絡的特點 74
4.1.3 人工神經(jīng)網(wǎng)絡的分類 75
4.2 神經(jīng)元模型 75
4.3 感知機與多層神經(jīng)網(wǎng)絡 77
4.3.1 感知機 77
4.3.2 梯度下降法 81
4.3.3 隨機梯度下降法 85
4.3.4 多層神經(jīng)網(wǎng)絡 86
4.4 誤差反向傳播算法 90
4.4.1 BP神經(jīng)網(wǎng)絡學習算法 90
4.4.2 BP神經(jīng)網(wǎng)絡實驗 93
4.5 玻耳茲曼機 95
4.5.1 BM的拓撲結構 96
4.5.2 BM的學習過程 96
4.6 綜合案例 99
習題4 101
第5章 支持向量機 103
5.1 引言 103
5.2 線性分類 104
5.2.1 函數(shù)間隔與幾何間隔 104
5.2.2 對偶問題 107
5.3 線性支持向量機 108
5.4 非線性支持向量機 111
5.4.1 核技巧 111
5.4.2 sklearn SVC 113
5.5 序列最小優(yōu)化算法 117
5.6 綜合案例 119
習題5 125
第6章 貝葉斯分類器 127
6.1 引言 127
6.2 樸素貝葉斯分類 128
6.2.1 樸素貝葉斯算法 128
6.2.2 樸素貝葉斯分類算法 129
6.2.3 樸素貝葉斯分類算法的Python實現(xiàn) 131
6.2.4 sklearn的樸素貝葉斯方法 135
6.3 極大似然估計 137
6.3.1 EM算法 138
6.3.2 EM算法步驟 140
6.3.3 三硬幣的EM求解 140
6.3.4 sklearn的EM方法 142
6.4 貝葉斯網(wǎng)絡 146
6.4.1 貝葉斯網(wǎng)絡的構造和學習 146
6.4.2 貝葉斯網(wǎng)絡應用舉例 147
習題6 150
第7章 集成學習 152
7.1 引言 152
7.2 Voting 153
7.3 Bagging 156
7.4 Boosting 161
7.4.1 AdaBoost法 161
7.4.2 Gradient Boosting 165
7.5 綜合案例 168
習題7 171
第8章 聚類 172
8.1 引言 172
8.1.1 聚類的概念 172
8.1.2 典型應用 172
8.1.3 常見算法分類 172
8.1.4 聚類算法中存在的問題 173
8.2 距離計算 173
8.2.1 閔可夫斯基距離 173
8.2.2 歐幾里得距離 174
8.2.3 曼哈頓距離 174
8.2.4 切比雪夫距離 175
8.2.5 皮爾遜相關系數(shù) 175
8.2.6 余弦相似度 175
8.2.7 杰卡德相似系數(shù) 176
8.3 k-means聚類 176
8.3.1 算法思想 176
8.3.2 輔助函數(shù) 177
8.3.3 編程實現(xiàn)k-means算法 178
8.3.4 scikit-learn中的k-means方法 179
8.3.5 算法評價 181
8.3.6 算法改進k-means++ 181
8.4 密度聚類 182
8.4.1 密度聚類算法思想 182
8.4.2 DBSCAN算法 182
8.4.3 密度峰值聚類 185
8.5 層次聚類 187
8.5.1 層次聚類思想 187
8.5.2 層次聚類實現(xiàn) 188
8.6 綜合實例 190
8.6.1 聚類算法性能比較 190
8.6.2 算法總結 193
習題8 193
第9章 降維 195
9.1 引言 195
9.1.1 降維的概念 195
9.1.2 常見算法分類 195
9.2 k-近鄰學習 196
9.2.1 算法實現(xiàn) 197
9.2.2 算法實例 199
9.2.3 算法關鍵 200
9.3 主成分分析 201
9.3.1 算法思想 201
9.3.2 算法實例 202
9.4 低維嵌入 205
9.4.1 算法原理 205
9.4.2 算法實例 206
9.4.3 算法評價 208
9.5 奇異值分解 209
9.5.1 SVD算法原理 209
9.5.2 SVD算法及應用示例 210
9.6 綜合實例 215
9.6.1 PCA實例 215
9.6.2 SVD實例 218
習題9 219
第 10章 概率圖模型 221
10.1 引言 221
10.2 馬爾科夫過程 222
10.2.1 基本概念 222
10.2.2 隱馬爾科夫模型 225
10.3 Viterbi算法 227
10.4 綜合案例 231
習題10 233
第 11章 深度學習初步 235
11.1 引言 235
11.2 表示問題 235
11.3 學習問題 236
11.4 優(yōu)化問題 238
11.5 認知問題 238
11.6 基本模型 239
11.6.1 自編碼器 239
11.6.2 受限玻耳茲曼機 240
11.6.3 卷積神經(jīng)網(wǎng)絡 242
11.7 TensorFlow的簡介與安裝 243
11.7.1 Python 3環(huán)境 243
11.7.2 安裝TensorFlow 243
11.7.3 驗證 243
11.8 TensorFlow的基本使用 243
11.9 基于卷積神經(jīng)網(wǎng)絡的MNIST手寫體識別實驗 245
11.9.1 conv2d函數(shù) 245
11.9.2 max_pool函數(shù) 246
11.9.3 示例程序 246
習題11 249
參考文獻 250