书籍详情
数据科学面试通关

作者:[美]莱昂德拉·R.冈萨雷斯 等著,刘璋 译
出版社:清华大学出版社
出版时间:2025-04-01
ISBN:9787302684534
定价:¥119.00
购买这本书可以去
内容简介
《数据科学面试通关》详细阐述了与数据科学面试相关的基本解决方案,主要包括探索现代数据科学领域、在数据科学领域寻找工作、 Python编程、数据可视化与数据叙述、使用 SQL查询数据库、 Linux中的 Shell和 Bash脚本编写、使用 Git进行版本控制、用概率和统计挖掘数据、理解特征工程和为建模准备数据、精通机器学习概念、用深度学习构建网络、用 MLOps实现机器学习解决方案、掌握面试环节、协商薪酬等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
作者简介
莱昂德拉·R·冈萨雷斯是微软的数据科学家,也是科技初创公司 CulTRUE 的首席数据官,拥有在科技、娱乐和广告领域 10 年的经验。在她的学术生涯中,她完成了与谷歌、亚马逊、NBC 和 AT&T 的教育合作。
目录
第 1 篇 进入数据科学领域
第1章 探索现代数据科学领域 3
1.1 数据科学是什么 3
1.2 探索数据科学过程 5
1.2.1 数据收集 5
1.2.2 数据探索 5
1.2.3 数据建模 6
1.2.4 模型评估 6
1.2.5 模型部署和监控 6
1.3 分析数据科学的不同类型 6
1.3.1 数据工程师 8
1.3.2 仪表板和可视化专家 8
1.3.3 机器学习专家 9
1.3.4 领域专家 10
1.4 审视数据科学的职业路径 10
1.4.1 传统型数据科学家 11
1.4.2 领域专家型数据科学家 11
1.4.3 非传统路径数据科学家 12
1.5 解决经验瓶颈问题 13
1.5.1 学术经验 14
1.5.2 工作经验 15
1.6 理解预期的技能和能力 16
1.6.1 硬技能(技术技能) 17
1.6.2 软技能(沟通技能) 19
1.7 探索数据科学的演变 20
1.7.1 新模型 20
1.7.2 新环境 20
1.7.3 新计算 21
1.7.4 新应用 21
1.8 本章小结 22
1.9 参考文献 22
第2章 在数据科学领域寻找工作 23
2.1 寻找第一份数据科学工作 23
2.1.1 准备前行 24
2.1.2 寻找招聘板 25
2.1.3 构建出色的作品集 29
2.1.4 申请工作 31
2.2 制作金牌简历 33
2.2.1 完美简历的神话 34
2.2.2 理解自动化简历筛选 34
2.2.3 打造有效的简历 35
2.2.4 格式和组织 36
2.2.5 使用正确的术语 37
2.3 准备获得面试机会 39
2.3.1 摩尔定律 39
2.3.2 研究、研究、再研究 40
2.3.3 品牌塑造 42
2.4 本章小结 42
2.5 参考文献 43
第 2 篇 操控和管理数据
第3章 Python编程 47
3.1 变量、数据类型和数据结构 47
3.2 Python 中的索引 52
3.3 字符串操作 52
3.3.1 初始化字符串 53
3.3.2 字符串索引 53
3.4 使用 Python 控制语句和列表推导 57
3.4.1 条件语句 57
3.4.2 循环语句 58
3.4.3 列表推导 59
3.5 使用用户定义的函数 61
3.5.1 用户定义的函数的语法 61
3.5.2 使用用户定义的函数进行操作 62
3.5.3 熟悉 lambda 函数 63
3.5.4 创建优秀的函数 65
3.6 在 Python 中处理文件 67
3.7 使用 pandas 整理数据 68
3.7.1 处理缺失数据 69
3.7.2 选择数据 70
3.7.3 排序数据 74
3.7.4 合并数据 75
3.7.5 使用 groupby()进行聚合 76
3.8 本章小结 81
3.9 参考文献 82
第4章 数据可视化与数据叙述 83
4.1 理解数据可视化 83
4.1.1 条形图 84
4.1.2 折线图 85
4.1.3 散点图 87
4.1.4 直方图 87
4.1.5 密度图 88
4.1.6 分位数-分位数图(Q-Q 图) 89
4.1.7 箱线图 90
4.1.8 饼图 91
4.2 调查行业工具 93
4.2.1 Power BI 93
4.2.2 Tableau 93
4.2.3 Shiny 93
4.2.4 ggplot2(R) 93
4.2.5 Matplotlib(Python) 94
4.2.6 Seaborn(Python) 94
4.3 开发仪表板、报告和关键绩效指标 95
4.4 开发图表和图形 97
4.4.1 条形图—Matplotlib 97
4.4.2 条形图—Seaborn 99
4.4.3 散点图—Matplotlib 100
4.4.4 散点图—Seaborn 102
4.4.5 直方图—Matplotlib 103
4.4.6 直方图—Seaborn 104
4.5 应用基于情景的叙事 106
4.6 本章小结 109
第5章 使用SQL查询数据库 110
5.1 介绍关系数据库 110
5.2 掌握 SQL 基础知识 112
5.2.1 SELECT 语句 113
5.2.2 WHERE 子句 113
5.2.3 ORDER BY 子句 114
5.3 使用 GROUP BY 和 HAVING 聚合数据 116
5.3.1 GROUP BY 子句 116
5.3.2 HAVING 子句 118
5.4 使用 CASE WHEN 创建字段 119
5.5 分析子查询和 CTE 120
5.5.1 SELECT 子句中的子查询 121
5.5.2 FROM 子句中的子查询 122
5.5.3 WHERE 子句中的子查询 123
5.5.4 HAVING 子句中的子查询 125
5.5.5 区分公用表表达式(CTE)和子查询 125
5.6 使用连接合并表格 128
5.6.1 内连接 128
5.6.2 左连接和右连接 131
5.6.3 全外连接 133
5.6.4 多表连接 134
5.7 计算窗口函数 135
5.7.1 OVER、ORDER BY、PARTITION 和 SET 135
5.7.2 LAG 和 LEAD 138
5.7.3 ROW_NUMBER 140
5.7.4 RANK 和 DENSE_RANK 140
5.7.5 使用日期函数 142
5.8 处理复杂查询 143
5.9 本章小结 147
第6章 Linux中的Shell和Bash脚本编写 148
6.1 操作系统简介 148
6.2 导航系统目录 149
6.2.1 介绍基本命令行提示符 150
6.2.2 理解目录类型 151
6.3 文件和目录操作 152
6.4 使用 Bash 进行脚本编写 155
6.5 介绍控制语句 157
6.6 创建函数 160
6.7 数据处理和管道 162
6.8 使用 cron 164
6.9 本章小结 165
第7章 使用Git进行版本控制 167
7.1 介绍仓库 167
7.2 创建仓库 168
7.2.1 克隆现有的远程仓库 169
7.2.2 从头开始创建本地仓库 169
7.2.3 将本地仓库和远程仓库关联 170
7.3 详解数据科学家的 Git 工作流程 172
7.4 在数据科学中使用 Git 标签 174
7.4.1 理解 Git 标签 175
7.4.2 作为数据科学家使用标签 175
7.5 理解常见操作 175
7.6 本章小结 178
第 3 篇 探索人工智能
第8章 用概率和统计挖掘数据 181
8.1 用描述性统计描述数据 181
8.1.1 测量中心趋势 181
8.1.2 测量变异性 183
8.2 介绍总体和样本 184
8.2.1 定义总体和样本 185
8.2.2 代表性样本 185
8.2.3 减少抽样误差 186
8.3 理解中心极限定理 188
8.3.1 中心极限定理 188
8.3.2 证明正态性假设 188
8.4 用抽样分布塑造数据 191
8.4.1 概率分布 191
8.4.2 均匀分布 192
8.4.3 正态分布和学生 t 分布 192
8.4.4 二项分布 193
8.4.5 泊松分布 194
8.4.6 指数分布 194
8.4.7 几何分布 195
8.4.8 威布尔分布 196
8.5 假设检验 198
8.5.1 理解单样本 t 检验 198
8.5.2 理解双样本 t 检验 199
8.5.3 理解配对样本 t 检验 199
8.5.4 理解方差分析和多元方差分析 200
8.5.5 卡方检验 201
8.5.6 A/B 测试 201
8.6 理解Ⅰ 型错误和Ⅱ型错误 203
8.6.1 Ⅰ 型错误(假阳性) 204
8.6.2 Ⅱ型错误(假阴性) 205
8.6.3 寻求平衡 205
8.7 本章小结 206
8.8 参考文献 207
第9章 理解特征工程和为建模准备数据 208
9.1 理解特征工程 208
9.1.1 避免数据泄漏 209
9.1.2 处理缺失数据 209
9.1.3 数据缩放 212
9.2 应用数据转换 213
9.2.1 引入数据转换 213
9.2.2 对数转换 215
9.2.3 幂次转换 216
9.2.4 Box-Cox 转换 217
9.2.5 指数转换 219
9.3 处理分类数据和其他特征 220
9.3.1 独热编码 220
9.3.2 标签编码 221
9.3.3 目标编码 223
9.3.4 计算字段 224
9.4 执行特征选择 226
9.4.1 特征选择的类型 227
9.4.2 递归特征消除 227
9.4.3 L1 正则化 228
9.4.4 基于树的特征选择 228
9.4.5 方差膨胀因子 229
9.5 处理不平衡数据 230
9.5.1 理解不平衡数据 230
9.5.2 处理不平衡数据 231
9.6 降低维度 231
9.6.1 主成分分析 232
9.6.2 奇异值分解 232
9.6.3 t-SNE 233
9.6.4 自编码器 233
9.7 本章小结 234
第10章 精通机器学习概念 236
10.1 介绍机器学习工作流程 236
10.1.1 问题陈述 238
10.1.2 模型选择 238
10.1.3 模型调整 238
10.1.4 模型预测 238
10.2 监督机器学习 239
10.2.1 回归与分类 239
10.2.2 线性回归—回归 240
10.2.3 逻辑回归 244
10.2.4 k-最近邻(k-NN) 246
10.2.5 随机森林 248
10.2.6 极端梯度提升(XGBoost) 252
10.3 无监督机器学习 254
10.3.1 K-means 255
10.3.2 具有噪声的基于密度的聚类应用(DBSCAN) 257
10.3.3 其他聚类算法 260
10.3.4 评估聚类 261
10.4 总结其他值得注意的机器学习模型 262
10.5 理解偏差-方差权衡 263
10.6 超参数调整 265
10.6.1 网格搜索 265
10.6.2 随机搜索 265
10.6.3 贝叶斯优化 266
10.7 本章小结 267
第11章 用深度学习构建网络 268
11.1 介绍神经网络和深度学习 268
11.2 讨论权重和偏差 271
11.2.1 权重介绍 271
11.2.2 偏差介绍 271
11.3 使用激活函数激活神经元 273
11.3.1 常见激活函数 273
11.3.2 选择合适的激活函数 275
11.4 剖析反向传播 276
11.4.1 梯度下降 276
11.4.2 什么是反向传播 276
11.4.3 损失函数 277
11.4.4 梯度下降步骤 278
11.4.5 梯度消失问题 278
11.5 使用优化器 281
11.5.1 优化算法 281
11.5.2 网络调整 282
11.6 理解嵌入 284
11.6.1 词嵌入 284
11.6.2 训练嵌入 284
11.7 列出常见的网络架构 285
11.7.1 常见网络 285
11.7.2 工具和包 287
11.8 介绍 GenAI 和 LLM 288
11.8.1 揭示语言模型 288
11.8.2 Transformer 和自注意力 289
11.8.3 迁移学习 290
11.8.4 GPT 应用 291
11.9 本章小结 293
第12章 用MLOps实现机器学习解决方案 294
12.1 引入 MLOps 294
12.2 理解数据采集 297
12.3 学习数据存储的基础知识 298
12.4 审查模型开发 299
12.5 模型部署的打包 300
12.5.1 确定要求 300
12.5.2 虚拟环境 301
12.5.3 环境管理的工具和方法 301
12.6 使用容器部署模型 302
12.7 验证和监控模型 304
12.7.1 验证模型部署 304
12.7.2 模型监控 305
12.7.3 思考治理 306
12.8 使用 Azure ML 的 MLOps 307
12.9 本章小结 307
第 4 篇 获得工作
第13章 掌握面试环节 311
13.1 掌握与招聘人员的早期互动 311
13.2 掌握不同的面试阶段 314
13.2.1 招聘经理阶段 314
13.2.2 技术面试 315
13.2.3 编码问题 316
13.2.4 小组面试阶段 319
13.3 本章小结 319
13.4 参考文献 320
第14章 协商薪酬 321
14.1 理解薪酬格局 321
14.2 谈判报价 322
14.2.1 谈判考虑因素 322
14.2.2 回应报价 323
14.2.3 最大可谈判薪酬和情境价值 324
14.3 本章小结 329
14.4 最后的话 330
第1章 探索现代数据科学领域 3
1.1 数据科学是什么 3
1.2 探索数据科学过程 5
1.2.1 数据收集 5
1.2.2 数据探索 5
1.2.3 数据建模 6
1.2.4 模型评估 6
1.2.5 模型部署和监控 6
1.3 分析数据科学的不同类型 6
1.3.1 数据工程师 8
1.3.2 仪表板和可视化专家 8
1.3.3 机器学习专家 9
1.3.4 领域专家 10
1.4 审视数据科学的职业路径 10
1.4.1 传统型数据科学家 11
1.4.2 领域专家型数据科学家 11
1.4.3 非传统路径数据科学家 12
1.5 解决经验瓶颈问题 13
1.5.1 学术经验 14
1.5.2 工作经验 15
1.6 理解预期的技能和能力 16
1.6.1 硬技能(技术技能) 17
1.6.2 软技能(沟通技能) 19
1.7 探索数据科学的演变 20
1.7.1 新模型 20
1.7.2 新环境 20
1.7.3 新计算 21
1.7.4 新应用 21
1.8 本章小结 22
1.9 参考文献 22
第2章 在数据科学领域寻找工作 23
2.1 寻找第一份数据科学工作 23
2.1.1 准备前行 24
2.1.2 寻找招聘板 25
2.1.3 构建出色的作品集 29
2.1.4 申请工作 31
2.2 制作金牌简历 33
2.2.1 完美简历的神话 34
2.2.2 理解自动化简历筛选 34
2.2.3 打造有效的简历 35
2.2.4 格式和组织 36
2.2.5 使用正确的术语 37
2.3 准备获得面试机会 39
2.3.1 摩尔定律 39
2.3.2 研究、研究、再研究 40
2.3.3 品牌塑造 42
2.4 本章小结 42
2.5 参考文献 43
第 2 篇 操控和管理数据
第3章 Python编程 47
3.1 变量、数据类型和数据结构 47
3.2 Python 中的索引 52
3.3 字符串操作 52
3.3.1 初始化字符串 53
3.3.2 字符串索引 53
3.4 使用 Python 控制语句和列表推导 57
3.4.1 条件语句 57
3.4.2 循环语句 58
3.4.3 列表推导 59
3.5 使用用户定义的函数 61
3.5.1 用户定义的函数的语法 61
3.5.2 使用用户定义的函数进行操作 62
3.5.3 熟悉 lambda 函数 63
3.5.4 创建优秀的函数 65
3.6 在 Python 中处理文件 67
3.7 使用 pandas 整理数据 68
3.7.1 处理缺失数据 69
3.7.2 选择数据 70
3.7.3 排序数据 74
3.7.4 合并数据 75
3.7.5 使用 groupby()进行聚合 76
3.8 本章小结 81
3.9 参考文献 82
第4章 数据可视化与数据叙述 83
4.1 理解数据可视化 83
4.1.1 条形图 84
4.1.2 折线图 85
4.1.3 散点图 87
4.1.4 直方图 87
4.1.5 密度图 88
4.1.6 分位数-分位数图(Q-Q 图) 89
4.1.7 箱线图 90
4.1.8 饼图 91
4.2 调查行业工具 93
4.2.1 Power BI 93
4.2.2 Tableau 93
4.2.3 Shiny 93
4.2.4 ggplot2(R) 93
4.2.5 Matplotlib(Python) 94
4.2.6 Seaborn(Python) 94
4.3 开发仪表板、报告和关键绩效指标 95
4.4 开发图表和图形 97
4.4.1 条形图—Matplotlib 97
4.4.2 条形图—Seaborn 99
4.4.3 散点图—Matplotlib 100
4.4.4 散点图—Seaborn 102
4.4.5 直方图—Matplotlib 103
4.4.6 直方图—Seaborn 104
4.5 应用基于情景的叙事 106
4.6 本章小结 109
第5章 使用SQL查询数据库 110
5.1 介绍关系数据库 110
5.2 掌握 SQL 基础知识 112
5.2.1 SELECT 语句 113
5.2.2 WHERE 子句 113
5.2.3 ORDER BY 子句 114
5.3 使用 GROUP BY 和 HAVING 聚合数据 116
5.3.1 GROUP BY 子句 116
5.3.2 HAVING 子句 118
5.4 使用 CASE WHEN 创建字段 119
5.5 分析子查询和 CTE 120
5.5.1 SELECT 子句中的子查询 121
5.5.2 FROM 子句中的子查询 122
5.5.3 WHERE 子句中的子查询 123
5.5.4 HAVING 子句中的子查询 125
5.5.5 区分公用表表达式(CTE)和子查询 125
5.6 使用连接合并表格 128
5.6.1 内连接 128
5.6.2 左连接和右连接 131
5.6.3 全外连接 133
5.6.4 多表连接 134
5.7 计算窗口函数 135
5.7.1 OVER、ORDER BY、PARTITION 和 SET 135
5.7.2 LAG 和 LEAD 138
5.7.3 ROW_NUMBER 140
5.7.4 RANK 和 DENSE_RANK 140
5.7.5 使用日期函数 142
5.8 处理复杂查询 143
5.9 本章小结 147
第6章 Linux中的Shell和Bash脚本编写 148
6.1 操作系统简介 148
6.2 导航系统目录 149
6.2.1 介绍基本命令行提示符 150
6.2.2 理解目录类型 151
6.3 文件和目录操作 152
6.4 使用 Bash 进行脚本编写 155
6.5 介绍控制语句 157
6.6 创建函数 160
6.7 数据处理和管道 162
6.8 使用 cron 164
6.9 本章小结 165
第7章 使用Git进行版本控制 167
7.1 介绍仓库 167
7.2 创建仓库 168
7.2.1 克隆现有的远程仓库 169
7.2.2 从头开始创建本地仓库 169
7.2.3 将本地仓库和远程仓库关联 170
7.3 详解数据科学家的 Git 工作流程 172
7.4 在数据科学中使用 Git 标签 174
7.4.1 理解 Git 标签 175
7.4.2 作为数据科学家使用标签 175
7.5 理解常见操作 175
7.6 本章小结 178
第 3 篇 探索人工智能
第8章 用概率和统计挖掘数据 181
8.1 用描述性统计描述数据 181
8.1.1 测量中心趋势 181
8.1.2 测量变异性 183
8.2 介绍总体和样本 184
8.2.1 定义总体和样本 185
8.2.2 代表性样本 185
8.2.3 减少抽样误差 186
8.3 理解中心极限定理 188
8.3.1 中心极限定理 188
8.3.2 证明正态性假设 188
8.4 用抽样分布塑造数据 191
8.4.1 概率分布 191
8.4.2 均匀分布 192
8.4.3 正态分布和学生 t 分布 192
8.4.4 二项分布 193
8.4.5 泊松分布 194
8.4.6 指数分布 194
8.4.7 几何分布 195
8.4.8 威布尔分布 196
8.5 假设检验 198
8.5.1 理解单样本 t 检验 198
8.5.2 理解双样本 t 检验 199
8.5.3 理解配对样本 t 检验 199
8.5.4 理解方差分析和多元方差分析 200
8.5.5 卡方检验 201
8.5.6 A/B 测试 201
8.6 理解Ⅰ 型错误和Ⅱ型错误 203
8.6.1 Ⅰ 型错误(假阳性) 204
8.6.2 Ⅱ型错误(假阴性) 205
8.6.3 寻求平衡 205
8.7 本章小结 206
8.8 参考文献 207
第9章 理解特征工程和为建模准备数据 208
9.1 理解特征工程 208
9.1.1 避免数据泄漏 209
9.1.2 处理缺失数据 209
9.1.3 数据缩放 212
9.2 应用数据转换 213
9.2.1 引入数据转换 213
9.2.2 对数转换 215
9.2.3 幂次转换 216
9.2.4 Box-Cox 转换 217
9.2.5 指数转换 219
9.3 处理分类数据和其他特征 220
9.3.1 独热编码 220
9.3.2 标签编码 221
9.3.3 目标编码 223
9.3.4 计算字段 224
9.4 执行特征选择 226
9.4.1 特征选择的类型 227
9.4.2 递归特征消除 227
9.4.3 L1 正则化 228
9.4.4 基于树的特征选择 228
9.4.5 方差膨胀因子 229
9.5 处理不平衡数据 230
9.5.1 理解不平衡数据 230
9.5.2 处理不平衡数据 231
9.6 降低维度 231
9.6.1 主成分分析 232
9.6.2 奇异值分解 232
9.6.3 t-SNE 233
9.6.4 自编码器 233
9.7 本章小结 234
第10章 精通机器学习概念 236
10.1 介绍机器学习工作流程 236
10.1.1 问题陈述 238
10.1.2 模型选择 238
10.1.3 模型调整 238
10.1.4 模型预测 238
10.2 监督机器学习 239
10.2.1 回归与分类 239
10.2.2 线性回归—回归 240
10.2.3 逻辑回归 244
10.2.4 k-最近邻(k-NN) 246
10.2.5 随机森林 248
10.2.6 极端梯度提升(XGBoost) 252
10.3 无监督机器学习 254
10.3.1 K-means 255
10.3.2 具有噪声的基于密度的聚类应用(DBSCAN) 257
10.3.3 其他聚类算法 260
10.3.4 评估聚类 261
10.4 总结其他值得注意的机器学习模型 262
10.5 理解偏差-方差权衡 263
10.6 超参数调整 265
10.6.1 网格搜索 265
10.6.2 随机搜索 265
10.6.3 贝叶斯优化 266
10.7 本章小结 267
第11章 用深度学习构建网络 268
11.1 介绍神经网络和深度学习 268
11.2 讨论权重和偏差 271
11.2.1 权重介绍 271
11.2.2 偏差介绍 271
11.3 使用激活函数激活神经元 273
11.3.1 常见激活函数 273
11.3.2 选择合适的激活函数 275
11.4 剖析反向传播 276
11.4.1 梯度下降 276
11.4.2 什么是反向传播 276
11.4.3 损失函数 277
11.4.4 梯度下降步骤 278
11.4.5 梯度消失问题 278
11.5 使用优化器 281
11.5.1 优化算法 281
11.5.2 网络调整 282
11.6 理解嵌入 284
11.6.1 词嵌入 284
11.6.2 训练嵌入 284
11.7 列出常见的网络架构 285
11.7.1 常见网络 285
11.7.2 工具和包 287
11.8 介绍 GenAI 和 LLM 288
11.8.1 揭示语言模型 288
11.8.2 Transformer 和自注意力 289
11.8.3 迁移学习 290
11.8.4 GPT 应用 291
11.9 本章小结 293
第12章 用MLOps实现机器学习解决方案 294
12.1 引入 MLOps 294
12.2 理解数据采集 297
12.3 学习数据存储的基础知识 298
12.4 审查模型开发 299
12.5 模型部署的打包 300
12.5.1 确定要求 300
12.5.2 虚拟环境 301
12.5.3 环境管理的工具和方法 301
12.6 使用容器部署模型 302
12.7 验证和监控模型 304
12.7.1 验证模型部署 304
12.7.2 模型监控 305
12.7.3 思考治理 306
12.8 使用 Azure ML 的 MLOps 307
12.9 本章小结 307
第 4 篇 获得工作
第13章 掌握面试环节 311
13.1 掌握与招聘人员的早期互动 311
13.2 掌握不同的面试阶段 314
13.2.1 招聘经理阶段 314
13.2.2 技术面试 315
13.2.3 编码问题 316
13.2.4 小组面试阶段 319
13.3 本章小结 319
13.4 参考文献 320
第14章 协商薪酬 321
14.1 理解薪酬格局 321
14.2 谈判报价 322
14.2.1 谈判考虑因素 322
14.2.2 回应报价 323
14.2.3 最大可谈判薪酬和情境价值 324
14.3 本章小结 329
14.4 最后的话 330
猜您喜欢



