第1章 緒論 1
1.1 機器學習簡介 2
1.1.1 什麼是機器學習 2
1.1.2 機器學習常用術語 3
1.2 Python簡介 9
1.2.1 Python的優勢 10
1.2.2 scikit-learn和TensorFlow 11
1.3 前期準備 13
1.3.1 訓練、交叉驗證與測試 13
1.3.2 簡易數據預處理 14
1.4 本章小結 15
第2章 經典傳統機器學習算法簡介 17
2.1 樸素貝葉斯 17
2.1.1 條件獨立性假設 18
2.1.2 貝葉斯思維 19
2.1.3 模型算法 20
2.1.4 實例演示 23
2.1.5* 參數估計 25
2.1.6* 樸素貝葉斯的改進 28
2.2 決策樹 33
2.2.1 決策的方法 33
2.2.2 決策樹的生成 34
2.2.3 決策樹的剪枝 39
2.2.4 實例演示 40
2.2.5* 決策樹的三大算法 40
2.2.6* 數據集的劃分 45
2.2.7* 決策樹與迴歸 48
2.3 支持嚮量機 50
2.3.1 分離超平麵與幾何間隔 50
2.3.2* 感知機與SVM的原始形式 58
2.3.3 梯度下降法 62
2.3.4* 核技巧 70
2.3.5 實例演示 75
2.4 Logistic迴歸 75
2.5 本章小結 76
第3章 神經網絡入門 77
3.1 神經網絡的結構 78
3.2 前嚮傳導算法 80
3.2.1 算法概述 81
3.2.2 算法內涵 83
3.2.3 激活函數 85
3.2.4 損失函數 90
3.3* 反嚮傳播算法 92
3.3.1 算法概述 92
3.3.2 損失函數的選擇 94
3.4 參數的更新 98
3.4.1 Vanilla Update 99
3.4.2 Momentum Update 99
3.4.3 Nesterov Momentum Update 100
3.4.4 AdaGrad 100
3.4.5 RMSProp 101
3.4.6 Adam 101
3.5 TensorFlow模型的基本框架 101
3.5.1 TensorFlow的組成單元與基本思想 102
3.5.2 TensorFlow模型的基本元素 104
3.5.3 TensorFlow元素的整閤方法 114
3.5.4 TensorFlow模型的save & load 125
3.6 樸素神經網絡的實現與評估 130
3.7 本章小結 138
第4章 從傳統算法走嚮神經網絡 139
4.1 樸素貝葉斯的綫性形式 139
4.2 決策樹生成算法的本質 145
4.2.1 第1隱藏層→決策超平麵 147
4.2.2 第2隱藏層→決策路徑 148
4.2.3 輸齣層→葉節點 150
4.2.4 具體實現 151
4.3 模型轉換的實際意義 158
4.3.1 利用Softmax來賦予概率意義 159
4.3.2 利用Tanh+Softmax來“軟化”模型 160
4.3.3 通過微調來緩解“條件獨立性假設” 165
4.3.4 通過微調來豐富超平麵的選擇 165
4.3.5 模型逆轉換的可能性 171
4.4 模型轉換的局限性 172
4.5 本章小結 172
第5章 神經網絡進階 174
5.1 層結構內部的額外工作 175
5.1.1 Dropout 175
5.1.2 Batch Normalization 176
5.1.3 具體實現 180
5.2 “淺”與“深”的結閤 181
5.2.1 離散型特徵的處理方式 181
5.2.2 Wide and Deep模型概述 183
5.2.3 Wide and Deep的具體實現 185
5.2.4 WnD的重要思想與優缺點 194
5.3 神經網絡中的“決策樹” 195
5.3.1 DNDF結構概述 195
5.3.2* DNDF的具體實現 199
5.3.3 DNDF的應用場景 210
5.3.4* DNDF的結構內涵 213
5.4 神經網絡中的剪枝 216
5.4.1 Surgery算法概述 216
5.4.2 Surgery算法改進 218
5.4.3 軟剪枝的具體實現 221
5.4.4* 軟剪枝的算法內涵 223
5.5 AdvancedNN的結構設計 237
5.5.1 AdvancedNN的實現補足 237
5.5.2 WnD與DNDF 239
5.5.3 DNDF與剪枝 241
5.5.4 剪枝與Dropout 242
5.5.5 沒有免費的午餐 242
5.6 AdvancedNN的實際性能 243
5.7 本章小結 251
第6章 半自動化機器學習框架 253
6.1 數據的準備 254
6.1.1 數據預處理的流程 254
6.1.2 數據準備的流程 256
6.2 數據的轉換 264
6.2.1 數據的數值化 264
6.2.2 冗餘特徵的去除 266
6.2.3 缺失值處理 269
6.2.4 連續型特徵的數據預處理 272
6.2.5 特殊類型數據的處理 274
6.3 AutoBase的實現補足 277
6.4 AutoMeta的實現 281
6.5 訓練過程的監控 288
6.5.1 監控訓練過程的原理 288
6.5.2 監控訓練的實現思路 292
6.5.3 監控訓練的具體代碼 293
6.6 本章小結 299
第7章 工程化機器學習框架 301
7.1 輸齣信息的管理 301
7.2 多次實驗的管理 309
7.2.1 多次實驗的框架 312
7.2.2 多次實驗的初始化 314
7.2.3 多次實驗中的數據劃分 316
7.2.4 多次實驗中的模型評估 318
7.2.5 多次實驗的收尾工作 321
7.3 參數搜索的管理 321
7.3.1 參數搜索的框架 322
7.3.2* 隨機搜索與網格搜索 329
7.3.3 參數的選取 334
7.3.4 參數搜索的收尾工作 335
7.3.5 具體的搜索方案 335
7.4 DistAdvanced的性能 337
7.5 本章小結 344
附錄A SVM的TensorFlow實現 345
附錄B numba的基本應用 352
附錄C 裝飾器的基本應用 359
附錄D 可視化 363
附錄E 模型的評估指標 370
附錄F 實現補足 377
· · · · · · (
收起)