首页>参考读物>计算机科学与技术>人工智能

机器学习:软件工程方法与实现
作者 : 张春强 张和平 唐振 著
出版日期 : 2020-11-23
ISBN : 978-7-111-66922-7
定价 : 109.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 444
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一部指导读者如何将软件工程的思想、方法、工具和策略应用到机器学习实践中的著作。
作者融合了自己10年的工程实践经验,以Python为工具,详细阐述机器学习核心概念、原理和实现,并提供了数据分析和处理、特征选择、模型调参和大规模模型上线系统架构等多个高质量源码包和工业应用框架。旨在帮助读者提高代码的设计质量和机器学习项目的工程效率。
全书共16章,分为4个部分:
第一部分 工程基础篇(1~3)
介绍了机器学习和软件工程的融合,涉及理论、方法、工程化的数据科学环境和数据准备;
第二部分 机器学习基础篇(4~5)
讲述了机器学习建模流程、核心概念,数据分析方法;
第三部分 特征篇(6~8)
详细介绍了多种特征离散化方法和实现、特征自动衍生工具和自动化的特征选择原理与实现;
第四部分 模型篇(9~16)
首先,深入地剖析了线性模型、树模型和集成模型的原理,以及模型调参方法、自动调参、模型性能评估和模型解释等;然后,通过5种工程化的模型上线方法讲解了模型即服务;最后,讲解了模型的稳定性监控的方法与实现,这是机器学习项目的最后一环。

图书特色

某大型金融科技集团资深大数据与机器学习技术专家撰写,基于新近Python版本
将软件工程的思想、方法、工具和策略应用到机器学习实践中,提供高质量的代码设计、可直接复用的源码和工业应用框架

图书前言

为什么要写这本书
近几年,机器学习爆发,犹如前些年大数据技术爆发一样,一家企业如果没有相关的应用都不敢说自己是科技公司,业界普遍朝着这个方向前进或转型。
互联网企业是机器学习应用的传统阵营,在推荐算法以及图像、视频和自然语言处理等方面都有成熟的应用,而近几年快速发展的互联网金融行业可谓是异军突起,推动了很多机器学习应用的落地,比如风控模型、反欺诈模型、全生命周期的信贷模型等。由于技术、行业、政策的综合因素,大量毕业生及相关行业工作者涌入或转入机器学习领域。大家的背景不一:有的人有计算机专业、统计专业、金融或经济相关专业背景;有的是由数据分析或软件开发转入;有的则是由传统银行转入。我们发现,大多数从业者并不清楚机器学习如何与系统应用相结合,不了解模型如何上线,不能编写良好的机器学习代码,不善于模块化复用,缺少软件开发常识和软件质量意识,忽视了机器学习实践中的软件工程属性。
机器学习从业者有时会自嘲为“调包侠”(只会调用现成的算法包),缺少更深入的智力参与。这就像“码农”和“软件工程师”的区别:前者是编写代码的“机器”(程序员自嘲式说法),拿到需求和功能就开始写代码,可将其定义为初级程序员;后者则会进行一定的工程设计和通用性考虑,包括模块设计、接口设计,以及开发和测试、升级和可维护性等方面的考量等。在机器学习领域,软件工程师即机器学习工程师或模型工程师,机器学习算法工程师需要软件工程素养,需将算法有效应用于实践。
一名优秀的机器学习工程师一定是一名合格的程序员,需要具备相应的软件工程素养。
在常规的软件开发过程中,程序员有属于自己的开发环境—挑选自己喜欢的编辑器,配置专属的开发环境。在机器学习建模中,Jupyter Notebook几乎已成为这个领域的标准编辑器,而在更为工程化或标准化的环境中,Docker可用于构建数据科学项目的工程环境。当我们将这些工程化的软件应用于机器学习中时,能帮助企业建立更为完善和标准的机器学习开发环境与IT架构,并在机器学习的实践中落地软件工程中的先进开发思想,如敏捷开发、测试驱动开发等。
此外,机器学习涉及大量应用广泛的开源算法包,但目前市面上鲜有介绍其应用的书。为此,本书中除了结合相关的工程软件,也介绍和应用了较多的算法包。实际上,网络上有大量的学习群、培训机构等传播了大量的相关资料,从多个方面讲述了机器学习,但难免知识点零散,显得急功近利。已有的相关图书一般从常用算法原理讲起,部分辅以实例,值得参考和学习,但笔者总感觉有所欠缺:比如模型评估中有KS指标,但还有特征的KS和KS检验,读者在遇到它们时会感到似曾相识,但又有些模糊,为此本书中会在适当的地方,针对关联知识或概念做进一步解释,想必会给读者豁然开朗的感觉;又比如,一位模型工程师熟悉了常用机器学习算法和建模流程,但他可能只做过模型训练或离线模型,从未真正上线过模型,为此本书将机器学习算法之外关于工程应用的现实问题,按机器学习项目流程进行了较好的阐述。
写作本书前,我心中已坚定一个想法:机器学习是一门实验学科,要求我们不仅要具备理论基础和敏锐的数据感知,还需要有做实验的工具、方法和策略等,并使用软件工程项目思维进行管理。这个想法一直指导我的实际建模工作,甚至影响我生活中的权衡决策。希望这一理念也能深入大家心中,这是我著书立说之梦想。
最后,诙谐轻松地说下我为什么要写这本书。
1)工作之余,周末闲适,希望做一些少有人做的事,挑战和成就自己。
2)如果不分享所学,实在可惜,对不起那么多的学习时间,把个人心得和所学传递给有需要的人会更有价值。
3)中学时代曾读到的一些科普文章中说,科学家一生最伟大的创造基本都是在30岁以前完成的,所以我也必须在智力和精力尚可时创作,否则以后很难对社会有智力贡献。
希望能够给有类似想法的读者以鼓励,或许这也是我写书的原因之一。
读者对象
总体来说,本书偏向于机器学习的进阶读者,读者需要掌握必要的计算机科学基础知识,具有Python语言的编程功底。本书适合以下读者:
机器学习爱好者或从业者
不具有编程背景的数据分析师、模型工程师
具有编程背景的转行程序员和算法工程师
高校师生
本书特色
本书视角独特,将软件工程中的方法应用到机器学习实践中,重视方法论和工程实践的融合。本书主要有3个特点。
1)机器学习的软件工程方法:用软件工程(Software Engineering)中的工具、方法和理论指导机器学习的实践活动。主要体现在测试驱动开发(TDD)方法、机器学习项目管理方法、工程化软件应用于数据科学标准化环境,以及开源算法包的大量实践应用案例等。
2)机器学习全生命周期:书中全面呈现了机器学习项目开发的完整链路,以项目需求为起点,历经样本定义、数据处理、建模、模型上线、模型监控、模型重训或重建。流程中的大部分节点独立成章,阐述充分,并且不是单纯地阐述理论,而是重在实践。同时,聚焦机器学习中应用最广泛和最有效的算法,使之成为贯穿机器学习项目生命周期的一条完整的学习路径。
3)提出机器学习是一门实验学科:书中有大量的工业实践代码,例如数据分析包、特征离散化包、特征选择包、集成模型框架包、大规模模型上线系统架构和对应代码包等,对机器学习算法特性也有大量的代码解析。书中还多次强调对于机器学习这样一门实验和实践学科,工具、方法和策略的重要性,并介绍了在实际项目中对时间、人力成本等的权衡策略。
本书不拘泥于公式推演、数值分析计算领域优化求解(梯度、牛顿、拉格朗日、凸优化)等主题,而重在展现机器学习的实际应用,以及各知识点的落地。在写作方式和内容编写等方面,本书力求既贴近工程实践又不失理论深度,给读者良好的阅读体验。
如何阅读本书
全书共16章,在逻辑上可分为4个部分,以机器学习建模流程的顺序展开,每个关键的流程节点对应一章,因此建议读者按章节顺序阅读,当然也可以直接挑选感兴趣的章节阅读。
第一部分 工程基础篇(第1~3章)
第1章首先介绍了机器学习在人工智能领域的地位,以及与当下热门的大数据、人工智能、统计学习等之间的关联和差异;其次详细介绍了软件工程中的TDD方法,并详细介绍了机器学习开发案例;最后基于互联网金融近三四年的机器学习应用沉淀和软件工程方法,重点讲述了机器学习以工程项目模式开发的优越性。
第2章提供了基于Docker定制的数据科学开发环境,供读者下载和使用。
机器学习是一门数据驱动的实验学科,因此第3章介绍了常用的数据集、接口使用方法和随机数生成方法,以满足不同读者的实验需求。
第二部分 机器学习基础篇(第4、5章)
第4章以软件工程项目的方式讲解机器学习中的核心概念,展现了从样本定义、数据处理、建模、模型上线到模型监控、模型重训或重建的完整机器学习项目生命周期,且加入了企业应用中严肃和严谨的观点,而不是类似Kaggle的建模竞赛游戏。
第5章详细介绍了数据分析方法、技巧、可视化等要点,并为此开发了一套高质量的数据分析工具。
第三部分 特征篇(第6~8章)
第6章介绍了特征工程,除归纳整理了常用的特征处理方法外,还重点介绍了特征离散化。本章几乎囊括了特征离散化的所有常用方法和技巧,比如卡方分箱、BestKS、最小熵,更令人期待的是,本章提供了高质量的源码实现。
第7章借助开源包featuretools的力量,显现了特征衍生“一生二,二生三,三生无穷”的强大魔力。特征的交叉组合可衍生大量的新特征,便于机器学习发现某种未知的模式,而其产生的可观的特征数量也是数据公司对外宣传的一项重要指标。随着大数据的发展与应用,诞生了大量的第三方数据公司,特征衍生在其中的作用不可小觑。
第8章篇幅较大,将特征选择作为机器学习的重点,描述了特征选择的背景、预测力指标和实践总结出来的一套特征选择流程,以及特征选择通用方法和特定模型特征选择方法。最后,结合书中所述理论,给出了一份不错的特征选择算法源码。
第四部分 模型篇(第9~16章)
本部分主要涉及两大类模型:线性模型和非线性模型。
第9章从线性回归讲起,逐步扩大到其他领域的广义线性模型、逻辑回归模型和金融领域的标准评分卡模型。这种方式高屋建瓴地为读者起到提示作用,让其对工作中应用的模型知其所以然。
第10章的树模型借助数据结构中的树结构来阐述。笔者认为,了解了树结构才会对树模型有更直观和深入的理解,这也有助于IT行业的读者学习。本章讲述了树的构建方法,并以一个简易的Python实现版本介绍了树模型。
第11章讲述了集成模型的可变组件和方法,基于这些组件和方法能按“搭积木”的方式构建多样的集成模型。本章详细讲述和分析了Bagging、Boosting、Stacking和Super Learner的原理和特性,并为此提供了一套Stacking集成框架和开源包ML-Ensemble的使用说明。
模型调参一直是建模人员向往的高地,需要建模人员拥有良好的综合能力。第12章为读者总结了调参流程、调参方法和自动调参理论与工具,并以XGBoost为例开发了一套自动调参工具,解释了对应的概念,为读者登上这块调参高地提供强有力的支撑。最后,介绍了多种开源调参工具的应用,包括BayesianOptimization、Ray-Tune和optuna。
单个模型的好坏有很多评价指标,模型间的选择同样有不同的衡量方法。第13章详细讲述了模型的各种评估方法及其背后的含义。
在医学或互联网金融领域,构建好的模型一定是需要解释的,而互联网领域对模型解释的需求则没有这么强烈。模型的解释可以让用户增强对业务的进一步理解,甚至形成新的知识,从而加强对业务的把控和决策,同时也有助于模型的优化。第14章中详细讲述了模型解释的可视化方法,以及白盒模型(以线性回归、逻辑回归、评分卡为代表)和黑盒模型(以集成树模型为代表)的解释原理和方法。白盒模型解释中讲述了模型系数变化、特征值变化带来的影响和含义。黑盒模型的解释介绍了通用的特征重要性方法,也使用到了Treeinterpreter、LIME和SHAP开源包,它们分别用于树模型的解释、通用局部模型解释和基于博弈论的通用解释。
第15章是本书最具有工程化实践意义的一章,主要介绍模型上线—上线方法可分为嵌入式和独立式。本章提供了多种上线方法:系数上线、自动化规则上线、开源格式法(PMML、ONNX)、编译动态库法、原生模型法和大规模模型上线的软件工程框架。书中开发的上线框架基于Docker和RESTful API。一个模型服务就是一个微服务,可支持大规模模型服务。
模型上线后的监控也很重要,决定了模型是否可用,是否需要重训或重建。第16章讲述了模型稳定性常用的监控指标和原理,并提供了相关代码实现,此外还介绍了一些监控异常的应急处理方法。
勘误和支持
由于作者水平有限,写作时间仓促,书中难免有一些错误或者不准确的地方,恳请读者批评指正。为此,特意创建了微信公众号“机器学习软件工程方法”。你可以通过这个公众号或下面提到的GitHub页面反馈问题,我将尽量在线上为你提供满意的解答。书中的全部源文件除可以从机工新阅读网站(www.cmpreading.com)下载外,还可以从我的个人GitHub页面下载,我也会根据相应的功能更新及时做出调整。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱xtdwxk@gmail.com,期待能够得到你的真挚反馈。
致谢
有3位作者参与本书的写作:张和平负责第3章、第5章、第7章和第10章,并参与2.1节的写作;唐振负责第13章和第16章,并参与第10章的写作;其他章节和全书核心代码由张春强完成。
我们曾经在一起共事,彼此非常熟悉。张和平曾经在凌晨陪我购房,唐振曾经在深圳人才公园散步时提到“程序员不能像建筑工程师一样为社会留下可见实物”,这些事都印在了我的心里。邀请他们共同写作,既是感恩,也是为了共同学习和进步。在这一年里,写作给大家的工作和生活造成了不小的压力,我也曾说过严厉的话语,在此说声抱歉!
本书重量级的审阅者是我的高中同学、目前远在英国教书的雷云文博士,他是伯明翰大学的教师,主讲机器学习。我常开玩笑说他是我们乡镇学历最高的人。他的审阅确实细致而严谨,图4-5的数字17就是他发现并修正的。希望新冠疫情早日结束,雷博士可以安全返乡,感谢雷博士!
感谢机械工业出版社华章分社的杨福川老师和栾传龙编辑对本书的支持和审阅!
在我的上一本书中,已经感谢过相关的人,此处不再赘述!

张春强  
2020年6月 

上架指导

计算机/人工智能/机器学习

封底文字

2020年国家提出“新基建”发展策略,人工智能脱颖而出,机器学习作为人工智能的基础,势头强劲。本书视角独特,以Python为工具,将软件工程中的方法应用到机器学习实践中,重视方法论和工程实践的融合,是一本“道”与“术”深度结合的方法指南。
方法论
用软件工程(Software Engineering)中的工具、方法和理论指导机器学习的实践活动,如测试驱动开发方法、机器学习项目管理方法、标准化的数据科学环境等。
提出机器学习是一门实践学科,突出其工具、方法和策略的重要性,强调实际项目中时间、人力成本等权衡策略。
工业实践
以机器学习全生命周期为脉络,全面呈现了机器学习项目开发的完整链路,并融入了当下机器学习在互联网金融领域的应用技术,同时提供了高质量的软件设计和代码实现,包括:
数据分析包
特征离散化包
特征选择包
集成模型框架包
XGBoost自动调参包
大规模模型上线系统架构和源码
一名优秀的机器学习工程师一定是一名合格的程序员,愿他们推动机器学习实践中“最后一公里”的落地!

图书目录

前言
第一部分 工程基础篇
第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

教学资源推荐
作者: [日]杉山将(Masashi Sugiyama) 著
作者: [希]西格尔斯·西奥多里蒂斯(Sergios Theodoridis) 著
作者: [美] 梅尔亚·莫里(Mehryar Mohri) 阿夫欣·罗斯塔米扎达尔(Afshin Rostamizadeh) 阿米特·塔尔沃卡尔(Ameet Talwalkar) 著
作者: [以]尤金·卡根(Eugene Kagan)尼尔·什瓦布(Nir Shvalb) 伊拉德·本-加尔(Irad Ben-Gal) 编著
参考读物推荐
作者: 赵志为 闵革勇 著
作者: [美] 拉加夫·维凯特森(Ragav Venkatesan)李宝新(Baoxin Li)著
作者: [美]弗朗西斯卡·拉泽里(Francesca Lazzeri)著
作者: [美]韦斯·麦金尼(Wes McKinney)著