本书全面且系统地介绍了机器学习测试技术与质量体系建设,分为5部分,共15章。第一部分(第1~4章)涵盖了机器学习、Python编程、数据分析的基础知识;第二部分(第5~7章)介绍了大数据基础、大数据测试指南及相关工具实践;第三部分(第8~10章)讲解了机器学习测试基础、特征专项测试及模型算法评估测试;第四部分(第11~13章)介绍了模型评估平台实践、机器学习工程技术及机器学习的持续交付流程;第五部分(第14章和第15章)探讨了AI(Artificial Intelligence)在测试领域的实践及AI时代测试工程师的未来。
本书能够帮助读者了解机器学习是如何工作的,了解机器学习的质量保障是如何进行的。工程开发人员和测试工程师通过阅读本书,可以系统化地了解大数据测试、特征测试及模型评估等知识;算法工程师通过阅读本书,可以学习模型评测的方法和拓宽模型工程实践的思路;技术专家和技术管理者通过阅读本书,可以了解机器学习质量保障与工程效能的建设方案。
适读人群 :对于工程开发和测试工程师,通过阅读本书可以体系化地了解大数据测试、特征测试及模型评估等知识; 对于有算法数据背景的工程师,通过阅读本书可以学习和拓宽模型评测的方法手段、模型工程实践的思路; 对于技术专家、技术管理者,通过阅读本书可以收获机器学习质量保障与工程效率的建设思路。 不同于市面上的机器学习书籍,本书是业界首部AI测试著作,填补了机器学习测试领域的空白。
本书由知名技术专家艾辉领衔融360AI测试团队12位一线工程师联手倾心打造,耗时一年多时间。
1)精选15个AI测试要点,从零开始,全面了解机器学习测试。
2)涵盖5个技术主题,大数据、模型算法、模型评测、工程架构、智能化测试。
3)BAT等数十家一线互联网公司的32位知名专家联袂推荐。
本书内容设计深入浅出,学习路线清晰,帮助读者了解机器学习是如何工作的,了解机器学习的质量保障是如何进行的。
艾辉,中国人民大学统计学院硕士,融 360 高 级技术经理。主要负责机器学习产品的质量保障工作,曾在饿了么公司担任高 级技术经理,负责用户产品、新零售产品的质量保障工作。有 8 年多的测试开发工作经验,曾多次受邀在行业技术大会( 如 MTSC、GITC、NCTS、TiD、A2M 等)上做主题分享。对大数据、机器学习测试技术有深刻的理解,并长期专注于质量保障与工程效能研究。
陈高飞,东北大学计算机硕士,融 360 测试开发工程师。主要从事机器学习方面的测试开发工作。擅长白盒测试、大数据测试和模型测试,在工具平台开发方面有丰富的实践经验。
陈花,北京邮电大学信息通信工程学院硕士,融 360 高 级测试开发工程师。主要从事服务器端测试开发工作,主导过多个大型项目的测试。擅长白盒测试、安全测试、自动化测试及工具开发。
方娟红,东北大学计算机硕士,融 360 测试开发工程师。主要从事服务器端测试开发工作。在企业级应用的测试和开发方面有着丰富的实践经验。
郭学敏,西安电子科技大学电子工程学院硕士,融 360 测试开发工程师。主要负责机器学习方面的测试开发工作,主导过多个大型项目的测试。擅长大数据测试、特征分析与模型评估,且在特征工程测试方面有着丰富的实践经验。
郝嵘,北京信息科技大学自动化学院硕士,融 360 测试开发工程师。从事 Python 开发、机器学习测试、大数据测试工作多年,在大数据的质量保障及测试工具开发方面有着丰富的实践经验。
雷天鸣,哈尔滨理工大学计算机科学与技术系硕士,融 360 测试开发工程师。主要从事机器学习方向的测试开发工作。擅长大数据测试、特征测试及模型算法评测等,且对金融风控业务有深刻的理解。
李曼曼,融 360 高级测试开发工程师。有近 10 年测试领域从业经验, 擅长白盒测试、性能测试、自动化测试、持续集成及工程效能。在 AI 测试方面有一定的探索实践。
李雪,西安电子科技大学通信工程硕士,融 360 测试开发工程师。主要从事平台及机器学习方面的测试开发工作。擅长自动化测试、性能测试及安全测试,且对特征测试分析有着丰富的实践经验。
孙金娟,山西财经大学计算机科学与技术专业学士,融 360 测试开发工程师。有近 8 年 Java 开发、测试开发工作经验,擅长大数据测试及工具平台开发。
张海霞,中国人民大学统计学院硕士,融 360 高级测试开发工程师。有近 7 年测试领域从业经验,擅长白盒测试、性能测试及自动化测试。在测试平台开发方面有着丰富的实践经验,且对数据挖掘技术有扎实的实践积累。
张咪,北京交通大学通信学院硕士,融 360 高级测试开发工程师。主要负责用户产品的质量保障工作。曾负责基础架构、运维自动化等方面的测试、开发工作。在自动化测试、服务稳定性、专项测试、工程效能等方面有着丰富的实践经验,且对机器学习工程技术有深刻的理解。
张朋周,中国地质大学计算机硕士,融 360 高级测试开发工程师。曾在RAISECOM 和百度从事测试开发工作,有近 8 年的测试工作经验。目前主要负责机器学习方面的测试开发工作,主导了多个工具平台的开发,在模型评估平台方面有着丰富的实践经验。
目 录
第 一部分 基础知识
第 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