定 價:¥128.00
作 者: | 本·威爾遜,Wilson,李曉峰,逄金輝,殷海英 |
出版社: | 清華大學(xué)出版社 |
叢編項: | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787302637424 | 出版時間: | 2023-07-01 | 包裝: | 平裝-膠訂 |
開本: | 16開 | 頁數(shù): | 字?jǐn)?shù): |
第Ⅰ部分 機(jī)器學(xué)習(xí)工程簡介
第1章 什么是機(jī)器學(xué)習(xí)工程 3
1.1 為什么使用機(jī)器學(xué)習(xí)工程 4
1.2 機(jī)器學(xué)習(xí)工程的核心原則 7
1.2.1 規(guī)劃 7
1.2.2 范圍界定和研究 9
1.2.3 實驗 11
1.2.4 研發(fā) 12
1.2.5 部署 15
1.2.6 評估 18
1.3 機(jī)器學(xué)習(xí)工程的目標(biāo) 20
1.4 本章小結(jié) 21
第2章 數(shù)據(jù)科學(xué)工程 23
2.1 用提高項目成功率的過程增強(qiáng)復(fù)雜的專業(yè) 24
2.2 簡單的基礎(chǔ) 25
2.3 敏捷軟件工程的工作原則 27
2.3.1 溝通與合作 28
2.3.2 擁抱并期待改變 30
2.4 機(jī)器學(xué)習(xí)工程的基礎(chǔ) 31
2.5 本章小結(jié) 32
第3章 在建模之前:規(guī)劃和確定項目范圍 33
3.1 規(guī)劃:你要我預(yù)測什么 36
3.1.1 項目的基本規(guī)劃 40
3.1.2 首次會議 45
3.1.3 規(guī)劃演示——進(jìn)行大量演示 47
3.1.4 通過解決方案構(gòu)建進(jìn)行實驗:磨刀不誤砍柴工 49
3.2 實驗范圍:設(shè)定預(yù)期和界限 51
3.2.1 什么是實驗范圍 52
3.2.2 機(jī)器學(xué)習(xí)團(tuán)隊的實驗范圍:研究 52
3.2.3 機(jī)器學(xué)習(xí)團(tuán)隊的實驗范圍:實驗 54
3.3 本章小結(jié) 63
第4章 建模之前:項目的溝通與邏輯 65
4.1 溝通:定義問題 67
4.1.1 理解問題 68
4.1.2 設(shè)置嚴(yán)格的討論界限 78
4.2 不要浪費時間:與跨職能團(tuán)隊交流 84
4.2.1 實驗變更會議:我們知道自己在做什么嗎 85
4.2.2 SME 評審/原型評審:我們能解決這個問題嗎 86
4.2.3 開發(fā)進(jìn)度評審:這會奏效嗎 87
4.2.4 MVP評審:是否生成了我們要求的內(nèi)容 88
4.2.5 預(yù)投產(chǎn)評審:我們真希望沒有搞砸 89
4.3 為實驗設(shè)定限制 90
4.3.1 設(shè)置時限 90
4.3.2 可以投入生產(chǎn)嗎? 你想維護(hù)它嗎 92
4.3.3 機(jī)器學(xué)習(xí)項目的TDD、RDD、PDD和CDD 93
4.4 為混亂的業(yè)務(wù)規(guī)則做計劃 96
4.4.1 通過計劃“擁抱混亂” 96
4.4.2 “人機(jī)回環(huán)”設(shè)計 98
4.4.3 你的備選方案是什么 99
4.5 對結(jié)果進(jìn)行討論 99
4.6 本章小結(jié) 101
第5章 進(jìn)行實驗:規(guī)劃和研究機(jī)器學(xué)習(xí)項目 103
5.1 設(shè)計實驗 104
5.1.1 進(jìn)行基礎(chǔ)的研究和規(guī)劃 105
5.1.2 扔掉博客——仔細(xì)閱讀API文檔 108
5.1.3 抽簽決定內(nèi)部黑客馬拉松 112
5.1.4 公平競爭環(huán)境 113
5.2 執(zhí)行實驗準(zhǔn)備工作 114
5.2.1 執(zhí)行數(shù)據(jù)分析 115
5.2.2 從腳本轉(zhuǎn)向可重用代碼 121
5.2.3 為實驗構(gòu)建可重用代碼的最后說明 128
5.3 本章小結(jié) 131
第6章 進(jìn)行實驗:測試與評估 133
6.1 測試想法 135
6.1.1 在代碼中設(shè)置準(zhǔn)則 136
6.1.2 運行快速預(yù)測測試 143
6.2 減少可能性 158
6.2.1 正確評估原型 159
6.2.2 決定前進(jìn)的方向 161
6.2.3 接下來做什么 163
6.3 本章小結(jié) 164
第7章 實踐實驗:從原型到MVP 165
7.1 調(diào)整:自動化那些惱人的過程 166
7.1.1 調(diào)優(yōu)選項 168
7.1.2 Hyperopt入門 172
7.1.3 使用Hyperopt調(diào)優(yōu)復(fù)雜的預(yù)測問題 175
7.2 為平臺和團(tuán)隊選擇合適的技術(shù) 179
7.2.1 使用Spark的理由 181
7.2.2 用SparkTrials處理來自Driver的調(diào)優(yōu) 183
7.2.3 用pandas_udf處理來自Worker的調(diào)優(yōu) 186
7.2.4 為團(tuán)隊使用新范式:平臺和技術(shù) 190
7.3 本章小結(jié) 191
第8章 動手實戰(zhàn):使用MLflow和運行時優(yōu)化實現(xiàn)MVP 193
8.1 日志記錄:代碼、指標(biāo)和結(jié)果 194
8.1.1 MLflow跟蹤 194
8.1.2 不要通過打印記錄日志 196
8.1.3 版本控制、分支策略和與他人合作 198
8.2 可伸縮性和并發(fā)性 200
8.2.1 什么是并發(fā) 200
8.2.2 哪些內(nèi)容可以(或不可以)異步運行 203
8.3 本章小結(jié) 203
第Ⅱ部分 為投產(chǎn)做準(zhǔn)備:創(chuàng)建可維護(hù)的機(jī)器學(xué)習(xí)項目
第9章 機(jī)器學(xué)習(xí)中的模塊化:編寫可測試且易讀的代碼 207
9.1 單片腳本及其缺點 209
9.1.1 “巨石”是如何形成的 210
9.1.2 文本墻 210
9.1.3 單片腳本的注意事項 213
9.2 調(diào)試文本墻 215
9.3 對機(jī)器學(xué)習(xí)代碼進(jìn)行模塊化設(shè)計 221
9.4 機(jī)器學(xué)習(xí)的測試驅(qū)動開發(fā) 222
9.5 本章小結(jié) 226
第10章 編碼標(biāo)準(zhǔn)和創(chuàng)建可維護(hù)的機(jī)器學(xué)習(xí)代碼 227
10.1 機(jī)器學(xué)習(xí)的代碼異味 228
10.2 命名、結(jié)構(gòu)和代碼體系結(jié)構(gòu) 230
10.2.1 命名約定和結(jié)構(gòu) 231
10.2.2 別耍小聰明 232
10.2.3 代碼體系結(jié)構(gòu) 233
10.3 元組解包和可維護(hù)的替代方案 235
10.3.1 元組解包示例 235
10.3.2 元組解包的可靠替代方案 237
10.4 對問題視而不見:“飲食異?!焙推渌涣甲龇?239
10.4.1 精準(zhǔn)使用try/catch 239
10.4.2 精心設(shè)計的異常處理 241
10.4.3 正確處理錯誤 242
10.5 使用全局可變對象 244
10.5.1 易變性會如何傷害你 245
10.5.2 封裝以防止可變性帶來的副作用 246
10.6 過多的嵌套的邏輯 248
10.7 本章小結(jié) 254
第11章 模型測量及其重要性 255
11.1 測量模型歸因 256
11.1.1 測量預(yù)測性能 258
11.1.2 明確相關(guān)性與因果關(guān)系 264
11.2 利用A/B檢驗進(jìn)行歸因計算 268
11.2.1 A/B檢驗基礎(chǔ) 268
11.2.2 連續(xù)評估指標(biāo) 271
11.2.3 使用替代顯示和檢驗 276
11.2.4 評估分類指標(biāo) 280
11.3 本章小結(jié) 283
第12章 通過觀察漂移以保持你的收益 285
12.1 檢測漂移 285
12.2 解決漂移問題 296
12.2.1 我們可以做些什么 296
12.2.2 應(yīng)對漂移 298
12.3 本章小結(jié) 299
第13章 機(jī)器學(xué)習(xí)中的開發(fā)“傲慢” 301
13.1 優(yōu)雅的復(fù)雜性與過度設(shè)計 302
13.1.1 輕量級腳本風(fēng)格(命令式) 304
13.1.2 “精心設(shè)計”的混亂 307
13.2 無意混淆:如果不是你寫的,你能否讀懂 311
13.2.1 關(guān)于混淆 311
13.2.2 總結(jié)不良編碼習(xí)慣 322
13.3 不成熟的泛化、不成熟的優(yōu)化以及其他顯示你有多聰明的糟糕方式 323
13.3.1 泛化和框架:除非不得已,否則不要使用它們 323
13.3.2 過早優(yōu)化 325
13.4 你真的想作為“煤礦中的金絲雀”嗎?Alpha測試和開源“煤礦”中的危險 332
13.5 技術(shù)驅(qū)動的開發(fā)與解決方案驅(qū)動的開發(fā) 335
13.6 本章小結(jié) 337
第Ⅲ部分 開發(fā)生產(chǎn)機(jī)器學(xué)習(xí)代碼
第14章 編寫生產(chǎn)代碼 341
14.1 你見到了你的數(shù)據(jù)嗎 342
14.1.1 確保你有數(shù)據(jù) 344
14.1.2 檢查數(shù)據(jù)來源 345
14.1.3 找到真相的來源并與之保持一致 348
14.1.4 不要將數(shù)據(jù)清理嵌入生產(chǎn)代碼中 349
14.2 監(jiān)控你的特征 351
14.3 監(jiān)控模型生命周期中的所有其他內(nèi)容 355
14.4 保持一切盡可能簡單 359
14.4.1 問題定義的簡潔性 361
14.4.2 簡單的實現(xiàn) 361
14.5 機(jī)器學(xué)習(xí)項目的線框圖 363
14.6 避免機(jī)器學(xué)習(xí)中的貨物崇拜行為 368
14.7 本章小結(jié) 373
第15章 質(zhì)量和驗收測試 375
15.1 數(shù)據(jù)一致性 376
15.1.1 訓(xùn)練和推理偏差 376
15.1.2 特征存儲簡介 378
15.1.3 過程勝于技術(shù) 379
15.1.4 數(shù)據(jù)孤島的危險 380
15.2 回退和冷啟動 382
15.2.1 嚴(yán)重依賴現(xiàn)有技術(shù) 383
15.2.2 冷啟動問題 385
15.3 最終用戶與內(nèi)部使用測試 387
15.3.1 有偏見的測試 390
15.3.2 自己公司的員工測試自研的產(chǎn)品(dogfooding) 391
15.3.3 SME評估 392
15.4 模型的可解釋性 393
15.4.1 Shapley加法解釋 394
15.4.2 使用shap包 396
15.5 本章小結(jié) 401
第16章 生產(chǎn)環(huán)境基礎(chǔ)設(shè)施 403
16.1 工件管理 404
16.1.1 MLflow的模型注冊 405
16.1.2 使用模型注冊進(jìn)行連接 407
16.2 特征庫 412
16.2.1 特征庫的用途 413
16.2.2 使用特征庫 415
16.2.3 評估特征庫 418
16.3 預(yù)測服務(wù)體系結(jié)構(gòu) 419
16.3.1 確定服務(wù)需求 421
16.3.2 批量外部交付 427
16.3.3 微批量流式傳輸 429
16.3.4 實時服務(wù)器端 430
16.3.5 集成模型(邊緣部署) 433
16.4 本章小結(jié) 434
附錄A Big O以及如何考慮運行時性能 435
附錄B 設(shè)置開發(fā)環(huán)境 461