目 录
第 一部分 基础知识
第 1 章 机器学习的发展和应用 2
1.1 什么是机器学习 2
1.2 机器学习的发展 3
1.3 机器学习的应用 5
1.3.1 数据挖掘 5
1.3.2 人脸检测 6
1.3.3 人机对弈 7
1.3.4 机器翻译 7
1.3.5 自动驾驶 7
1.3.6 其他应用 8
1.4 本章小结 8
第 2 章 Python 编程基础 9
2.1 Python 概述 9
2.2 Python 平台搭建 9
2.2.1 Python 环境部署 9
2.2.2 Python 运行方式 12
2.3 Python 语法基础 14
2.3.1 Python 编程规范 14
2.3.2 基本数据类型 15
2.3.3 Python 编程基础 18
2.3.4 模块和包 21
2.3.5 文件操作 22
2.4 本章小结 23
第 3 章 数据分析基础 24
3.1 数据分析概述 24
3.1.1 什么是数据分析 24
3.1.2 数据分析的步骤 24
3.1.3 常用的数据分析策略 26
3.1.4 数据分析方法 27
3.1.5 数据分析工具 28
3.2 Python 中常用的数据分析库 29
3.2.1 Numpy 29
3.2.2 Pandas 33
3.2.3 Matplotlib 37
3.2.4 SciPy 39
3.3 利用 Python 进行数据分析 42
3.3.1 数据加载、存储 42
3.3.2 数据清洗和准备 46
3.3.3 数据规整 54
3.3.4 数据可视化 61
3.3.5 数据分组和聚合 64
3.3.6 数据分析案例 70
3.4 本章小结 77
第 4 章 机器学习基础 78
4.1 机器学习简介 78
4.1.1 机器学习中的基本概念 78
4.1.2 机器学习分类及训练方式 79
4.1.3 机器学习三要素 81
4.2 机器学习库 83
4.2.1 Scikit-learn 83
4.2.2 StatsModels 87
4.3 机器学习算法 89
4.3.1 回归算法 89
4.3.2 支持向量机 91
4.3.3 决策树 92
4.3.4 聚类 94
4.3.5 降维 100
4.3.6 集成学习 102
4.3.7 神经网络 106
4.3.8 常用模型的特点和应用场景 109
4.4 本章小结 111
第二部分 大数据测试
第 5 章 大数据基础 114
5.1 什么是大数据 114
5.2 Hadoop 生态系统 115
5.2.1 HDFS 116
5.2.2 MapReduce 118
5.2.3 Hive 121
5.2.4 HBase 124
5.2.5 Storm、Spark 和 Flink 131
5.3 数据仓库与 ETL 流程 133
5.3.1 什么是 ETL 133
5.3.2 什么是数据仓库 134
5.3.3 数据仓库的架构 135
5.4 本章小结 136
第 6 章 大数据测试指南 137
6.1 大数据测试概述 137
6.1.1 什么是大数据测试 137
6.1.2 大数据测试与传统数据测试差异 138
6.2 大数据 ETL 测试 139
6.2.1 ETL 测试流程 139
6.2.2 ETL 测试方法 140
6.2.3 ETL 测试场景 143
6.3 本章小结 147
第 7 章 大数据工具实践 148
7.1 大数据测试工具 148
7.1.1 大数据测试的痛点 148
7.1.2 大数据测试工具 easy_data_test 的设计 149
7.1.3 大数据测试工具 easy_data_test 的使用 152
7.1.4 大数据测试工具展望 157
7.2 数据质量监控平台157
7.2.1 数据质量把控环节 158
7.2.2 数据质量评估要点 158
7.2.3 数据质量监控平台设计 159
7.3 数据调度平台 163
7.3.1 调度系统概述 163
7.3.2 Azkaban 概述 163
7.3.3 Azkaban 实践 164
7.4 本章小结 168
第三部分 模型测试
第 8 章 机器学习测试基础 170
8.1 机器学习生命周期 170
8.2 机器学习测试难点 173
8.3 机器学习测试重点 174
8.4 模型工程服务测试 176
8.4.1 单元测试 177
8.4.2 集成测试 178
8.4.3 系统测试 179
8.5 A/B 测 试 180
8.5.1 A/B 测 试 180
8.5.2 做 A/B 测试的原因 181
8.5.3 A/B 测试在机器学习模型中的应用 181
8.6 本章小结 182
第 9 章 特征专项测试 184
9.1 特征工程简介 184
9.1.1 数据探索 184
9.1.2 数据预处理 185
9.1.3 特征构建 190
9.1.4 特征选择 190
9.2 特征测试方法 191
9.2.1 特征指标分析 191
9.2.2 特征稳定性测试 198
9.3 特征测试实践 199
9.3.1 特征指标分析实践 199
9.3.2 特征可视化实践 203
9.3.3 特征稳定性测试实践 207
9.3.4 特征监控实践 211
9.4 本章小结 212
第 10 章 模型算法评估测试 213
10.1 模型算法评估基础 213
10.1.1 模型算法评估概述 213
10.1.2 样本数据划分策略 214
10.1.3 统计学指标与统计图 216
10.1.4 模型算法评估指标 217
10.2 模型算法的测试方法 223
10.2.1 模型蜕变测试 223
10.2.2 模型模糊测试 226
10.2.3 模型鲁棒性测试 227
10.2.4 模型安全测试 229
10.2.5 模型可解释性测试 230
10.2.6 模型在线测试 233
10.2.7 模型监控与迭代 234
10.3 不同应用场景下模型算法的评测 235
10.3.1 图像分类应用场景下的模型算法评测 235
10.3.2 推荐应用场景下的模型算法评测 236
10.3.3 金融风控应用场景下的模型算法评测 239
10.4 本章小结 241
第四部分 模型工程
第 11 章 模型评估平台实践 244
11.1 模型评估平台背景 244
11.2 模型评估平台的设计 245
11.2.1 平台需求分析 245
11.2.2 平台架构设计 246
11.3 模型评估平台展示 253
11.3.1 模型配置规则 253
11.3.2 模型评估指标 255
11.3.3 模型评估报告 261
11.4 模型评估平台总结 263
11.4.1 回 顾 264
11.4.2 展 望 265
11.5 本章小结 266
第 12 章 机器学习工程技术 267
12.1 机器学习平台概述 267
12.1.1 机器学习平台发展历程 267
12.1.2 主流的机器学习平台 269
12.1.3 机器学习平台的建设 270
12.2 数据与建模工程技术 272
12.2.1 数据采集 272
12.2.2 数据存储 272
12.2.3 数据加工 273
12.2.4 样本数据 274
12.2.5 特征工程 275
12.2.6 模型构建 275
12.3 模型部署工程技术 279
12.3.1 模型部署概述 279
12.3.2 模型发布方式 279
12.3.3 模型线上监控 284
12.4 本章小结 286
第 13 章 机器学习的持续交付 287
13.1 机器学习持续交付的介绍与定义 287
13.1.1 持续交付 287
13.1.2 机器学习持续交付的定义 289
13.2 机器学习持续交付的主要挑战 290
13.2.1 组织流程的挑战 290
13.2.2 复杂技术的挑战 292
13.3 如何构建机器学习管道 292
13.3.1 机器学习管道概述 293
13.3.2 构建机器学习管道 293
13.3.3 Pipeline(管道)设计的关注点 307
13.3.4 Pipeline 的技术组件 307
13.4 本章小结 309
第五部分 AI In Test
第 14 章 AI 在测试领域的探索与实践 312
14.1 测试发展面临的挑战 312
14.2 AI 在测试领域的应用及优势 313
14.3 业界智能化测试案例介绍 314
14.3.1 AI 在测试效能方面的探索 315
14.3.2 AI 在自动化测试方面的实践 317
14.4 主流AI 测试工具简介 320
14.5 本章小结 322
第 15 章 AI 时代测试工程师的未来 324
15.1 AI 对测试未来发展的影响 324
15.2 AI 时代测试工程师的定位 325
15.3 测试工程师的AI 学习路线 326
15.4 本章小结 328
参考文献 329
本书全面且系统地介绍了机器学习测试技术与质量体系建设,分为5部分,共15章。第一部分(第1~4章)涵盖了机器学习、Python编程、数据分析的基础知识;第二部分(第5~7章)介绍了大数据基础、大数据测试指南及相关工具实践;第三部分(第8~10章)讲解了机器学习测试基础、特征专项测试及模型算法评估测试;第四部分(第11~13章)介绍了模型评估平台实践、机器学习工程技术及机器学习的持续交付流程;第五部分(第14章和第15章)探讨了AI(Artificial Intelligence)在测试领域的实践及AI时代测试工程师的未来。
本书能够帮助读者了解机器学习是如何工作的,了解机器学习的质量保障是如何进行的。工程开发人员和测试工程师通过阅读本书,可以系统化地了解大数据测试、特征测试及模型评估等知识;算法工程师通过阅读本书,可以学习模型评测的方法和拓宽模型工程实践的思路;技术专家和技术管理者通过阅读本书,可以了解机器学习质量保障与工程效能的建设方案。
本书主要聚焦机器学习领域,机器学习是人工智能算法的核心,书中内容均是融360 AI测试团队在机器学习测试方面的实践和经验积累。希望通过这种有效的分享和学习,可以更好地促进人工智能领域的技术交流,让思想在碰撞中迸出更多火花。
——融360联合创始人、CEO 叶大清
不同于传统的机器学习相关理论的教科书,本书视角新颖,从QA的角度阐述了机器学习产品的质量保障与工程效能,并侧重于机器学习测试方法如何在真实业务场景的落地。书籍内容丰富,章节设计循序渐进(机器学习、数据质量、模型评测、模型工程、智能测试),内容讲解通俗易懂,并列举了大量真实案例(如:金融风控、智能推荐、图像分类等),希望有助于读者学习、理解。
——融360联合创始人、CTO 刘曹峰
闻道有先后,希望更多有志于精湛机器学习技术,完善机器学习方法的工程师能更早地看到这本书,从中获得体系化的总结,体悟作者的经验之谈,感受术业有专攻的进阶之路,并能应用到日常工作中,也都成为所在领域的技术专家。
——阿里巴巴本地生活 高级科学家 蒋凡
今天很高兴有这样一本书,告诉我们如何针对智能系统进行测试。例如,特征专项测试和模型算法评估测试。这方面的测试,也是人工智能测试的核心,也是本书关键的内容,分别讨论了模型蜕变测试、模糊测试、鲁棒性测试、可解释性测试等,其中还通过图像分类、智能推荐、金融风控等三个典型的业务场景中的模型算法评测实践,就这部分内容做更为详细的分析和解读,更好地让读者理解模型算法评测方法、流程和具体操作。
——同济大学特聘教授、《全程软件测试》作者 朱少民
机器学习测试不仅涵盖了传统测试人员关注的系统稳定性、功能正确性、吞吐量等问题, 而且需要覆盖算法工程师关心的数据的准确性、模型精度、模型的线下计算和线上计算一致性等问题。本书介绍了作者在机器学习测试方面的实战技术,非常适合对机器学习测试感兴趣的读者阅读。
——邹宇,携程大数据与 AI 应用研发部负责人、VP
本书内容丰富、案例翔实,不仅阐述了数据分析、机器学习、大数据等基础知识,还对模型算法评估、特征测试分析、模型工程平台等做了原理讲解和案例分析。本书通俗易懂,具有很强的实用性,非常适合希望入门机器学习、大数据测试的读者阅读。
——沈剑,快狗打车 CTO、公众号“架构师之路”作者
在人工智能应用快速普及的当下,如何对机器学习进行测试?怎样衡量人工智能应用的“智商”?如何评估数据质量和模型精度?本书对这些问题都给出了解答。
——史海峰,贝壳金服 2B2C CTO、公众号“IT 民工闲话”作者
机器学习测试是一个较新的方向,测试体系建设尚在逐步完善的阶段。本书系统地介绍了机器学习测试的技术,并对机器学习模型与工程化测试等做了细致的介绍,为 AI 测试工程师指明了学习路线。读完本书读者必定会对 AI 测试工作有更加全面的了解,并能拓展视野和进行项目实战。
——徐明泉,顺丰同城科技人工智能中心负责人
随着大数据和人工智能的发展与普及,基于机器学习的解决方案在业务问题的建模和优化中发挥的作用越来越大,与机器学习相关的数据准确性和模型精度的测试也更加重要。与工程架构和产品功能的测试相比,非线性、敏感性导致机器学习模型的测试工作难度更大。作者把自己在相关领域的长期实践经验做了总结并以书的形式呈现出来,对测试人员有很好的启发和借鉴意义。
——闫奎名,滴滴高级算法专家
做机器学习应用的公司很多,而专门做机器学习测试的团队凤毛麟角。艾辉和他带领的融360 AI 测试团队把他们在机器学习测试方面的一线实战经验沉淀成书,在当下显得难能可贵。在人工智能应用正在爆发的今天,一本专门讲述机器学习测试技术的书的出现恰逢其时,所有渴望拥抱人工智能的测试同行的书架上,都应该摆上这本集合了融 360 AI 测试团队一线测试经验的书。本书对掌握人工智能测试方法很有帮助。
——徐琨,Testin 云测总裁
10 年前我在阿里巴巴工作的时候就开始接触机器学习模型的测试,当时针对算法模型测试的资料非常匮乏。10 年过去了,大数据、机器学习和深度学习应用越来越普及。如何保证机器学习项目质量、评估机器学习项目效果已经是测试人员的工作方向了。但出于种种原因,这方面的学习资料很少,本书为读者进行机器学习测试提供了有益的指导,及时填补了这个空白。
——黄延胜(思寒),霍格沃兹测试学院创始人、测吧(北京)科技有限公司测试架构师
本书系统地阐述了融 360 AI 测试团队在机器学习测试领域的探索和实践。本书采用由浅入深的知识结构和通俗易懂的语言,分析机器学习测试的关键技术,是读者进行机器学习测试技术入门和工程实践的一本好书。
——茹炳晟,Dell EMC(中国研发集团)资深架构师
近几年,各行各业的人都在思考如何利用机器学习解决自己所处领域的问题,目前机器学习技术已能够解决测试领域的一些问题。本书作者结合自身丰富的工作实践和经验积累,非常全面而系统地阐述了机器学习测试技术与质量体系建设,是开发工程师、测试工程师、技术专家及技术管理者了解人工智能测试的案头书。本书兼顾机器学习知识的广度和深度,涵盖了丰富的机器学习测试的内容,解决了很多技术人员在机器学习测试中“知其然,而不知其所以然”的困惑。
——童庭坚,PerfMa 联合创始人兼首席技术官, 蚂蚁金服原全链路压测平台与性能回归体系建设负责人
机器学习算法和模型的错误可能给项目带来巨大损失,迫切需要系统化测试来保障项目质量。与传统软件不同,机器学习的自主性、进化性会导致输出结果的不确定性、难解释性,这对测试工程师是一个很大的挑战,机器学习测试的方法也必将与传统软件测试迥异。艾辉及其团队的著作基于融 360 的成功实践,总结了机器学习测试方法,给出了经验证的工程实践方案,提供了丰富的代码和工具示例,非常适合读者入门机器学习测试。
——丁国富,智联联盟智库专家、华为前测试架构师 / 测试部部长
艾辉及其团队将 AI 测试作为主战场,深耕于人工智能领域,在机器学习测试中积极探索,并以严谨的态度将实践经验归纳成书,实属难得,相信本书一定能够为读者带来新的测试思路。
——吴骏龙,阿里巴巴本地生活高级测试经理
自从机器学习技术在许多行业应用以来,测试界就开始探讨如何把机器学习用在测试上,但是一些结论还停留在论文或者小规模应用中。本书无疑是这个领域的开山之作,从基础到大数据,到模型,再到融会贯通,本书包括了机器学习测试的方方面面。本书能给刚接触机器学习测试的读者带来帮助,是从业者进行机器学习测试的实践指南。
——张立华(恒温),测试开发专家、TesterHome 社区联合创始人
由于机器学习自身的复杂性,传统的软件测试方法无法完全适用于机器学习,需要为其单独设计一套质量保障方法。虽然在测试界的技术峰会中有专家做过相关技术的分享,但还没有一本书可以较全面地阐述保障机器学习质量的方法。本书涵盖了机器学习的多种质量保障方法,内容丰富,凝聚了作者多年的机器学习测试实践经验,非常适合对机器学习测试感兴趣的读者阅读。
——孙远,阿里巴巴测试开发专家
随着机器学习的应用,智能化已经是各行各业发展的主流趋势。机器学习在软件产品的研发和测试工程中,同样发挥着重要的作用。本书不仅讲解了机器学习的基本概念,还介绍了机器学习测试的实战技术,是一本充满“干货”的参考书。
——蔡怡峰,腾讯 IEG 品质管理部测试开发负责人
作者基于对测试行业的深刻理解,高屋建瓴地分析了机器学习测试方面的痛点和难点,本书是初学者不可或缺的案头资料,也是中级测试人员在测试领域继续探索的得力助手。
——邹静,百度资深测试工程师
随着软件产品越来越多地应用了大数据、机器学习等技术,传统领域的软件质量保障方法已经无法适应机器学习测试的实践需要,艾辉在这个时候推出机器学习测试的新书,恰逢其时,为测试人员从事机器学习测试工作提供了参考。希望更多的人可以通过阅读本书,理解机器学习,掌握机器学习质量保障技术,并将其应用到各自的测试项目中。
——王冬,360 技术中台质量工程部高级总监
机器学习技术在越来越多的领域中得到了应用,但有关机器学习测试和质量保障方法的书却少之又少,本书的出版正好迎合了读者这方面的学习需求。本书是作者对自己多年大数据和机器学习测试的实践总结。从工程质量到算法质量和模型评测,从测试方法到工具平台的应用,不管是机器学习的初学者还是资深的测试专家,都能从本书中受益。
——张涛,网易传媒测试总监
与 AI 相关的测试在国内也是一个较新的领域,各大公司都开始了相关的探索。艾辉是业内少有的低调且务实的实践者,本书也是其团队在机器学习测试方面的实践总结。书中详尽地讲解了从机器学习测试到模型工程化等内容,具有很强的指导意义。希望对机器学习测试有兴趣的同行都能研读本书,一定会受益匪浅!
——董沐,小米技术经理
本书系统地讲述了机器学习的质量保障方法,从基础知识准备,到大数据测试、特征测试以及模型质量的各种评估测试等,内容丰富。此外,书中还包含大量的测试实践案例,推荐所有从事测试的技术人员阅读。
——郭静,知乎质量团队技术总监
机器学习作为人工智能的关键核心技术,已经在各大企业产品中广泛使用,机器学习的质量也直接影响产品的性能,因此机器学习的质量保障显得尤为重要。本书是融 360 在搜索、推荐、风控等多个应用领域进行机器学习测试的实践总结,所有探索机器学习测试的读者都可以从本书中得到启发。
——徐实,知乎测试经理
在机器学习测试领域,艾辉是早期的探索和实践者。本书内容新颖、案例翔实、通俗易懂,如果你想了解机器学习测试技术,本书是很好的选择。
——熊志男,京东数科高级软件开发工程师、测试窝社区联合创始人
本书不仅介绍了机器学习测试的方法和基于机器学习的模型评测实践,还深入解读了机器学习测试技术的原理和背后的逻辑。感谢作者为测试同行带来了这本具有全新视角的好书。
——薛亚斌,京东数科测试架构师、移动端测试负责人
随着人工智能技术的发展,机器学习产品的测试工作成为软件测试人员关注的重点,要做好相关产品的测试,对机器学习理论和实践技能的掌握必不可少。本书不仅有详细的理论基础介绍,还结合真实业务场景和持续交付的工程实践,全面介绍了机器学习产品的测试,是所有软件测试人员不容错过的好书。
——林冰玉,ThoughtWorks 资深软件质量咨询师
本书深入浅出、系统地介绍了机器学习和大数据的基础知识,以及进行机器学习测试的方法。这是一本很好的机器学习测试入门图书。
——刘冉,ThoughtWorks 资深软件质量咨询师
本书作者通过对工作经验及实践技术的总结,编写了这本机器学习测试的入门教程,帮助读者掌握机器学习测试的技术。本书内容丰富、案例翔实,是一本不容错过的好书。
——陈霁(云层),霁晦科技创始人、TestOps 架构师
艾辉及其团队把他们在机器学习测试的工作实践总结成书,为我们揭开了机器学习测试的神秘面纱。本书内容丰富、实战性强,如果你也对机器学习测试的相关技术感兴趣,就和我一起学习本书吧!
——陈磊,新奥云中台质量总监
随着机器学习在许多领域的广泛应用,相应的测试技术也逐渐成为测试从业人员学习的重点。本书是艾辉及其团队在机器学习测试方面的实践总结,深入浅出地讲解了机器学习测试的
技术,对想入门机器学习测试的读者来说,着实是一本难得的好书。
——李隆(debugtalk),HttpRunner 作者
这几年与人工智能和大数据相关的应用越来越普及,这给测试人员带来了新的课题。人工智能、大数据测试相对于传统测试而言有许多需要克服的难题,这使得测试人员对此束手无策。作为人工智能测试的入门书,本书系统地介绍了机器学习与大数据测试的方法,填补了国内在这个领域的空白。
——陈晓鹏,埃森哲中国卓越测试中心前负责人