本书介绍了克服日常面临的各种挑战的实践知识,以及各种数据科学解决方案,主要包括数据科学概论,机器学习模型测试,人工智能基础,理想的数据科学团队, 数据科学团队招聘面试,组建数据科学团队,创新管理,管理数据科学项目,数据科学项目的常见陷阱,创造产品与提升可重用性,实施 ModelOps,建立技术栈和结论。
本书的目标读者是希望有效地引入数据科学工作流程以提升组织效率、改进业务的数据科学家、数据分析人员和项目主管。
了解一些数据科学的基本概念有助于本书的阅读。
本书以数据科学项目贯穿,对数据科学工作者有很强的参考价值。
前言数据科学和机器学习能够促进组织转型,创造新机会。任何数据科学项目都是研究、软件工程和业务经验的独特组合。从原型开发到实际应用,需要扎扎实实的管理指导。以往的方法往往因为强调不同的条件和要求而屡屡失败。本书介绍经过实证的数据科学项目管理方法,用最佳实践和实用提示帮助用户走上正轨。借助这本书,你将了解数据科学和人工智能的实际应用,能够将它们融入你的解决方案中。你将穿过数据科学项目的生命周期,探究每一步可能遇到的常见陷阱,学会如何规避。任何数据科学项目都需要结构合理的实力团队,本书将为你广揽英才、打造数据科学的实力团队建言献策。本书还将告诉你如何利用 DevOps 有效地管理和改进数据科学项目。读完这本书,读者将拥有应对日常面临的各种挑战所需的实践知识,掌握各种数据科学解决方案。本书的目标读者本书的目标读者是希望有效地引入数据科学工作流程以提升组织效率、改进业务的数据科学家、数据分析人员和项目主管。了解一些数据科学的基本概念有助于本书的阅读。本书涵盖的内容第 1 章,数据科学概论。 本章讨论人工智能、数据科学、机器学习、深度学习以及因果推理的实际应用。第 2 章,机器学习模型测试。 本章解释如何通过模型测试区分好与不好的解决方案。本章还介绍不同类型的度量指标,借助数学函数评价预测质量。第 3 章,人工智能基础。 本章探究数据科学的内部工作原理,阐述机器学习和深度学习背后的一些主要概念。本章还给出数据科学的简要介绍。第 4 章,理想的数据科学团队。 本章解释如何组建和维持能够交付复杂多功能项目的数据科学团队。本章还阐述软件工程以及获得软件开发团队帮助的重要性。第 5 章,数据科学团队招聘面试。 本章介绍如何完成一次有效的数据科学团队面试。本章还阐述面试之前设定目标的重要性。第 6 章,组建数据科学团队。 本章为组建数据科学团队提出工作指南。你将了解组建成功团队的三个关键因素和领导者在数据科学团队中的角色。第 7 章,创新管理。 本章讨论创新以及如何管理创新。你将了解如何识别具有实际价值的项目和问题。第 8 章,管理数据科学项目。 本章讨论为团队分解和规划任务的数据科学项目全生命周期,还探讨如何区分数据分析类项目和软件工程项目。第 9 章,数据科学项目的常见陷阱。 本章深入探讨数据科学项目的常见陷阱,剖析增加项目相关风险的错误并按数据科学项目生命周期逐个予以消除。第 10 章,创造产品与提升可重用性。 本章介绍如何培育数据科学产品和通过采用可重用技术提升内部团队的绩效。本章还介绍改进项目可重用性的策略,讨论根据经验开发自主产品的条件。第 11 章,实施 ModelOps。 本章讨论 ModelOps 与 DevOps 的关系以及 ModelOps 运行的主要步骤。本章还介绍管理代码、数据版本化以及团队成员之间共享环境等策略。第 12 章,建立技术栈。 本章介绍如何建立和管理数据科学的技术栈。本章还讨论核心技术栈与项目专用技术栈的区别,研究比较不同技术的分析方法。第 13 章,结论。 本章提供帮助你增加数据科学领域的知识的书籍清单。阅读本书之前所要做的准备本书希望对非技术专业人员是自成体系且通俗易懂的,并不要求事先掌握数据科学、机器学习和编程知识。对统计和数学优化有基本的了解是有益的,但也不是必需的。在软件开发、项目管理以及 DevOps 的主要概念方面有专业知识将对读者有所帮助,因为本书描述的方法与这些方法类似。数据科学项目管理方法还远远不够完备。事实上,也永远不会完备。针对某种情况下每个业务的所有问题,绝对没有什么放之四海而皆准的解决办法。本书并不是要确立具体的复杂的管理流程,而是给出针对性的策略和实用性的建议。希望本书能成为你畅游数据科学世界的指导书。下载彩色配图本书用到的彩色图表和屏幕截图已经汇集成一个 PDF 文件。 读者可以从这里下载: https://static.packt-cdn.com/downloads/9781838826321_ColorImages.pdf 下载。字体约定本书采用以下若干文本格式约定。CodeInText:表示代码文本、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入以及推特用户名( Twitter handle)。例如, 他们也已经使用 ? gitlab 标记作为 pyscaffold 命令以便他们需要的时候就有可用的 GitLab CI/CD 模板。代码块设置如下:├── AUTHORS.rst <- List of developers and maintainers.├── CHANGELOG.rst <- Changelog to keep track of new features and fixes.├── LICENSE.txt <- License as chosen on the command-line.├── README.md <- The top-level README for developers.├── configs <- Directory for configurations of model & application.├── data命令行的输入输出标记为粗体格式:pip install -e .Bold(粗体):表示新概念、关键词或者出现在屏幕上的词。菜单/对话框里的词在文本中就如此表示。例如, Docker 镜像的运行实例被称作 Docker 容器( Container)。表示警告或重要说明。表示提示或技巧。联系方式欢迎读者给出反馈。一般反馈: 如果对本书的任何方面有疑问,请在邮件主题中注明书名,发邮件至 customercare@packtpub.com。勘误: 虽然我们已尽力确保书中内容的准确性,但错误仍难以避免。如果你发现书中有错误,烦请告知。请访问 www.packtpub.com/support/errata,选定本书,点击勘误提交表格链接,填入具体信息。盗版: 如果你在互联网上发现我们的图书任何形式的非法拷贝,烦请告知网址或网站名。请通过 copyright@packt.com 联系我们,并提供指向盗版材料的链接。如果你也想成为作者: 如果你有精通的主题而且愿意写书或参与出书,请访问 authors.packtp
Kirill Dubovikov担任Cinimex DataLab的CTO。他在为俄罗斯顶级银行设计和开发复杂软件解决方案方面拥有10多年的经验。现在,他领导公司的数据科学部门。他的团队为全球企业提供实用的机器学习应用程序。他们的解决方案涵盖了广泛的主题,例如销售预测和仓库计划,用于IT支持中心的自然语言处理(NLP),算法营销以及预测性IT运营。
目录
前言
第一部分 什 么 是 数 据 科 学?
第 1 章 数据科学概论· 2
1.1 人工智能定义 3
1.1.1 数据科学的定义 3
1.1.2 数据科学的影响 4
1.1.3 数据科学的局限 4
1.2 机器学习导论 5
1.2.1 机器学习模型提供的决策和洞见· 5
1.2.2 机器学习模型需要的数据 6
1.2.3 机器学习的起源 7
1.2.4 机器学习剖析 7
1.2.5 机器学习可解决的任务类型 8
1.3 深度学习导论 · 11
1.3.1 自然语言理解应用· 12
1.3.2 探究计算机视觉 13
1.4 深度学习用例 · 16
1.5 因果推理导论 · 16
1.6 本章小结 · 19
第 2 章 机器学习模型测试 20
2.1 离线模型测试 · 20
2.1.1 模型误差 20
2.1.2 误差分解 21
2.1.3 技术度量指标 26
2.1.4 业务度量指标 32
2.2 在线模型测试 · 322.2.1 在线测试的意义 · 32
2.2.2 在线数据测试· 36
2.3 本章小结 36
第 3 章 人工智能基础 37
3.1 理解数学优化 37
3.2 理解统计学 41
3.2.1 频率学派的概率 · 42
3.2.2 条件概率 42
3.2.3 关于概率的贝叶斯观点 · 44
3.2.4 分布 44
3.2.5 利用数据样本计算统计量 · 45
3.2.6 统计建模 46
3.3 机器如何学习 48
3.4 探究机器学习 52
3.4.1 机器学习简介· 52
3.4.2 线性模型 53
3.4.3 分类与回归树· 53
3.4.4 集成模型 54
3.4.5 聚类模型 56
3.5 探究深度学习 58
3.5.1 建立神经网络· 61
3.5.2 计算机视觉应用 · 62
3.5.3 自然语言处理应用 · 64
3.6 本章小结 69
第二部分 项目团队的组建与维持
第 4 章 理想的数据科学团队 71
4.1 数据科学团队的角色 71
4.2 探究数据科学团队的角色及其职责 74
4.2.1 案例 1:应用机器学习防止银行诈骗 74
4.2.2 案例 2:机器学习在零售公司的应用 75
4.2.3 数据科学家的关键技能 · 774.2.4 数据工程师的关键技能 · 78
4.2.5 数据科学项目经理的关键技能 · 79
4.2.6 开发团队的支持 80
4.3 本章小结 · 80
第 5 章 数据科学团队招聘面试 81
5.1 技术招聘面试的通病 · 81
5.1.1 发现不需要的候选者· 82
5.1.2 明确面试目的 84
5.2 将价值和伦理引入面试 · 85
5.3 面试设计 · 86
5.3.1 设计测试作业 87
5.3.2 不同数据科学角色的面试 · 90
5.4 本章小结 · 92
第 6 章 组建数据科学团队 93
6.1 铸就团队灵魂( Zen,禅) 93
6.2 领导力和人员管理 · 96
6.2.1 以身作则 96
6.2.2 发挥情境领导力( situational leadership) 97
6.2.3 明确任务 99
6.2.4 感情移入( empathy,共情) 100
6.3 培养成长型思维 101
6.3.1 团队整体的成长 101
6.3.2 面向个体成长的持续学习 102
6.3.3 提供更多的学习机会 103
6.3.4 利用绩效评价帮助员工成长 104
6.4 案例:创建数据科学部门 106
6.5 本章小结 108
第三部分 数据科学项目的管理
第 7 章 创新管理· 110
7.1 理解创新 110
7.2 大型组织为何屡屡失败? 1117.2.1 市场的游戏规则 111
7.2.2 开拓新市场 112
7.3 探究创新管理 112
7.3.1 案例: MedVision 的创新周期· 114
7.3.2 集成创新 · 116
7.4 销售、营销、团队领导方式以及技术 117
7.5 大公司的创新管理 119
7.5.1 大公司的创新管理简介 119
7.5.2 案例:零售业务的数据科学项目 120
7.6 初创公司的创新管理 121
7.7 发现项目想法 122
7.7.1 从业务发现想法 122
7.7.2 从数据发现想法 123
7.8 本章小结 127
第 8 章 管理数据科学项目 128
8.1 理解数据科学项目的失败 128
8.1.1 数据科学项目失败的常见原因 128
8.1.2 数据科学管理方法 129
8.2 探究数据科学项目全生命周期 130
8.2.1 业务理解 · 130
8.2.2 数据理解 · 130
8.2.3 数据准备 · 131
8.2.4 建模 · 132
8.2.5 评价 · 133
8.2.6 部署 · 133
8.3 项目管理方法论的选择 134
8.3.1 瀑布式管理 134
8.3.2 敏捷 · 135
8.3.3 Kanban · 135
8.3.4 Scrum 137
8.4 选择适合项目的方法论 139
8.4.1 开展颠覆性创新 139
8.4.2 准备测试过的解决方案 1398.4.3 为客户量身定制项目 139
8.5 估测数据科学项目 140
8.5.1 数据科学项目估测简介 140
8.5.2 学会估测时间和成本 141
8.6 明确估测过程的目标 144
8.7 本章小结 144
第 9 章 数据科学项目的常见陷阱· 145
9.1 规避数据科学项目的常见风险 145
9.2 推进研究项目 146
9.3 实施原型和最简可行产品项目 147
9.3.1 原型和最简可行产品开发简介 147
9.3.2 案例:咨询公司的最简可行产品· 148
9.4 应对实用型数据科学系统的风险 149
9.4.1 实用型数据科学系统风险及其解决方法 · 149
9.4.2 案例:将销售预测系统投入应用· 151
9.5 本章小结 152
第 10 章 创造产品与提升可重用性 153
10.1 产品思维 153
10.2 确定项目所处阶段 154
10.2.1 项目类型和所处阶段的划分 154
10.2.2 案例:服务平台调度系统的开发 155
10.3 提高可重用性 156
10.4 寻找和开发产品 157
10.4.1 寻找和开发产品简介 · 157
10.4.2 隐私问题· 158
10.5 本章小结 158
第四部分 开发基础环境的构建
第 11 章 实施 ModelOps· 160
11.1 认识 ModelOps 160
11.2 了解 DevOps 161
11.2.1 数据科学项目基础系统的特殊需求 16111.2.2 数据科学交付流程· 162
11.3 管理代码版本和质量 · 163
11.4 存储数据和代码 · 164
11.4.1 数据跟踪与版本化· 165
11.4.2 实际的数据存储· 165
11.5 管理环境 · 167
11.6 追踪实验 · 168
11.7 自动测试的重要性 · 170
11.8 代码打包 · 171
11.9 模型的持续训练 · 172
11.10 案例:开发预测维护系统的 ModelOps · 173
11.11 项目的动力源 177
11.12 本章小结 179
第 12 章 建立技术栈 180
12.1 定义技术栈的要素 · 180
12.2 核心技术与项目专用技术的选择 · 183
12.3 比较工具与产品 · 184
12.3.1 如何比较不同的工具与产品 · 184
12.3.2 案例:物流公司的需求预测 · 185
12.4 本章小结 · 187
第 13 章 结论 188
13.1 增进知识 · 189
13.2 本章小结