作者: 张春强张和平唐振
出版社: 机械工业出版社
出版年: 2020-11
ISBN: 9787111669227
~~滚到底部有网盘下载链接~~
内容简介
本书视角独特,将软件工程中的方法应用到机器学习实践中,重视方法论和工程实践的融合。本书主要有3个特点。1)机器学习的软件工程方法:用软件工程(Software Engineering)中的工具、方法和理论指导机器学习的实践活动。主要体现在测试驱动开发(TDD)方法、机器学习项目管理方法、工程化软件应用于数据科学标准化环境,以及开源算法包的大量实践应用案例等。2)机器学习全生命周期:书中全面呈现了机器学习项目开发的完整链路,以项目需求为起点,历经样本定义、数据处理、建模、模型上线、模型监控、模型重训或重建。流程中的大部分节点独立成章,阐述充分,并且不是单纯地阐述理论,而是重在实践。同时,聚焦机器学习中应用最广泛和最有效的算法,使之成为贯穿机器学习项目生命周期的一条完整的学习路径。3)提出机器学习是一门实验学科:书中有大量的工业实践代码,例如数据分析包、特征离散化包、特征选择包、集成模型框架包、大规模模型上线系统架构和对应代码包等,对机器学习算法特性也有大量的代码解析。书中还多次强调对于机器学习这样一门实验和实践学科,工具、方法和策略的重要性,并介绍了在实际项目中对时间、人力成本等的权衡策略。本书不拘泥于公式推演、数值分析计算领域优化求解(梯度、牛顿、拉格朗日、凸优化)等主题,而重在展现机器学习的实际应用,以及各知识点的落地。在写作方式和内容编写等方面,本书力求既贴近工程实践又不失理论深度,给读者良好的阅读体验。
张春强,张和平,唐振著。
张春强,张和平,唐振著。
目录
前言
第一部分 工程基础篇
第1章 机器学习软件工程方法
1.1 机器学习简述
1.2 软件工程方法
1.3 朴素贝叶斯测试驱动开发案例
1.4 本章小结
第2章 工程环境准备
2.1 Anaconda
2.2 使用Pipenv定制Python环境
2.3 Docker打包环境
2.4 标准化在数据科学项目中的意义
2.5 数据科学项目工程环境
2.6 本章小结
第3章 实验数据准备
3.1 常用数据分布
3.2 开源数据集
3.3 scikit-learn数据集生成接口
3.4 随机数生成简介
3.5 本章小结
第二部分 机器学习基础篇
第4章 机器学习项目流程与核心概念
4.1 机器学习项目流程
4.2 机器学习算法8个核心概念
4.3 本章小结
第5章 数据分析与处理
5.1 变量的类型
5.2 常用分析方法
5.3 缺失值分析与处理
5.4 异常值分析与处理
5.5 数据分析工具包开发实战
5.6 本章小结
第三部分 特征篇
第6章 特征工程
6.1 特征工程简介
6.2 特征处理基础方法和实现
6.3 特征离散化方法和实现
6.4 本章小结
第7章 基于Featuretools的自动特征衍生
7.1 特征衍生
7.2 Featuretools简介
7.3 Featuretools原理
7.4 Featuretools实践案例
7.5 本章小结
第8章 特征选择
8.1 特征选择概述
8.2 特征选择流程与模式
8.3 特征预测力指标
8.4 过滤法与实现
8.5 包裹法与实现
8.6 嵌入法与实现
8.7 特征选择工具包开发实战
8.8 本章小结
第四部分 模型篇
第9章 线性模型
9.1 普通线性回归模型
9.2 广义线性模型
9.3 正则化的回归
9.4 逻辑回归
9.5 金融评分卡
9.6 解决共线性
9.7 本章小结
第10章 树模型
10.1 树结构
10.2 决策树
10.3 决策树算法
10.4 树的剪枝
10.5 特征处理
10.6 决策树实现示例
10.7 本章小结
第11章 集成模型
11.1 模型的可变组件
11.2 层次化的集成方法
11.3 Bagging方法
11.4 Boosting方法
11.5 Stacking概述与实现示例
11.6 Super Learner与ML-Ensemble
11.7 本章小结
第12章 模型调参
12.1 模型调参概述
12.2 调参流程和方法
12.3 Model-Free方法
12.4 XGBoost自动调参工具开发实战
12.5 贝叶斯方法
12.6 部分开源调参项目简介
12.7 本章小结
第13章 模型性能评估
13.1 训练误差vs测试误差
13.2 模型评估常见的数据切割方法
13.3 性能度量
13.4 本章小结
第14章 模型解释
14.1 模型解释概述
14.2 模型解释可视化方法
14.3 解释线性模型
14.4 解释树模型
14.5 模型无关解释方法
14.6 本章小结
第15章 模型上线之模型即服务
15.1 模型上线方案
15.2 提取系数上线:回归模型和评分卡
15.3 自动规则提取上线:决策树示例
15.4 PMML和ONNX
15.5 编译为共享库加速预测
15.6 原生模型持久化
15.7 RESTful Web Services构建
15.8 基于Docker大规模微服务上线架构
15.9 本章小结
第16章 模型稳定性监控
16.1 背景和监控方法
16.2 PSI和CSI
16.3 工程实现
16.4 其他监控角度
16.5 监控异常处理方案
16.6 本章小结
第一部分 工程基础篇
第1章 机器学习软件工程方法
1.1 机器学习简述
1.2 软件工程方法
1.3 朴素贝叶斯测试驱动开发案例
1.4 本章小结
第2章 工程环境准备
2.1 Anaconda
2.2 使用Pipenv定制Python环境
2.3 Docker打包环境
2.4 标准化在数据科学项目中的意义
2.5 数据科学项目工程环境
2.6 本章小结
第3章 实验数据准备
3.1 常用数据分布
3.2 开源数据集
3.3 scikit-learn数据集生成接口
3.4 随机数生成简介
3.5 本章小结
第二部分 机器学习基础篇
第4章 机器学习项目流程与核心概念
4.1 机器学习项目流程
4.2 机器学习算法8个核心概念
4.3 本章小结
第5章 数据分析与处理
5.1 变量的类型
5.2 常用分析方法
5.3 缺失值分析与处理
5.4 异常值分析与处理
5.5 数据分析工具包开发实战
5.6 本章小结
第三部分 特征篇
第6章 特征工程
6.1 特征工程简介
6.2 特征处理基础方法和实现
6.3 特征离散化方法和实现
6.4 本章小结
第7章 基于Featuretools的自动特征衍生
7.1 特征衍生
7.2 Featuretools简介
7.3 Featuretools原理
7.4 Featuretools实践案例
7.5 本章小结
第8章 特征选择
8.1 特征选择概述
8.2 特征选择流程与模式
8.3 特征预测力指标
8.4 过滤法与实现
8.5 包裹法与实现
8.6 嵌入法与实现
8.7 特征选择工具包开发实战
8.8 本章小结
第四部分 模型篇
第9章 线性模型
9.1 普通线性回归模型
9.2 广义线性模型
9.3 正则化的回归
9.4 逻辑回归
9.5 金融评分卡
9.6 解决共线性
9.7 本章小结
第10章 树模型
10.1 树结构
10.2 决策树
10.3 决策树算法
10.4 树的剪枝
10.5 特征处理
10.6 决策树实现示例
10.7 本章小结
第11章 集成模型
11.1 模型的可变组件
11.2 层次化的集成方法
11.3 Bagging方法
11.4 Boosting方法
11.5 Stacking概述与实现示例
11.6 Super Learner与ML-Ensemble
11.7 本章小结
第12章 模型调参
12.1 模型调参概述
12.2 调参流程和方法
12.3 Model-Free方法
12.4 XGBoost自动调参工具开发实战
12.5 贝叶斯方法
12.6 部分开源调参项目简介
12.7 本章小结
第13章 模型性能评估
13.1 训练误差vs测试误差
13.2 模型评估常见的数据切割方法
13.3 性能度量
13.4 本章小结
第14章 模型解释
14.1 模型解释概述
14.2 模型解释可视化方法
14.3 解释线性模型
14.4 解释树模型
14.5 模型无关解释方法
14.6 本章小结
第15章 模型上线之模型即服务
15.1 模型上线方案
15.2 提取系数上线:回归模型和评分卡
15.3 自动规则提取上线:决策树示例
15.4 PMML和ONNX
15.5 编译为共享库加速预测
15.6 原生模型持久化
15.7 RESTful Web Services构建
15.8 基于Docker大规模微服务上线架构
15.9 本章小结
第16章 模型稳定性监控
16.1 背景和监控方法
16.2 PSI和CSI
16.3 工程实现
16.4 其他监控角度
16.5 监控异常处理方案
16.6 本章小结