機(jī)器學(xué)習(xí):軟件工程方法與實(shí)現(xiàn)
定 價(jià):109 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:張春強(qiáng) 張和平 唐振
- 出版時(shí)間:2020/11/1
- ISBN:9787111669227
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP181
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
內(nèi)容簡(jiǎn)介
這是一部指導(dǎo)讀者如何將軟件工程的思想、方法、工具和策略應(yīng)用到機(jī)器學(xué)習(xí)實(shí)踐中的著作。
作者融合了自己10年的工程實(shí)踐經(jīng)驗(yàn),以Python為工具,詳細(xì)闡述機(jī)器學(xué)習(xí)核心概念、原理和實(shí)現(xiàn),并提供了數(shù)據(jù)分析和處理、特征選擇、模型調(diào)參和大規(guī)模模型上線系統(tǒng)架構(gòu)等多個(gè)高質(zhì)量源碼包和工業(yè)應(yīng)用框架。旨在幫助讀者提高代碼的設(shè)計(jì)質(zhì)量和機(jī)器學(xué)習(xí)項(xiàng)目的工程效率。
全書共16章,分為4個(gè)部分:
第壹部分 工程基礎(chǔ)篇(1~3)
介紹了機(jī)器學(xué)習(xí)和軟件工程的融合,涉及理論、方法、工程化的數(shù)據(jù)科學(xué)環(huán)境和數(shù)據(jù)準(zhǔn)備;
第二部分 機(jī)器學(xué)習(xí)基礎(chǔ)篇(4~5)
講述了機(jī)器學(xué)習(xí)建模流程、核心概念,數(shù)據(jù)分析方法;
第三部分 特征篇(6~8)
詳細(xì)介紹了多種特征離散化方法和實(shí)現(xiàn)、特征自動(dòng)衍生工具和自動(dòng)化的特征選擇原理與實(shí)現(xiàn);
第四部分 模型篇(9~16)
首先,深入地剖析了線性模型、樹模型和集成模型的原理,以及模型調(diào)參方法、自動(dòng)調(diào)參、模型性能評(píng)估和模型解釋等;然后,通過5種工程化的模型上線方法講解了模型即服務(wù);*后,講解了模型的穩(wěn)定性監(jiān)控的方法與實(shí)現(xiàn),這是機(jī)器學(xué)習(xí)項(xiàng)目的*后一環(huán)。
前言
第一部分 工程基礎(chǔ)篇
第1章 機(jī)器學(xué)習(xí)軟件工程方法 2
1.1 機(jī)器學(xué)習(xí)簡(jiǎn)述 2
1.1.1 機(jī)器學(xué)習(xí)與人工智能、深度學(xué)習(xí)等的關(guān)系 2
1.1.2 機(jī)器學(xué)習(xí)類別與范式 4
1.2 軟件工程方法 13
1.2.1 機(jī)器學(xué)習(xí)中的軟件工程 15
1.2.2 編碼和測(cè)試 18
1.3 樸素貝葉斯測(cè)試驅(qū)動(dòng)開發(fā)案例 21
1.3.1 開發(fā)準(zhǔn)備 22
1.3.2 開發(fā)郵件分類器 24
1.4 本章小結(jié) 29
第2章 工程環(huán)境準(zhǔn)備 30
2.1 Anaconda 31
2.1.1 安裝Anaconda 31
2.1.2 使用conda管理環(huán)境 32
2.1.3 Jupyter Notebook 基礎(chǔ)使用和示例 34
2.2 使用Pipenv定制Python環(huán)境 37
2.2.1 Pipenv簡(jiǎn)介 38
2.2.2 Pipenv基礎(chǔ)使用和示例 39
2.3 Docker打包環(huán)境 41
2.3.1 Docker簡(jiǎn)述 42
2.3.2 Docker架構(gòu) 43
2.3.3 Docker基礎(chǔ)使用和示例 45
2.3.4 打包示例 46
2.4 標(biāo)準(zhǔn)化在數(shù)據(jù)科學(xué)項(xiàng)目中的意義 48
2.5 數(shù)據(jù)科學(xué)項(xiàng)目工程環(huán)境 49
2.5.1 開發(fā)鏡像 50
2.5.2 項(xiàng)目工程模板 51
2.5.3 操作演示 54
2.6 本章小結(jié) 55
第3章 實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)備 56
3.1 常用數(shù)據(jù)分布 56
3.1.1 伯努利分布 58
3.1.2 二項(xiàng)分布 58
3.1.3 泊松分布 58
3.1.4 均勻分布 59
3.1.5 正態(tài)分布 59
3.1.6 指數(shù)分布 60
3.2 開源數(shù)據(jù)集 62
3.2.1 開源數(shù)據(jù)集介紹 62
3.2.2 scikit-learn中的數(shù)據(jù)集 63
3.3 scikit-learn數(shù)據(jù)集生成接口 66
3.3.1 常用接口 66
3.3.2 分類模型隨機(jī)數(shù)據(jù)生成 67
3.3.3 回歸模型隨機(jī)數(shù)據(jù)生成 68
3.3.4 聚類模型隨機(jī)數(shù)據(jù)生成 69
3.4 隨機(jī)數(shù)生成簡(jiǎn)介 70
3.4.1 隨機(jī)數(shù)生成的原理和概念 71
3.4.2 隨機(jī)數(shù)生成示例 72
3.4.3 隨機(jī)數(shù)應(yīng)用場(chǎng)景介紹 72
3.5 本章小結(jié) 73
第二部分 機(jī)器學(xué)習(xí)基礎(chǔ)篇
第4章 機(jī)器學(xué)習(xí)項(xiàng)目流程與核心概念 76
4.1 機(jī)器學(xué)習(xí)項(xiàng)目流程 76
4.1.1 如何定義Y 78
4.1.2 如何取樣X 81
4.1.3 如何劃分?jǐn)?shù)據(jù)集 83
4.1.4 如何選擇學(xué)習(xí)算法 84
4.1.5 數(shù)據(jù)分析和處理 85
4.1.6 特征工程 87
4.1.7 模型訓(xùn)練與調(diào)參 88
4.1.8 模型評(píng)估與報(bào)告 89
4.1.9 模型部署 91
4.1.10 模型監(jiān)控 91
4.1.11 模型重訓(xùn)或重建 92
4.2 機(jī)器學(xué)習(xí)算法8個(gè)核心概念 92
4.2.1 損失函數(shù)和正則化 92
4.2.2 欠擬合與過擬合、偏差與方差 98
4.2.3 交叉驗(yàn)證 101
4.2.4 數(shù)據(jù)泄露 104
4.3 本章小結(jié) 106
第5章 數(shù)據(jù)分析與處理 107
5.1 變量的類型 107
5.2 常用分析方法 108
5.2.1 整體數(shù)據(jù)概覽 109
5.2.2 單變量可視化分析 110
5.2.3 雙變量可視化分析 113
5.2.4 多變量可視化分析 118
5.3 缺失值分析與處理 120
5.3.1 數(shù)據(jù)缺失的類型 120
5.3.2 查看缺失情況 120
5.3.3 缺失值處理方式 122
5.4 異常值分析與處理 126
5.4.1 查看異常情況 126
5.4.2 異常值處理 129
5.5 數(shù)據(jù)分析工具包開發(fā)實(shí)戰(zhàn) 129
5.5.1 核心功能 129
5.5.2 使用示例 130
5.5.3 核心代碼 131
5.6 本章小結(jié) 139
第三部分 特征篇
第6章 特征工程 142
6.1 特征工程簡(jiǎn)介 142
6.2 特征處理基礎(chǔ)方法和實(shí)現(xiàn) 144
6.2.1 定量特征 146
6.2.2 序數(shù)特征 148
6.2.3 類別特征 149
6.2.4 WOE編碼 153
6.2.5 日期特征 155
6.3 特征離散化方法和實(shí)現(xiàn) 156
6.3.1 等寬和等頻離散法 158
6.3.2 信息熵分箱原理與實(shí)現(xiàn) 161
6.3.3 Best-KS分箱原理與實(shí)現(xiàn) 167
6.3.4 卡方分箱原理與實(shí)現(xiàn) 172
6.3.5 分箱效果 178
6.4 本章小結(jié) 178
第7章 基于Featuretools的自動(dòng)特征衍生 180
7.1 特征衍生 180
7.2 Featuretools簡(jiǎn)介 181
7.2.1 安裝 182
7.2.2 核心概念和接口介紹 182
7.3 Featuretools原理 186
7.3.1 特征綜合抽象 187
7.3.2 深度特征綜合算法 187
7.4 Featuretools實(shí)踐案例 189
7.4.1 流程 189
7.4.2 捷信數(shù)據(jù) 189
7.4.3 構(gòu)建實(shí)體和實(shí)體集 191
7.4.4 構(gòu)建關(guān)系 193
7.4.5 特征基元 196
7.4.6 深度特征合成 197
7.5 本章小結(jié) 198
第8章 特征選擇 199
8.1 特征選擇概述 199
8.1.1 特征選擇及其意義 200
8.1.2 業(yè)務(wù)層特征選擇 200
8.1.3 技術(shù)層特征選擇 201
8.2 特征選擇流程與模式 204
8.2.1 數(shù)據(jù)質(zhì)量和特征質(zhì)量 204
8.2.2 串聯(lián)和并聯(lián)流程 205
8.2.3 特征選擇結(jié)果評(píng)價(jià) 206
8.3 特征預(yù)測(cè)力指標(biāo) 206
8.3.1 相關(guān)性指標(biāo) 207
8.3.2 關(guān)聯(lián)性指標(biāo) 208
8.4 過濾法與實(shí)現(xiàn) 211
8.4.1 常用單指標(biāo)過濾法 211
8.4.2 相關(guān)性與IV雙指標(biāo)過濾法 213
8.4.3 最小冗余最大相關(guān) 214
8.5 包裹法與實(shí)現(xiàn) 215
8.5.1 前向選擇實(shí)現(xiàn) 217
8.5.2 后向選擇實(shí)現(xiàn) 218
8.5.3 Stepwise實(shí)現(xiàn) 219
8.6 嵌入法與實(shí)現(xiàn) 222
8.6.1 基于隨機(jī)森林的特征選擇 222
8.6.2 基于正則的特征選擇 223
8.7 特征選擇工具包開發(fā)實(shí)戰(zhàn) 224
8.8 本章小結(jié) 230
第四部分 模型篇
第9章 線性模型 232
9.1 普通線性回歸模型 232
9.1.1 線性回歸 233
9.1.2 線性回歸的假設(shè) 236
9.1.3 線性模型如何解決非線性問題 236
9.2 廣義線性模型 238
9.2.1 建模方法論 238
9.2.2 示例 240
9.3 正則化的回歸 240
9.3.1 正則化原理 240
9.3.2 Lasso和Ridge回歸 241
9.3.3 正則化效果演示 241
9.4 邏輯回歸 247
9.4.1 模型原理 247
9.4.2 最大似然估計(jì) 249
9.4.3 LogisticRegression解析與示例 249
9.5 金融評(píng)分卡 252
9.5.1 評(píng)分卡簡(jiǎn)介 252
9.5.2 加性原理 253
9.5.3 評(píng)分刻度與實(shí)現(xiàn) 254
9.6 解決共線性 257
9.7 本章小結(jié) 257
第10章 樹模型 259
10.1 樹結(jié)構(gòu) 259
10.2 決策樹 260
10.3 決策樹算法 261
10.3.1 熵和基尼指數(shù) 261
10.3.2 ID3算法 263
10.3.3 C4.5算法 266
10.3.4 CART 267
10.4 樹的剪枝 269
10.4.1 預(yù)剪枝 269
10.4.2 后剪枝 269
10.5 特征處理 270
10.5.1 連續(xù)值處理 271
10.5.2 缺失值處理 271
10.6 決策樹實(shí)現(xiàn)示例 272
10.7 本章小結(jié) 275
第11章 集成模型 276
11.1 模型的可變組件 276
11.1.1 數(shù)據(jù)集之行列采樣 277
11.1.2 算法之同質(zhì)和異質(zhì) 277
11.2 層次化的集成方法 278
11.2.1 投票組合法 278
11.2.2 前向逐步疊加法 280
11.3 Bagging方法 281
11.3.1 Bootstrap和Aggregating 281
11.3.2 Bagging模型性能分析實(shí)驗(yàn) 282
11.3.3 Bagging偏差和方差解析 286
11.3.4 隨機(jī)森林 289
11.4 Boosting方法 291
11.4.1 Boosting的原理與實(shí)現(xiàn)示例 291
11.4.2 Boosting建模解析示例 299
11.4.3 Boosting的集大成者:XGBoost 300
11.5 Stacking概述與實(shí)現(xiàn)示例 301
11.6 Super Learner與ML-Ensemble 304
11.6.1 Super Learner實(shí)現(xiàn)示例 305
11.6.2 ML-Ensemble集成庫 307
11.7 本章小結(jié) 312
第12章 模型調(diào)參 313
12.1 模型調(diào)參概述 313
12.1.1 調(diào)參問題定義 313
12.1.2 超參數(shù)和作弊的隨機(jī)種子 314
12.1.3 調(diào)參三要素 315
12.2 調(diào)參流程和方法 316
12.2.1 調(diào)參流程 316
12.2.2 超參選取策略和特定模型超參推薦 317
12.2.3 自動(dòng)調(diào)參之元學(xué)習(xí)和代理模型 318
12.3 Model-Free方法 321
12.3.1 網(wǎng)格搜索 321
12.3.2 隨機(jī)搜索 323
12.4 XGBoost自動(dòng)調(diào)參工具開發(fā)實(shí)戰(zhàn) 324
12.4.1 功能和易用性設(shè)計(jì) 324
12.4.2 使用示例 325
12.4.3 代碼清單 326
12.5 貝葉斯方法 333
12.5.1 貝葉斯優(yōu)化介紹 333
12.5.2 BayesianOptimization優(yōu)化實(shí)例 334
12.6 部分開源調(diào)參項(xiàng)目簡(jiǎn)介 337
12.6.1 Ray-Tune 337
12.6.2 optuna 339
12.7 本章小結(jié) 341
第13章 模型性能評(píng)估 342
13.1 訓(xùn)練誤差vs測(cè)試誤差 342
13.2 模型評(píng)估常見的數(shù)據(jù)切割方法 343
13.2.1 留出法 343
13.2.2 交叉驗(yàn)證法 345
13.2.3 留一法 346
13.2.4 自助取樣法 347
13.3 性能度量 348
13.3.1 分類任務(wù) 348
13.3.2 回歸任務(wù) 357
13.4 本章小結(jié) 360
第14章 模型解釋 361
14.1 模型解釋概述 361
14.1.1 模型解釋的意義 362
14.1.2 局部和全局解釋 363
14.2 模型解釋可視化方法 364
14.2.1 PDP 364
14.2.2 ICE 370
14.3 解釋線性模型 371
14.4 解釋樹模型 372
14.4.1 樹模型特征的重要性 373
14.4.2 決策路徑 374
14.4.3 Treeinterpreter 375
14.5 模型無關(guān)解釋方法 378
14.5.1 特征重要性方法 378
14.5.2 代理模型:LIME 380
14.5.3 基于博弈論的SHAP 383
14.6 本章小結(jié) 390
第15章 模型上線之模型即服務(wù) 391
15.1 模型上線方案 391
15.1.1 是否提供獨(dú)立服務(wù) 392
15.1.2 是否提取模型細(xì)節(jié) 392
15.2 提取系數(shù)上線:回歸模型和評(píng)分卡 393
15.3 自動(dòng)規(guī)則提取上線:決策樹示例 393
15.3.1 規(guī)則轉(zhuǎn)化為Python代碼 395
15.3.2 規(guī)則轉(zhuǎn)化為C/Java等代碼 396
15.3.3 規(guī)則轉(zhuǎn)化為SQL代碼 396
15.4 PMML和ONNX 398
15.4.1 PMML 398
15.4.2 ONNX 400
15.5 編譯為共享庫加速預(yù)測(cè) 401
15.5.1 Treelite原理 401
15.5.2 使用示例 402
15.5.3 部署方法 403
15.6 原生模型持久化 404
15.6.1 寫接口 405
15.6.2 讀接口 406
15.7 RESTful Web Services構(gòu)建 406
15.7.1 快速構(gòu)建API服務(wù) 407
15.7.2 自動(dòng)化模型上線框架設(shè)計(jì)與實(shí)現(xiàn) 409
15.8 基于Docker大規(guī)模微服務(wù)上線架構(gòu) 417
15.8.1 架構(gòu)設(shè)計(jì) 417
15.8.2 定制鏡像 418
15.8.3 編排可擴(kuò)展服務(wù)示例 419
15.9 本章小結(jié) 420
第16章 模型穩(wěn)定性監(jiān)控 421
16.1 背景和監(jiān)控方法 421
16.1.1 背景 421
16.1.2 監(jiān)控方法 422
16.2 PSI和CSI 423
16.2.1 PSI 423
16.2.2 CSI 425
16.3 工程實(shí)現(xiàn) 425
16.3.1 功能簡(jiǎn)介 426
16.3.2 代碼清單和示例 426
16.4 其他監(jiān)控角度 429
16.5 監(jiān)控異常處理方案 430
16.6 本章小結(jié) 430