機器學習 Python 版
內容描述
本書將幫助讀者掌握開發有效學習系統所需的流程、模式和策略,
通過簡單的故事、圖片和Python示例來向讀者傳達機器學習的基本思想。
即使讀者是一名初學者,只要具備一些Python編程基礎,不管大學數學水平如何,都能輕鬆閱讀本書並有所收穫。
目錄大綱
譯者序
推薦序
前言
作者簡介
第一部分機器學習入門
第1章機器學習概論 2
1.1 歡迎來到機器學習的世界 2
1.2 範圍、術語、預測和數據 3
1.2.1 特徵 4
1.2.2 目標值和預測值 5
1.3 讓機器開始機器學習 6
1.4 學習系統舉例 8
1.4.1 預測類別:分類器舉例 8
1.4.2 預測值:回歸器舉例 9
1.5 評估機器學習系統 10
1.5.1 準確率 10
1.5.2 資源消耗 11
1.6 創建機器學習系統的過程 12
1.7 機器學習的假設和現實 13
1.8 本章參考閱讀資料 15
1.8.1 本書內容 15
1.8.2 章節註釋 16
第2章相關技術背景 18
2.1 編程環境配置 18
2.2 數學語言的必要性 18
2.3 用於解決機器學習問題的軟件 19
2.4 概率 20
2.4.1 基本事件 21
2.4.2 獨立性 22
2.4.3 條件概率 23
2.4.4 概率分佈 24
2.5 線性組合、加權和以及點積 27
2.5.1 加權平均 29
2.5.2 平方和 31
2.5.3 誤差平方和 32
2.6 幾何視圖:空間中的點 33
2.6.1 直線 33
2.6.2 直線拓展 37
2.7 表示法和加1技巧 41
2.8 漸入佳境:突破線性和非線性 42
2.9 NumPy與“數學無所不在” 45
2.10 浮點數問題 49
2.11 本章參考閱讀資料 50
2.11.1 本章小結 50
2.11.2 章節註釋 51
第3章預測類別:分類入門 52
3.1 分類任務 52
3.2 一個簡單的分類數據集 53
3.3 訓練和測試:請勿應試教育 55
3.4 評估:考試評分 58
3.5 簡單分類器#1:最近鄰分類器、遠距離關係和假設 59
3.5.1 定義相似性 60
3.5.2 k?-最近鄰中的k 61
3.5.3 答案組合 61
3.5.4 k?-最近鄰、參數和非參數方法 61
3.5.5 建立一個k?-最近鄰分類模型 62
3.6 簡單分類器#2:樸素貝葉斯分類器、
概率和違背承諾 64
3.7 分類器的簡單評估 66
3.7.1 機器學習的性能 66
3.7.2 分類器的資源消耗 67
3.7.3 獨立資源評估 73
3.8 本章參考閱讀資料 77
3.8.1 局限性和尚未解決的問題 77
3.8.2 本章小結 77
3.8.3 章節註釋 77
3.8.4 練習題 79
第4章預測數值:回歸入門 80
4.1 一個簡單的回歸數據集 80
4.2 最近鄰回歸和匯總統計 82
4.2.1 中心度量方法:中位數和均值 83
4.2.2 構建一個k?-最近鄰回歸模型 85
4.3 線性回歸和誤差 86
4.3.1 地面總是不平坦的:為什麼需要斜坡 86
4.3.2 傾斜直線 89
4.3.3 執行線性回歸 91
4.4 優化:選擇最佳答案 92
4.4.1 隨機猜測 92
4.4.2 隨機調整 93
4.4.3 智能調整 94
4.4.4 計算的捷徑 94
4.4.5 線性回歸的應用 95
4.5 回歸器的簡單評估和比較 95
4.5.1 均方根誤差 95
4.5.2 機器學習的性能 96
4.5.3 回歸過程中的資源消耗 96
4.6 本章參考閱讀資料 98
4.6.1 局限性和尚未解決的問題 98
4.6.2 本章小結 99
4.6.3 章節註釋 99
4.6.4 練習題 99
第二部分通用評估技術
第5章機器學習算法的評估和比較分析 102
5.1 評估和大道至簡的原則 102
5.2 機器學習階段的術語 103
5.2.1 有關機器的重新討論 104
5.2.2 更規範的闡述 106
5.3 過擬合和欠擬合 109
5.3.1 合成數據和線性回歸 109
5.3.2 手動操控模型的複雜度 111
5.3.3 金鳳花姑娘(“恰到好處”原則):可視化過擬合、欠擬合和“最佳擬合” 112
5.3.4 簡單性 115
5.3.5 關於過擬合必須牢記的注意事項 116
5.4 從誤差到成本 116
5.4.1 損失 116
5.4.2 成本 117
5.4.3 評分 118
5.5 (重新)抽樣:以少勝多 119
5.5.1 交叉驗證 119
5.5.2 分層抽樣 122
5.5.3 重複的訓練-測試集拆分 124
5.5.4 一種更好的方法和混排 127
5.5.5 留一交叉驗證 131
5.6 分解:將誤差分解為偏差和方差 132
5.6.1 數據的方差 133
5.6.2 模型的方差 133
5.6.3 模型的偏差 134
5.6.4 結合所有的因素 134
5.6.5 偏差-方差權衡示例 135
5.7 圖形可視化評估和比較 139
5.7.1 學習曲線:到底需要多少數據 139
5.7.2 複雜度曲線 141
5.8 使用交叉驗證比較機器學習模型 143
5.9 本章參考閱讀資料 144
5.9.1 本章小結 144
5.9.2 章節註釋 144
5.9.3 練習題 146
第6章評估分類器 147
6.1 基線分類器 147
6.2 準確率以外:分類器的其他度量指標 149
6.2.1 從混淆矩陣中消除混淆 151
6.2.2 錯誤的方式 151
6.2.3 基於混淆矩陣的度量指標 152
6.2.4 混淆矩陣編碼 154
6.2.5 處理多元類別:多元類別平均 156
6.2.6 F1分數 158
6.3 ROC曲線 159
6.3.1 ROC模式 161
6.3.2 二元分類ROC 162
6.3.3 AUC:(ROC)曲線下的面積 165
6.3.4 多元分類機器學習模型、“一對其他”和ROC 166
6.4 多元分類的另一種方法:“一對一” 168
6.4.1 “一對一”方法 168
6.4.2 多元分類AUC第二部分:尋找單一值 170
6.5 精確率-召回率曲線 173
6.5.1 關於精確率-召回率權衡的說明 173
6.5.2 構建精確率-召回率曲線 174
6.6 累積響應和提升曲線 174
6.7 更複雜的分類器評估:第二階段 177
6.7.1 二元分類 177
6.7.2 一個新穎的多元分類問題 182
6.8 本章參考閱讀資料 187
6.8.1 本章小結 187
6.8.2 章節註釋 187
6.8.3 練習題 189
第7章評估回歸器 190
7.1 基線回歸器 191
7.2 回歸器的其他度量指標 192
7.2.1 創建自定義的評估指標 192
7.2.2 其他內置的回歸度量指標 193
7.2.3 R2 194
7.3 誤差圖和殘差圖 199
7.3.1 誤差圖 199
7.3.2 殘差圖 202
7.4 標準化初探 205
7.5 使用更複雜的方法評估回歸係數:第二階段 209
7.5.1 多個度量指標的交叉驗證結果 210
7.5.2 交叉驗證結果匯總 213
7.5.3 殘差 214
7.6 本章參考閱讀資料 216
7.6.1 本章小結 216
7.6.2 章節註釋 216
7.6.3 練習題 218
第三部分更多方法和其他技術
第8章更多分類方法 220
8.1 重溫分類知識 220
8.2 決策樹 222
8.2.1 樹構建算法 224
8.2.2 讓我們開始吧:決策樹時間 227
8.2.3 決策樹中的偏差和方差 230
8.3 支持向量分類器 230
8.3.1 執行支持向量分類器 233
8.3.2 SVC中的偏差和方差 236
8.4 邏輯回歸 238
8.4.1 投注機率 239
8.4.2 概率、機率和對數機率 241
8.4.3 實現操作:邏輯回歸版本 245
8.4.4 邏輯回歸:空間奇異性 247
8.5 判別分析 248
8.5.1 協方差 249
8.5.2 方法 259
8.5.3 執行判別分析 260
8.6 假設、偏差和分類器 262
8.7 分類器的比較:第三階段 264
8.8 本章參考閱讀資料 267
8.8.1 本章小結 267
8.8.2 章節註釋 267
8.8.3 練習題 270
第9章更多回歸方法 271
9.1 懲罰框中的線性回歸:正則化 272
9.1.1 正則化回歸概述 272
9.1.2 執行正則化回歸 276
9.2 支持向量回歸 277
9.2.1 鉸鏈損失 277
9.2.2 從線性回歸到正則化回歸再到支持向量回歸 280
9.2.3 實踐應用:支持向量回歸風格 282
9.3 分段常數回歸 282
9.3.1 實施分段常數回歸器 284
9.3.2 模型實現的一般說明 285
9.4 回歸樹 287
9.5 回歸器比較:第三階段 288
9.6 本章參考閱讀資料 291
9.6.1 本章小結 291
9.6.2 章節註釋 291
9.6.3 練習題 292
第10章手動特徵工程:操作數據的樂趣和意義 293
10.1 特徵工程的術語和動機 293
10.1.1 為什麼選擇特徵工程 294
10.1.2 何時開始特徵工程 294
10.1.3 特徵工程是如何發生的 296
10.2 特徵選擇和數據簡化:清除垃圾 296
10.3 特徵縮放 297
10.4 離散化 300
10.5 分類編碼 303
10.5.1 數據的編碼技術 303
10.5.2 編碼的另一種方式以及無截距的奇怪情況 306
10.6 關係和相互作用 312
10.6.1 手動特徵構造 312
10.6.2 相互作用 314
10.6.3 使用轉換器添加特徵 319
10.7 對輸入空間和目標的相關操作 320
10.7.1 對輸入空間的相關操作 321
10.7.2 對目標的相關操作 323
10.8 本章參考閱讀資料 325
10.8.1 本章小結 325
10.8.2 章節註釋 326
10.8.3 練習題 326
第11章調整超參數和管道技術 328
11.1 模型、參數、超參數 329
11.2 調整超參數 330
11.2.1 關於計算機科學和機器學習術語的說明 331
11.2.2 關於完整搜索的示例 331
11.2.3 使用隨機性在大海撈針 337
11.3 遞歸的神奇世界:嵌套交叉驗證 337
11.3.1 重溫交叉驗證 338
11.3.2 作為模型的網格搜索 339
11.3.3 交叉驗證中嵌套的交叉驗證 340
11.3.4 關於嵌套交叉驗證的註釋 341
11.4 管道技術 344
11.4.1 一個簡單的管道 344
11.4.2 更複雜的管道 346
11.5 管道和調參相結合 347
11.6 本章參考閱讀資料 348
11.6.1 本章小結 348
11.6.2 章節註釋 348
11.6.3 練習題 349
第四部分高級主題
第12章組合機器學習模型 352
12.1 集成 352
12.2 投票集成 354
12.3 裝袋法和隨機森林 355
12.3.1 自舉 355
12.3.2 從自舉到裝袋法 358
12.3.3 隨機森林 360
12.4 提升方法 362
12.4.1 提升方法的核心理念 362
12.4.2 提升方法實現細節 363
12.5 各種樹集成方法的比較 365
12.6 本章參考閱讀資料 368
12.6.1 本章小結 368
12.6.2 章節註釋 368
12.6.3 練習題 370
第13章提供特徵工程的模型 371
13.1 特徵選擇 373
13.1.1 基於度量特徵的“單步篩選”方法 374
13.1.2 基於模型的特徵選擇 384
13.1.3 將特徵選擇與機器學習管道相集成 387
13.2 基於核的特徵構造 389
13.2.1 核激勵因子 389
13.2.2 手動核方法 394
13.2.3 核方法和核選項 398
13.2.4 核化支持向量分類器:支持向量機 401
13.2.5 關於SVM的建議和示例 403
13.3 主成分分析:一種無監督技術 404
13.3.1 預熱:中心化數據 405
13.3.2 尋找不同的最佳線路 406
13.3.3 第一次執行PCA 407
13.3.4 PCA的內部原理 410
13.3.5 結局:對一般PCA的評論 415
13.3.6 核心PCA和流形方法 415
13.4 本章參考閱讀資料 419
13.4.1 本章小結 419
13.4.2 章節註釋 419
13.4.3 練習題 424
第14章領域特徵工程:領域特定的機器學習 425
14.1 處理文本 426
14.1.1 對文本進行編碼 427
14.1.2 文本學習的示例 432
14.2 聚類 434
14.3 處理圖像 436
14.3.1 視覺詞袋 436
14.3.2 圖像數據 437
14.3.3 端到端系統 438
14.3.4 全局視覺詞袋轉換器的完整代碼 444
14.4 本章參考閱讀資料 447
14.4.1 本章小結 447
14.4.2 章節註釋 447
14.4.3 練習題 448
第15章連接、擴展和未來的研究方向 450
15.1 優化 450
15.2 基於原始數據的線性回歸 453
15.2.1 線性回歸的方法和分析 453
15.2.2 線性回歸的可視化視圖 456
15.3 基於原始數據構建邏輯回歸 456
15.3.1 採用0-1編碼的邏輯回歸 458
15.3.2 加1減1編碼的邏輯回歸 459
15.3.3 邏輯回歸的可視化視圖 461
15.4 基於原始數據的SVM 461
15.5 神經網絡 462
15.5.1 線性回歸的神經網絡視圖 463
15.5.2 邏輯回歸的神經網絡視圖 465
15.5.3 超越基本神經網絡 466
15.6 概率圖模型 467
15.6.1 抽樣 468
15.6.2 線性回歸的概率圖模型視圖 469
15.6.3 邏輯回歸的概率圖模型視圖 472
15.7 本章參考閱讀資料 474
15.7.1 本章小結 474
15.7.2 章節註釋 474
15.7.3 練習題 475
附錄mlwpy.py程序清單 476