书籍详情

机器学习:软件工程方法与实现

机器学习:软件工程方法与实现

作者:张春强,张和平,唐振 著

出版社:机械工业出版社

出版时间:2020-12-01

ISBN:9787111669227

定价:¥109.00

购买这本书可以去
内容简介
  这是一部指导读者如何将软件工程的思想、方法、工具和策略应用到机器学习实践中的著作。 作者融合了自己10年的工程实践经验,以Python为工具,详细阐述机器学习核心概念、原理和实现,并提供了数据分析和处理、特征选择、模型调参和大规模模型上线系统架构等多个高质量源码包和工业应用框架,旨在帮助读者提高代码的设计质量和机器学习项目的工程效率。 全书共16章,分为4个部分:第一部分 工程基础篇(1~3章) 介绍了机器学习和软件工程的融合,涉及理论、方法、工程化的数据科学环境和数据准备; 第二部分 机器学习基础篇(4、5章) 讲述了机器学习建模流程、核心概念,数据分析方法; 第三部分 特征篇(6~8章) 详细介绍了多种特征离散化方法和实现、特征自动衍生工具和自动化的特征选择原理与实现; 第四部分 模型篇(9~16章) 首先,深入地剖析了线性模型、树模型和集成模型的原理,以及模型调参方法、自动调参、模型性能评估和模型解释等;然后,通过5种工程化的模型上线方法讲解了模型即服务;最后,讲解了模型的稳定性监控的方法与实现,这是机器学习项目的最后一环。
作者简介
  张春强是一位具有3年C/C++、7年大数据和机器学习经验且富有创造力的技术专家,在技术一线摸爬滚打近10年,先后就职于大型IT、世界500强企业,目前就职于某大型金融科技集团,负责数据挖掘、机器学习相关工作的管理和研发。时隔5年,他再次为读者书写了一本技术专著。 张和平现就职于某互联网金融集团科技公司,任大数据模型工程师,负责机器学习在金融风控和用户运营方面的应用工作,善于运用机器学习、数据挖掘、知识图谱和大数据技术解决实际的业务问题。在大数据风控建模、用户画像、大数据平台建设等方面有丰富的实践经验。
目录
前言
第一部分 工程基础篇
第1章 机器学习软件工程方法 2
1.1 机器学习简述 2
1.1.1 机器学习与人工智能、深度学习等的关系 2
1.1.2 机器学习类别与范式 4
1.2 软件工程方法 13
1.2.1 机器学习中的软件工程 15
1.2.2 编码和测试 18
1.3 朴素贝叶斯测试驱动开发案例 21
1.3.1 开发准备 22
1.3.2 开发邮件分类器 24
1.4 本章小结 29
第2章 工程环境准备 30
2.1 Anaconda 31
2.1.1 安装Anaconda 31
2.1.2 使用conda管理环境 32
2.1.3 Jupyter Notebook 基础使用和示例 34
2.2 使用Pipenv定制Python环境 37
2.2.1 Pipenv简介 38
2.2.2 Pipenv基础使用和示例 39
2.3 Docker打包环境 41
2.3.1 Docker简述 42
2.3.2 Docker架构 43
2.3.3 Docker基础使用和示例 45
2.3.4 打包示例 46
2.4 标准化在数据科学项目中的意义 48
2.5 数据科学项目工程环境 49
2.5.1 开发镜像 50
2.5.2 项目工程模板 51
2.5.3 操作演示 54
2.6 本章小结 55
第3章 实验数据准备 56
3.1 常用数据分布 56
3.1.1 伯努利分布 58
3.1.2 二项分布 58
3.1.3 泊松分布 58
3.1.4 均匀分布 59
3.1.5 正态分布 59
3.1.6 指数分布 60
3.2 开源数据集 62
3.2.1 开源数据集介绍 62
3.2.2 scikit-learn中的数据集 63
3.3 scikit-learn数据集生成接口 66
3.3.1 常用接口 66
3.3.2 分类模型随机数据生成 67
3.3.3 回归模型随机数据生成 68
3.3.4 聚类模型随机数据生成 69
3.4 随机数生成简介 70
3.4.1 随机数生成的原理和概念 71
3.4.2 随机数生成示例 72
3.4.3 随机数应用场景介绍 72
3.5 本章小结 73
第二部分 机器学习基础篇
第4章 机器学习项目流程与核心概念 76
4.1 机器学习项目流程 76
4.1.1 如何定义Y 78
4.1.2 如何取样X 81
4.1.3 如何划分数据集 83
4.1.4 如何选择学习算法 84
4.1.5 数据分析和处理 85
4.1.6 特征工程 87
4.1.7 模型训练与调参 88
4.1.8 模型评估与报告 89
4.1.9 模型部署 91
4.1.10 模型监控 91
4.1.11 模型重训或重建 92
4.2 机器学习算法8个核心概念 92
4.2.1 损失函数和正则化 92
4.2.2 欠拟合与过拟合、偏差与方差 98
4.2.3 交叉验证 101
4.2.4 数据泄露 104
4.3 本章小结 106
第5章 数据分析与处理 107
5.1 变量的类型 107
5.2 常用分析方法 108
5.2.1 整体数据概览 109
5.2.2 单变量可视化分析 110
5.2.3 双变量可视化分析 113
5.2.4 多变量可视化分析 118
5.3 缺失值分析与处理 120
5.3.1 数据缺失的类型 120
5.3.2 查看缺失情况 120
5.3.3 缺失值处理方式 122
5.4 异常值分析与处理 126
5.4.1 查看异常情况 126
5.4.2 异常值处理 129
5.5 数据分析工具包开发实战 129
5.5.1 核心功能 129
5.5.2 使用示例 130
5.5.3 核心代码 131
5.6 本章小结 139
第三部分 特征篇
第6章 特征工程 142
6.1 特征工程简介 142
6.2 特征处理基础方法和实现 144
6.2.1 定量特征 146
6.2.2 序数特征 148
6.2.3 类别特征 149
6.2.4 WOE编码 153
6.2.5 日期特征 155
6.3 特征离散化方法和实现 156
6.3.1 等宽和等频离散法 158
6.3.2 信息熵分箱原理与实现 161
6.3.3 Best-KS分箱原理与实现 167
6.3.4 卡方分箱原理与实现 172
6.3.5 分箱效果 178
6.4 本章小结 178
第7章 基于Featuretools的自动特征衍生 180
7.1 特征衍生 180
7.2 Featuretools简介 181
7.2.1 安装 182
7.2.2 核心概念和接口介绍 182
7.3 Featuretools原理 186
7.3.1 特征综合抽象 187
7.3.2 深度特征综合算法 187
7.4 Featuretools实践案例 189
7.4.1 流程 189
7.4.2 捷信数据 189
7.4.3 构建实体和实体集 191
7.4.4 构建关系 193
7.4.5 特征基元 196
7.4.6 深度特征合成 197
7.5 本章小结 198
第8章 特征选择 199
8.1 特征选择概述 199
8.1.1 特征选择及其意义 200
8.1.2 业务层特征选择 200
8.1.3 技术层特征选择 201
8.2 特征选择流程与模式 204
8.2.1 数据质量和特征质量 204
8.2.2 串联和并联流程 205
8.2.3 特征选择结果评价 206
8.3 特征预测力指标 206
8.3.1 相关性指标 207
8.3.2 关联性指标 208
8.4 过滤法与实现 211
8.4.1 常用单指标过滤法 211
8.4.2 相关性与IV双指标过滤法 213
8.4.3 最小冗余最大相关 214
8.5 包裹法与实现 215
8.5.1 前向选择实现 217
8.5.2 后向选择实现 218
8.5.3 Stepwise实现 219
8.6 嵌入法与实现 222
8.6.1 基于随机森林的特征选择 222
8.6.2 基于正则的特征选择 223
8.7 特征选择工具包开发实战 224
8.8 本章小结 230
第四部分 模型篇
第9章 线性模型 232
9.1 普通线性回归模型 232
9.1.1 线性回归 233
9.1.2 线性回归的假设 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 最大似然估计 249
9.4.3 LogisticRegression解析与示例 249
9.5 金融评分卡 252
9.5.1 评分卡简介 252
9.5.2 加性原理 253
9.5.3 评分刻度与实现 254
9.6 解决共线性 257
9.7 本章小结 257
第10章 树模型 259
10.1 树结构 259
10.2 决策树 260
10.3 决策树算法 261
10.3.1 熵和基尼指数 261
10.3.2 ID3算法 263
10.3.3 C4.5算法 266
10.3.4 CART 267
10.4 树的剪枝 269
10.4.1 预剪枝 269
10.4.2 后剪枝 269
10.5 特征处理 270
10.5.1 连续值处理 271
10.5.2 缺失值处理 271
10.6 决策树实现示例 272
10.7 本章小结 275
第11章 集成模型 276
11.1 模型的可变组件 276
11.1.1 数据集之行列采样 277
11.1.2 算法之同质和异质 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模型性能分析实验 282
11.3.3 Bagging偏差和方差解析 286
11.3.4 随机森林 289
11.4 Boosting方法 291
11.4.1 Boosting的原理与实现示例 291
11.4.2 Boosting建模解析示例 299
11.4.3 Boosting的集大成者:XGBoost 300
11.5 Stacking概述与实现示例 301
11.6 Super Learner与ML-Ensemble 304
11.6.1 Super Learner实现示例 305
11.6.2 ML-Ensemble集成库 307
11.7 本章小结 312
第12章 模型调参 313
12.1 模型调参概述 313
12.1.1 调参问题定义 313
12.1.2 超参数和作弊的随机种子 314
12.1.3 调参三要素 315
12.2 调参流程和方法 316
12.2.1 调参流程 316
12.2.2 超参选取策略和特定模型超参推荐 317
12.2.3 自动调参之元学习和代理模型 318
12.3 Model-Free方法 321
12.3.1 网格搜索 321
12.3.2 随机搜索 323
12.4 XGBoost自动调参工具开发实战 324
12.4.1 功能和易用性设计 324
12.4.2 使用示例 325
12.4.3 代码清单 326
12.5 贝叶斯方法 333
12.5.1 贝叶斯优化介绍 333
12.5.2 BayesianOptimization优化实例 334
12.6 部分开源调参项目简介 337
12.6.1 Ray-Tune 337
12.6.2 optuna 339
12.7 本章小结 341
第13章 模型性能评估 342
13.1 训练误差vs测试误差 342
13.2 模型评估常见的数据切割方法 343
13.2.1 留出法 343
13.2.2 交叉验证法 345
13.2.3 留一法 346
13.2.4 自助取样法 347
13.3 性能度量 348
13.3.1 分类任务 348
13.3.2 回归任务 357
13.4 本章小结 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 模型无关解释方法 378
14.5.1 特征重要性方法 378
14.5.2 代理模型:LIME 380
14.5.3 基于博弈论的SHAP 383
14.6 本章小结 390
第15章 模型上线之模型即服务 391
15.1 模型上线方案 391
15.1.1 是否提供独立服务 392
15.1.2 是否提取模型细节 392
15.2 提取系数上线:回归模型和评分卡 393
15.3 自动规则提取上线:决策树示例 393
15.3.1 规则转化为Python代码 395
15.3.2 规则转化为C/Java等代码 396
15.3.3 规则转化为SQL代码 396
15.4 PMML和ONNX 398
15.4.1 PMML 398
15.4.2 ONNX 400
15.5 编译为共享库加速预测 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构建 406
15.7.1 快速构建API服务 407
15.7.2 自动化模型上线框架设计与实现 409
15.8 基于Docker大规模微服务上线架构 417
15.8.1 架构设计 417
15.8.2 定制镜像 418
15.8.3 编排可扩展服务示例 419
15.9 本章小结 420
第16章 模型稳定性监控 421
16.1 背景和监控方法 421
16.1.1 背景 421
16.1.2 监控方法 422
16.2 PSI和CSI 423
16.2.1 PSI 423
16.2.2 CSI 425
16.3 工程实现 425
16.3.1 功能简介 426
16.3.2 代码清单和示例 426
16.4 其他监控角度 429
16.5 监控异常处理方案 430
16.6 本章小结 430
猜您喜欢

读书导航