譯者序
關於作者
關於審校人員
前言
第1章 賦予計算機從數據中學習的能力 1
1.1 構建把數據轉換為知識的智能機器 1
1.2 三種不同類型的機器學習 1
1.2.1 用有監督學習預測未來 2
1.2.2 用強化學習解決交互問題 3
1.2.3 用無監督學習發現隱藏結構 4
1.3 基本術語與符號 4
1.4 構建機器學習係統的路綫圖 6
1.4.1 預處理—整理數據 6
1.4.2 訓練和選擇預測模型 7
1.4.3 評估模型和預測新樣本數據 7
1.5 用Python進行機器學習 7
1.5.1 從Python包索引安裝Python和其他包 8
1.5.2 采用Anaconda Python和軟件包管理器 8
1.5.3 科學計算、數據科學和機器學習軟件包 8
1.6 小結 9
第2章 訓練簡單的機器學習分類算法 10
2.1 人工神經元—機器學習早期曆史一瞥 10
2.1.1 人工神經元的正式定義 11
2.1.2 感知器學習規則 12
2.2 在Python中實現感知器學習算法 14
2.2.1 麵嚮對象的感知器API 14
2.2.2 在鳶尾花數據集上訓練感知器模型 16
2.3 自適應神經元和學習收斂 20
2.3.1 梯度下降為最小代價函數 21
2.3.2 用Python實現Adaline 22
2.3.3 通過調整特徵大小改善梯度下降 25
2.3.4 大規模機器學習與隨機梯度下降 27
2.4 小結 30
第3章 scikit-learn機器學習分類器一覽 32
3.1 選擇分類算法 32
3.2 瞭解scikit-learn軟件庫的第一步—訓練感知器 32
3.3 基於邏輯迴歸的分類概率建模 37
3.3.1 邏輯迴歸的直覺與條件概率 37
3.3.2 學習邏輯代價函數的權重 39
3.3.3 把轉換的Adaline用於邏輯迴歸算法 41
3.3.4 用scikit-learn訓練邏輯迴歸模型 44
3.3.5 通過正則化解決過擬閤問題 45
3.4 支持嚮量機的最大餘量分類 47
3.4.1 最大邊際的直覺 48
3.4.2 用鬆弛變量處理非綫性可分 48
3.4.3 其他的scikit-learn 實現 50
3.5 用核支持嚮量機求解非綫性問題 50
3.5.1 處理綫性不可分數據的核方法 50
3.5.2 利用核技巧,發現高維空間的分離超平麵 52
3.6 決策樹學習 55
3.6.1 最大限度地獲取信息—獲得最大收益 55
3.6.2 構建決策樹 58
3.6.3 通過隨機森林組閤多個決策樹 61
3.7 K-近鄰—一種懶惰的學習算法 63
3.8 小結 65
第4章 構建良好的訓練集——預處理 66
4.1 處理缺失數據 66
4.1.1 識彆數據中的缺失數值 66
4.1.2 刪除缺失的數據 67
4.1.3 填補缺失的數據 68
4.1.4 瞭解scikit-learn評估器API 68
4.2 處理分類數據 69
4.2.1 名詞特徵和序數特徵 69
4.2.2 映射序數特徵 70
4.2.3 分類標簽編碼 70
4.2.4 為名詞特徵做熱編碼 71
4.3 分裂數據集為獨立的訓練集和測試集 73
4.4 把特徵保持在同一尺度上 75
4.5 選擇有意義的特徵 76
4.5.1 L1和L2正則化對模型復雜度的懲罰 76
4.5.2 L2正則化的幾何解釋 77
4.5.3 L1正則化的稀疏解決方案 78
4.5.4 為序數特徵選擇算法 80
4.6 用隨機森林評估特徵的重要性 84
4.7 小結 87
第5章 通過降維壓縮數據 88
5.1 用主成分分析實現無監督降維 88
5.1.1 主成分分析的主要步驟 88
5.1.2 逐步提取主成分 89
5.1.3 總方差和解釋方差 91
5.1.4 特徵變換 92
5.1.5 scikit-learn的主成分分析 93
5.2 基於綫性判彆分析的有監督數據壓縮 96
5.2.1 主成分分析與綫性判彆分析 96
5.2.2 綫性判彆分析的內部邏輯 97
5.2.3 計算散布矩陣 97
5.2.4 在新的特徵子空間選擇綫性判彆式 99
5.2.5 將樣本投影到新的特徵空間 101
5.2.6 用scikit-learn實現的LDA 101
5.3 非綫性映射的核主成分分析 102
5.3.1 核函數與核技巧 103
5.3.2 用Python實現核主成分分析 106
5.3.3 投影新的數據點 111
5.3.4 scikit-learn的核主成分分析 113
5.4 小結 114
第6章 模型評估和超參數調優的最佳實踐 115
6.1 用管道方法簡化工作流 115
6.1.1 加載威斯康星乳腺癌數據集 115
6.1.2 集成管道中的轉換器和評估器 116
6.2 使用k摺交叉驗證評估模型的性能 118
6.2.1 抵抗方法 118
6.2.2 k摺交叉驗證 119
6.3 用學習和驗證麯綫調試算法 122
6.3.1 用學習麯綫診斷偏差和方差問題 122
6.3.2 用驗證麯綫解決過擬閤和欠擬閤問題 124
6.4 通過網格搜索為機器學習模型調優 126
6.4.1 通過網格搜索為超參數調優 126
6.4.2 以嵌套式交叉驗證來選擇算法 127
6.5 比較不同的性能評估指標 128
6.5.1 含混矩陣分析 128
6.5.2 優化分類模型的準確度和召迴率 129
6.5.3 繪製受試者操作特性圖 130
6.5.4 多元分類評分指標 133
6.6 處理類的不平衡問題 133
6.7 小結 135
第7章 綜閤不同模型的組閤學習 136
7.1 集成學習 136
7.2 采用多數票機製的集成分類器 139
7.2.1 實現基於多數票的簡單分類器 139
7.2.2 用多數票原則進行預測 143
7.2.3 評估和優化集成分類器 145
7.3 套袋—基於導引樣本構建分類器集成 149
7.3.1 套袋簡介 150
7.3.2 應用套袋技術對葡萄酒數據集中的樣本分類 151
7.4 通過自適應增強來利用弱學習者 153
7.4.1 增強是如何實現的 154
7.4.2 用scikit-learn實現AdaBoost 156
7.5 小結 158
第8章 應用機器學習於情感分析 159
8.1 為文本處理預備好IMDb電影評論數據 159
8.1.1 獲取電影評論數據集 159
8.1.2 把電影評論數據預處理成更方便格式的數據 160
8.2 詞袋模型介紹 161
8.2.1 把詞轉換成特徵嚮量 161
8.2.2 通過詞頻逆反文檔頻率評估單詞相關性 162
8.2.3 清洗文本數據 164
8.2.4 把文檔處理為令牌 165
8.3 訓練文檔分類的邏輯迴歸模型 166
8.4 處理更大的數據集—在綫算法和核心學習 168
8.5 具有潛在狄氏分配的主題建模 171
8.5.1 使用LDA分解文本文檔 171
8.5.2 LDA與scikit-learn 172
8.6 小結 174
第9章 將機器學習模型嵌入網絡應用 175
9.1 序列化擬閤scikit-learn評估器 175
9.2 搭建SQLite數據庫存儲數據 177
9.3 用Flask開發網絡應用 179
9.3.1 第一個Flask網絡應用 179
9.3.2 錶單驗證與渲染 181
9.4 將電影評論分類器轉換為網絡應用 184
9.4.1 文件與文件夾—研究目錄樹 185
9.4.2 實現主應用app.py 186
9.4.3 建立評論錶單 188
9.4.4 創建一個結果頁麵的模闆 189
9.5 在麵嚮公眾的服務器上部署網絡應用 190
9.5.1 創建PythonAnywhere賬戶 190
9.5.2 上傳電影分類應用 191
9.5.3 更新電影分類器 191
9.6 小結 193
第10章 用迴歸分析預測連續目標變量 194
10.1 綫性迴歸簡介 194
10.1.1 簡單綫性迴歸 194
10.1.2 多元綫性迴歸 195
10.2 探索住房數據集 196
10.2.1 加載住房數據 196
10.2.2 可視化數據集的重要特點 197
10.2.3 用關聯矩陣查看關係 198
10.3 普通最小二乘綫性迴歸模型的實現 200
10.3.1 用梯度下降方法求解迴歸參數 200
10.3.2 通過scikit-learn估計迴歸模型的係數 203
10.4 利用RANSAC擬閤穩健的迴歸模型 205
10.5 評估綫性迴歸模型的性能 206
10.6 用正則化方法進行迴歸 209
10.7 將綫性迴歸模型轉換為麯綫—多項式迴歸 210
10.7.1 用scikit-learn增加多項式的項 210
10.7.2 為住房數據集中的非綫性關係建模 211
10.8 用隨機森林處理非綫性關係 214
10.8.1 決策樹迴歸 214
10.8.2 隨機森林迴歸 215
10.9 小結 217
第11章 用聚類分析處理無標簽數據 218
11.1 用k-均值進行相似性分組 218
11.1.1 scikit-learn的k-均值聚類 218
11.1.2 k-均值++—更聰明地設置初始聚類中心的方法 221
11.1.3 硬聚類與軟聚類 222
11.1.4 用肘法求解最佳聚類數 223
11.1.5 通過輪廓圖量化聚類質量 224
11.2 把集群組織成有層次的樹 228
11.2.1 以自下而上的方式聚類 228
11.2.2 在距離矩陣上進行層次聚類 229
11.2.3 熱度圖附加樹狀圖 232
11.2.4 scikit-learn凝聚聚類方法 233
11.3 通過DBSCAN定位高密度區域 233
11.4 小結 237
第12章 從零開始實現多層人工神經網絡 238
12.1 用人工神經網絡為復雜函數建模 238
12.1.1 單層神經網絡扼要重述 239
12.1.2 介紹多層神經網絡體係 240
12.1.3 利用正嚮傳播激活神經網絡 242
12.2 識彆手寫數字 243
12.2.1 獲取MNIST數據集 243
12.2.2 實現一個多層感知器 247
12.3 訓練人工神經網絡 256
12.3.1 邏輯成本函數的計算 256
12.3.2 開發反嚮傳播的直覺 257
12.3.3 通過反嚮傳播訓練神經網絡 258
12.4 關於神經網絡的收斂性 260
12.5 關於神經網絡實現的最後幾句話 261
12.6 小結 261
第13章 用TensorFlow並行訓練神經網絡 262
13.1 TensorFlow與模型訓練的性能 262
13.1.1 什麼是TensorFlow 263
13.1.2 如何學習TensorFlow 264
13.1.3 學習TensorFlow的第一步 264
13.1.4 使用陣列結構 266
13.1.5 用TensorFlow的底層API開發簡單的模型 267
13.2 用TensorFlow的高級 API高效率地訓練神經網絡 270
13.2.1 用TensorFlow的Layers API構建多層神經網絡 270
13.2.2 用Keras研發多層神經網絡 274
13.3 多層網絡激活函數的選擇 277
13.3.1 邏輯函數迴顧 278
13.3.2 在多元分類中調用softmax函數評估類彆概率 279
13.3.3 利用雙麯正切拓寬輸齣範圍 280
13.3.4 修正綫性單元激活函數 281
13.4 小結 282
第14章 深入探討TensorFlow的工作原理 283
14.1 TensorFlow的主要功能 283
14.2 TensorFlow 的排序與張量 284
14.3 瞭解TensorFlow的計算圖 285
14.4 TensorFlow中的占位符 287
14.4.1 定義占位符 287
14.4.2 為占位符提供數據 287
14.4.3 用batchsizes 為數據陣列定義占位符 288
14.5 TensorFlow中的變量 289
14.5.1 定義變量 289
14.5.2 初始化變量 290
14.5.3 變量範圍 291
14.5.4 變量復用 292
14.6 建立迴歸模型 295
14.7 在TensorFlow計算圖中用張量名執行對象 297
14.8 在TensorFlow中存儲和恢復模型 298
14.9 把張量轉換成多維數據陣列 300
14.10 利用控製流構圖 303
14.11 用TensorBoard可視化圖 305
14.12 小結 308
第15章 深度捲積神經網絡圖像識彆 309
15.1 構建捲積神經網絡的模塊 309
15.1.1 理解CNN與學習特徵的層次 309
15.1.2 執行離散捲積 310
15.1.3 子采樣 316
15.2 拼裝構建CNN 317
15.2.1 處理多個輸入或者彩色頻道 317
15.2.2 通過淘汰正則化神經網絡 319
15.3 用TensorFlow實現深度捲積神經網絡 321
15.3.1 多層CNN體係結構 321
15.3.2 加載和預處理數據 322
15.3.3 用TensorFlow的低級API實現CNN模型 323
15.3.4 用TensorFlow 的Layers API實現CNN 332
15.4 小結 336
第16章 用遞歸神經網絡為序列數據建模 338
16.1 序列數據 338
16.1.1 序列數據建模—順序很重要 338
16.1.2 錶示序列 339
16.1.3 不同類彆的序列建模 339
16.2 用於序列建模的RNN 340
16.2.1 理解RNN的結構和數據流 340
16.2.2 在RNN中計算激活值 341
16.2.3 長期交互學習的挑戰 343
16.2.4 LSTM單元 343
16.3 用TensorFlow實現多層RNN序列建模 345
16.4 項目一:利用多層RNN對IMDb電影評論進行情感分析 345
16.4.1 準備數據 345
16.4.2 嵌入式 348
16.4.3 構建一個RNN模型 350
16.4.4 情感RNN類構造器 350
16.4.5 build方法 351
16.4.6 train方法 353
16.4.7 predict方法 354
16.4.8 創建SentimentRNN類的實例 355
16.4.9 訓練與優化情感分析RNN模型 355
16.5 項目二:用TensorFlow實現字符級 RNN語言建模 356
16.5.1 準備數據 356
16.5.2 構建字符級RNN語言模型 359
16.5.3 構造器 359
16.5.4 build方法 360
16.5.5 train方法 362
16.5.6 sample方法 362
16.5.7 創建和訓練CharRNN模型 364
16.5.8 處於取樣狀態的CharRNN模型 364
16.6 總結 365
· · · · · · (
收起)