本书基于Python语言环境,从零开始讲解数据科学工作,讲述数据科学工作所需的技能与诀窍,并带领读者熟悉数据科学的核心知识:数学与统计学。作者借助大量具有现实意义的实例详细展示了什么是数据科学,介绍了从事数据科学工作需要用到的库,如NumPy、scikit-learn、pandas等,还在每章末尾推荐了很多学习资源,帮助你进一步巩固本书所学。新版基于Python 3.6,重写了所有示例和代码,并根据数据科学近几年的发展,新增了关于深度学习、统计学和自然语言处理等主题,让图书内容与时俱进。
1.全能数据科学家成长指南,长居美亚机器学习热销榜;
2.新版基于Python 3.6,新引入了类型注释等许多功能;
3.根据数据科学近几年的发展,新增了关于深度学习、统计学和自然语言处理等主题,让图书内容与时俱进。
- 学到一堂Python速成课。
- 学习线性代数、统计学和概率论的基础知识,并能将其灵活地用于数据科学项目。
- 掌握如何获取、探索、清洗、处理和调整数据。
- 深入理解机器学习概念,尤其是深度学习概念。
- 运用k最近邻法、朴素贝叶斯、线性回归、逻辑回归、决策树、神经网络和聚类等算法实现数据模型。
- 探索自然语言处理、网络分析、推荐系统、数据库与SQL、MapReduce。
无论你身处哪个行业,数据都能成为你的好帮手。善于从凌乱的数据中提取有用的信息,你就能在面对业务难题时游刃有余,用数据说话,为决策找到有力的支撑。
欢迎进入数据科学世界!在本书中,你将化身为虚构公司DataSciencester的员工,从零开始数据科学工作,亲手构建工具、实现算法,最终从数据科学新手蜕变为全能的数据科学家。在第1版的基础上,本书升级了所有代码示例,并新增了深度学习、统计学、自然语言处理等相关内容。
乔尔·格鲁斯(Joel Grus)
Capital Group公司的首席机器学习工程师,担任过艾伦研究所的人工智能研发工程师以及谷歌公司的软件工程师,还曾在多家创业公司担任数据科学家。
【译者简介】
岳冰
美国西北大学数学硕士,知乎专栏“X-Lab”编辑,参与编撰了《知识图谱标准化白皮书(2019版)》。深耕图神经网络、推荐算法、复杂关系网络风险挖掘、机器学习等领域。运用人工智能算法与工具,长期支持有关部门用高精尖技术手段打击违法犯罪。
高蓉
讲师,任教于杭州电子科技大学经济学院金融系。博士和硕士毕业于南开大学经济学院金融系,本科毕业于南开大学数学学院计算数学专业。研究领域包括数据科学应用、资产定价、金融工程、计量经济应用等。
韩波
自由译者、撰稿人,从事信息技术工作二十余年,主要兴趣领域为机器学习、Python等。曾为多家信息技术媒体撰稿,另译有《Python数据分析》。
第 2版前言 xiii
第 1版前言 xvii
第 1章 导论 1
1.1 数据的崛起 1
1.2 什么是数据科学 1
1.3 激励假设:DataSciencester 2
1.3.1 寻找关键联系人 3
1.3.2 你可能知道的数据科学家 5
1.3.3 工资和工作年限 8
1.3.4 付费账户 10
1.3.5 感兴趣的主题 10
1.3.6 展望 12
第 2章 Python速成 13
2.1 Python之禅 13
2.2 获取Python 14
2.3 虚拟环境 14
2.4 空白格式 15
2.5 模块 16
2.6 函数 17
2.7 字符串 18
2.8 异常 19
2.9 列表 19
2.10 元组 21
2.11 字典 22
2.12 计数器 24
2.13 集 24
2.14 控制流 25
2.15 真和假 26
2.16 排序 27
2.17 列表解析 27
2.18 自动化测试和断言 28
2.19 面向对象编程 29
2.20 迭代器和生成器 31
2.21 随机性 ..32
2.22 正则表达式 33
2.23 函数式编程 34
2.24 压缩和参数拆分 34
2.25 args和kwargs 35
2.26 类型注释 36
2.27 欢迎来到DataSciencester 39
2.28 进一步探索 39
第3章 数据可视化 40
3.1 matplotlib 40
3.2 条形图 42
3.3 线图 45
3.4 散点图 46
3.5 延伸学习 48
第4章 线性代数 49
4.1 向量 49
4.2 矩阵 53
4.3 延伸学习 56
第5章 统计学 57
5.1 描述单个数据集 57
5.1.1 中心倾向 59
5.1.2 离散度 61
5.2 相关 62
5.3 辛普森悖论 64
5.4 相关系数的其他注意事项 65
5.5 相关与因果 66
5.6 延伸学习 66
第6章 概率 68
6.1 依赖和独立 68
6.2 条件概率 69
6.3 贝叶斯定理 71
6.4 随机变量 72
6.5 连续分布 72
6.6 正态分布 73
6.7 中心极限定理 76
6.8 延伸学习 78
第7章 假设和推论 79
7.1 统计假设检验 79
7.2 实例:掷硬币 79
7.3 p值 82
7.4 置信区间 84
7.5 p-Hacking 84
7.6 实例:运行A/B 测试 85
7.7 贝叶斯推断 86
7.8 延伸学习 89
第8章 梯度下降 90
8.1 梯度下降的思想 90
8.2 估算梯度 91
8.3 使用梯度 94
8.4 选择正确步长 94
8.5 使用梯度下降拟合模型 95
8.6 小批次梯度下降和随机梯度下降 96
8.7 延伸学习 98
第9章 获取数据 99
9.1 stdin和stdout 99
9.2 读取文件 101
9.2.1 文本文件的基础 101
9.2.2 限制的文件 102
9.3 网络抓取 104
9.4 使用API 106
9.4.1 JSON和XML 106
9.4.2 使用无验证的API 107
9.4.3 寻找API 108
9.5 实例:使用Twitter API 109
9.6 延伸学习 112
第 10章 数据工作 113
10.1 探索数据 113
10.1.1 探索一维数据 113
10.1.2 两个维度 115
10.1.3 多维数据 116
10.2 使用NamedTuple 18
10.3 数据类 119
10.4 清洗和修改 120
10.5 数据处理 122
10.6 数据调整 25
10.7 题外话:tqdm 126
10.8 降维 127
10.9 延伸学习 133
第 11章 机器学习 134
11.1 建模 134
11.2 什么是机器学习 135
11.3 过拟合与欠拟合 135
11.4 正确性 138
11.5 偏差–方差权衡 140
11.6 特征提取与选择 141
11.7 延伸学习 142
第 12章 k最近邻法 143
12.1 模型 143
12.2 实例:鸢尾花数据集 145
12.3 维数灾难 148
12.4 进一步探索 152
第 13章 朴素贝叶斯算法 153
13.1 一个简易的垃圾邮件过滤器 153
13.2 一个复杂的垃圾邮件过滤器 154
13.3 算法实现 155
13.4 测试模型 157
13.5 使用模型 158
13.6 延伸学习 161
第 14章 简单线性回归 162
14.1 模型 162
14.2 使用梯度下降法 165
14.3 最大似然估计 166
14.4 延伸学习 166
第 15章 多元回归 167
15.1 模型 167
15.2 最小二乘模型的进一步假设 168
15.3 拟合模型 169
15.4 解释模型 171
15.5 拟合优度 171
15.6 题外话:Bootstrap 172
15.7 回归系数的标准误差 173
15.8 正则化 175
15.9 延伸学习 177
第 16章 逻辑回归 178
16.1 问题 178
16.2 logistic函数 180
16.3 应用模型 183
16.4 拟合优度 184
16.5 支持向量机 185
16.6 延伸学习 188
第 17章 决策树 89
17.1 什么是决策树 189
17.2 熵 191
17.3 分割的熵 193
17.4 创建决策树 194
17.5 综合运用 196
17.6 随机森林 199
17.7 延伸学习 199
第 18章 神经网络 200
18.1 感知器 200
18.2 前馈神经网络 202
18.3 反向传播 205
18.4 实例:Fizz Buzz 207
18.5 延伸学习 210
第 19章 深度学习 211
19.1 张量 211
19.2 层抽象 213
19.3 线性层 215
19.4 把神经网络作为层序列 218
19.5 损失函数与优化器 219
19.6 实例:重新设计异或网络 221
19.7 其他激活函数 222
19.8 实例:重新解决Fizz Buzz问题 223
19.9 softmax函数和交叉熵 224
19.10 丢弃 227
19.11 实例:MNIST 227
19.12 保存和加载模型 231
19.13 延伸学习 232
第 20章 聚类分析 233
20.1 原理 233
20.2 模型 234
20.3 实例:聚会 236
20.4 选择聚类数目k 238
20.5 实例:色彩聚类 239
20.6 自下而上的分层聚类 241
20.7 延伸学习 246
第 21章 自然语言处理 247
21.1 词云 247
21.2 n-gram 语言模型 249
21.3 语法 252
21.4 题外话:吉布斯采样 254
21.5 主题建模 255
21.6 词向量 260
21.7 递归神经网络 268
21.8 实例:使用字符级RNN 271
21.9 延伸学习 274
第 22章 网络分析 275
22.1 中介中心性 275
22.2 特征向量中心性 280
22.2.1 矩阵乘法 280
22.2.2 中心性 282
22.3 有向图与PageRank 283
22.4 延伸学习 286
第 23章 推荐系统 287
23.1 人工管理 288
23.2 推荐流行事务 288
23.3 基于用户的协同过滤 289
23.4 基于项目的协同过滤 292
23.5 矩阵分解 294
23.6 延伸学习 298
第 24章 数据库与SQL 299
24.1 CREATE TABLE与INSERT 299
24.2 UPDATE 302
24.3 DELETE 303
24.4 SELECT 304
24.5 GROUP BY 306
24.6 ORDER BY 308
24.7 JOIN 309
24.8 子查询 311
24.9 索引 312
24.10 查询优化 312
24.11 NoSQL 313
24.12 延伸学习 313
第 25章 MapReduce 314
25.1 实例:单词计数 315
25.2 为什么是MapReduce 316
25.3 更一般化的MapReduce 317
25.4 实例:状态分析更新 318
25.5 实例:矩阵乘法 320
25.6 题外话:组合器 321
25.7 延伸学习 322
第 26章 数据伦理 323
26.1 什么是数据伦理 323
26.2 讲真的,什么是数据伦理 324
26.3 是否应该关注数据伦理 324
26.4 建立不良数据产品 325
26.5 精确与公平之间的较量 325
26.6 合作 327
26.7 可解释性 327
26.8 推荐 327
26.9 异常数据 328
26.10 数据保护 329
26.11 小结 329
26.12 延伸学习 329
第 27章 数据科学前瞻 330
27.1 IPython 330
27.2 数学 331
27.3 不从零开始 331
27.3.1 NumPy 331
27.3.2 pandas 331
27.3.3 scikit-learn 331
27.3.4 可视化 332
27.3.5 R 332
27.3.6 深度学习 332
27.4 寻找数据 333
27.5 从事数据科学工作 333
27.5.1 Hacker News 333
27.5.2 消防车 333
27.5.3 T恤 334
27.5.4 地球仪上的推文 334
27.5.5 你的发现 335
关于作者 336
关于封面 336