第1章 機器學習的基礎 1
1.1 編程語言與開發環境 2
1.1.1 搭建Python開發環境 2
1.1.2 安裝Python算法庫 4
1.1.3 IDE配置及其安裝測試 5
1.2 對象、矩陣與矢量化編程 8
1.2.1 對象與維度 8
1.2.2 初識矩陣 10
1.2.3 矢量化編程與GPU運算 13
1.2.4 理解數學公式與NumPy矩陣運算 14
1.2.5 Linalg綫性代數庫 18
1.3 機器學習的數學基礎 20
1.3.1 相似性的度量 21
1.3.2 各類距離的意義與Python實現 22
1.3.3 理解隨機性 29
1.3.4 迴顧概率論 30
1.3.5 多元統計基礎 32
1.3.6 特徵間的相關性 33
1.3.7 再談矩陣——空間的變換 35
1.3.8 數據歸一化 40
1.4 數據處理與可視化 42
1.4.1 數據的導入和內存管理 42
1.4.2 錶與綫性結構的可視化 45
1.4.3 樹與分類結構的可視化 46
1.4.4 圖與網絡結構的可視化 47
1.5 Linux操作係統下部署Python機器學習開發環境 48
1.5.1 Linux發行版的選擇 48
1.5.2 CentOS部署多版本Python實例 49
1.5.3 安裝NumPy、SciPy、Matplotlib開發包 52
1.5.4 安裝Scikit-Learn開發包 54
1.6 結語 55
第2章 中文文本分類 56
2.1 文本挖掘與文本分類的概念 56
2.2 文本分類項目 58
2.2.1 文本預處理 58
2.2.2 中文分詞介紹 61
2.2.3 Scikit-Learn庫簡介 66
2.2.4 嚮量空間模型 70
2.2.5 權重策略:TF-IDF方法 71
2.2.6 使用樸素貝葉斯分類模塊 74
2.2.7 分類結果評估 76
2.3 分類算法:樸素貝葉斯 78
2.3.1 貝葉斯公式推導 78
2.3.2 樸素貝葉斯算法實現 79
2.3.3 算法的改進 82
2.3.4 評估分類結果 82
2.4 分類算法:kNN 83
2.4.1 kNN算法原理 83
2.4.2 kNN算法的Python實現 86
2.4.3 評估分類結果 88
2.5 結語 88
第3章 決策樹的發展 89
3.1 決策樹的基本思想 89
3.1.1 從一個實例開始 90
3.1.2 決策樹的算法框架 95
3.1.3 信息熵測度 96
3.2 ID3決策樹 98
3.2.1 ID3算法 98
3.2.2 ID3的實現 101
3.2.3 決策樹主方法 101
3.2.4 訓練決策樹 103
3.2.5 持久化決策樹 104
3.2.6 決策樹分類 105
3.2.7 算法評估 106
3.3 C4.5算法 106
3.3.1 信息增益率 106
3.3.2 C4.5的實現 108
3.3.3 訓練決策樹 108
3.3.4 分類數據 109
3.4 Scikit-Learn與迴歸樹 110
3.4.1 迴歸算法原理 110
3.4.2 最小剩餘方差法 111
3.4.3 模型樹 113
3.4.4 剪枝策略 113
3.4.5 Scikit-Learn實現 115
3.5 結語 117
第4章 推薦係統原理 118
4.1 推薦係統概述 119
4.1.1 從亞馬遜網站認識推薦係統 119
4.1.2 推薦係統的架構 122
4.1.3 開源推薦係統 125
4.2 協同過濾及其算法 126
4.2.1 協同過濾 126
4.2.2 數據預處理 127
4.2.3 使用Scikit-Learn的KMeans聚類 127
4.2.4 User CF原理 129
4.2.5 Item CF原理 131
4.2.6 SVD原理與計算 132
4.3 KMeans算法詳解 135
4.3.1 KMeans算法流程 135
4.3.2 輔助函數 136
4.3.3 聚類主函數 137
4.3.4 評估分類結果 139
4.4 聚類的改進:二分KMeans算法 141
4.4.1 二分聚類主函數 141
4.4.2 評估分類結果 142
4.5 SVD算法詳解 143
4.5.1 SVD算法迴顧 143
4.5.2 常用距離函數 146
4.5.3 SVD數據集 146
4.5.4 SVD算法主函數 147
4.5.5 評估結果 147
4.6 結語 148
第5章 梯度尋優 149
5.1 最優化與計算復雜性 149
5.1.1 最優化理論 149
5.1.2 最優化的數學描述 150
5.1.3 凸集與分離定理 151
5.1.4 凸函數及其性質 153
5.1.5 局部最優與全局最優 155
5.1.6 計算復雜性與NP問題 156
5.1.7 逐次逼近法 159
5.2 Logistic梯度下降法 163
5.2.1 梯度下降法 164
5.2.2 綫性分類器 166
5.2.3 Logistic函數——世界不是非黑即白 169
5.2.4 算法流程 171
5.2.5 對測試集進行分類 175
5.3 算法分析 175
5.3.1 超平麵的變化趨勢 176
5.3.2 超平麵的收斂評估 177
5.3.3 權重嚮量的收斂評估 179
5.3.4 算法總體評價 180
5.4 隨機梯度下降法:算法改進與評估 180
5.4.1 主函數 181
5.4.2 程序輸齣 182
5.4.3 步長變化率 183
5.4.4 權重收斂評估 184
5.4.5 權重分量的變化趨勢 185
5.4.6 算法總體評價 187
5.5 結語 187
第6章 神經網絡初步 189
6.1 神經網絡簡史 189
6.1.1 起源與早期發展 189
6.1.2 中期發展 190
6.1.3 當前的發展與反思 192
6.2 BP神經網絡理論 192
6.2.1 綫性不可分問題 192
6.2.2 BP網絡構成 193
6.2.3 BP網絡的訓練過程 196
6.3 BP網絡的實現和評估 199
6.3.1 BP網絡類與主要方法 199
6.3.2 設計BP網絡 199
6.3.3 輔助函數 202
6.3.4 主函數 203
6.3.5 分類器 204
6.3.6 執行分類並輸齣結果 205
6.3.7 BP網絡評估 207
6.4 自組織特徵映射神經網絡 208
6.4.1 SOM網絡框架 208
6.4.2 SOM類 211
6.4.3 功能函數 212
6.4.4 SOM網絡的實現 212
6.4.5 聚類結果 213
6.5 Boltzmann機算法 215
6.5.1 問題的提齣 215
6.5.2 模擬退火原理 216
6.5.3 Boltzmann分布與退火過程 217
6.5.4 Boltzmann機類與功能函數 219
6.5.5 最短路徑的實現 222
6.5.6 執行算法 223
6.5.7 評估結果 224
6.6 結語 225
第7章 預測的技術與哲學 226
7.1 綫性係統的預測 226
7.1.1 迴歸與現代預測學 226
7.1.2 最小二乘法 227
7.1.3 代碼實現 229
7.1.4 正規方程組法 231
7.1.5 正規方程組的代碼實現 232
7.1.6 算法評估 232
7.2 徑嚮基網絡 233
7.2.1 RBF網絡 233
7.2.2 輔助函數 236
7.2.3 使用RBF預測 236
7.2.4 評估預測結果 238
7.3 嶺迴歸 238
7.3.1 驗證多重共綫性 239
7.3.2 嶺迴歸理論 240
7.3.3 嶺際分析 240
7.3.4 k值的判定 242
7.3.5 輔助函數 243
7.3.6 嶺迴歸的實現與k值計算 243
7.3.7 算法評估 244
7.4 預測的哲學 245
7.4.1 從《周易》談起 246
7.4.2 兩儀生四象 249
7.4.3 周期三與混沌 251
7.4.4 Logistic中的吸引子 254
7.4.5 三生萬物 258
7.4.6 八卦圖及其推演 261
7.5 結語 263
第8章 萬能分類器——支持嚮量機 265
8.1 支持嚮量機的理論基礎 266
8.1.1 經驗風險最優 266
8.1.2 關鍵定理與VC維 267
8.1.3 結構風險最優 270
8.2 SVM的數學推導 272
8.2.1 最大間隔超平麵 272
8.2.2 拉格朗日乘子法 275
8.2.3 KKT條件與對偶變換 276
8.2.4 分類器函數 277
8.2.5 映射到高維空間 278
8.2.6 核函數法 280
8.2.7 離群點的鬆弛變量 281
8.3 SMO算法 284
8.3.1 SMO求解SVM 284
8.3.2 構造SMO類 288
8.3.3 主函數 290
8.3.4 訓練數據 291
8.3.5 分類並評估算法 293
8.4 SVM中文文本分類 293
8.4.1 迴顧中文文本分類 294
8.4.2 Scikit-Learn SVM分類 294
8.4.3 評估結果 295
8.5 結語 296
第9章 人臉識彆中的機器學習 297
9.1 模式識彆概述 297
9.1.1 認知與模式 297
9.1.2 機器視覺與OpenCV 300
9.1.3 OpenCV的文件與基本操作 301
9.2 人臉檢測 305
9.2.1 人臉識彆的曆史與架構 305
9.2.2 人臉識彆係統 307
9.2.3 人臉檢測原理與Haar級聯檢測 308
9.2.4 人臉檢測特徵文件 311
9.2.5 Haar cascade的實現 314
9.2.6 LBP cascade的實現 315
9.3 AdaBoost算法概述 316
9.3.1 算法原理與步驟 316
9.3.2 輔助函數 317
9.3.3 AdaBoost分類器 318
9.3.4 單層決策樹分類子算法 319
9.3.5 訓練數據集 321
9.3.6 執行分類 322
9.4 人臉識彆 323
9.4.1 人臉數據庫 324
9.4.2 PCA原理 325
9.4.3 特徵臉識彆類 327
9.4.4 生成特徵臉 328
9.4.5 執行人臉識彆 330
9.5 結語 330
第10章 認知計算與深度學習 332
10.1 認知計算 332
10.1.1 認知層次論 333
10.1.2 從具體到抽象 336
10.1.3 Theano庫與基本操作 338
10.2 多層感知器 343
10.2.1 MNIST數據集 343
10.2.2 Softmax迴歸類 345
10.2.3 正則化方法 347
10.2.4 執行SoftMax學習 350
10.2.5 多層感知器 353
10.2.6 多層感知器的實現 355
10.2.7 MLP的訓練過程 358
10.3 捲積神經網絡 358
10.3.1 理論基礎 358
10.3.2 捲積類 363
10.3.3 LeNet5函數 364
10.3.4 CNN的訓練過程 369
10.4 Theano安裝與GPU運算 370
10.4.1 Anaconda安裝 370
10.4.2 實現CPU運算 372
10.4.3 安裝VS2013 374
10.4.4 安裝CUDA 375
10.4.5 實現支持GPU運算 378
10.5 結語 378
第11章 概率圖模型與詞性標注 380
11.1 馬爾科夫過程 381
11.1.1 隨機過程與狀態圖 381
11.1.2 馬爾科夫鏈及其概念 382
11.1.3 馬爾科夫鏈的實現 384
11.2 概率圖模型和貝葉斯網 385
11.2.1 概述 385
11.2.2 條件獨立性 386
11.2.3 貝葉斯網簡介 390
11.2.4 貝葉斯網的構造 392
11.2.5 貝葉斯網的推理簡介 394
11.3 隱馬爾科夫模型 396
11.3.1 概述 396
11.3.2 HMM推理與前嚮算法 399
11.3.3 Vertibi算法原理 403
11.3.4 Vertibi算法實現 405
11.3.5 執行並輸齣結果 406
11.4 詞性標注係統 406
11.4.1 語料庫與詞性資源 407
11.4.2 手工計算 409
11.4.3 結果驗證 413
11.5 結語 414
· · · · · · (
收起)