新書推薦:
《
人工智能与大数据:采煤机智能制造
》
售價:NT$
440.0
《
新民说·逝去的盛景:宋朝商业文明的兴盛与落幕(上下册)
》
售價:NT$
790.0
《
我从何来:自我的心理学探问
》
售價:NT$
545.0
《
失败:1891—1900 清王朝的变革、战争与排外
》
售價:NT$
390.0
《
万千心理·我的精神分析之道:复杂的俄狄浦斯及其他议题
》
售價:NT$
475.0
《
荷马:伊利亚特(英文)-西方人文经典影印21
》
售價:NT$
490.0
《
我的心理医生是只猫
》
售價:NT$
225.0
《
股权控制战略:如何实现公司控制和有效激励(第2版)
》
售價:NT$
449.0
編輯推薦:
本书介绍的概念和技能可以帮助你解决现实世界的数据分析挑战。它涵盖概率、统计推断、线性回归和机器学习等概念。它还可以帮助你培养诸如R编程、数据整理、数据可视化、预测算法构建、使用Unix/Linux框架(shell)组织文件、使用Git和GitHub进行版本控制,以及可复现文档准备等技能。 作者通过案例研究,真实地模仿了数据科学家的经验。他首先提出具体的问题,然后通过数据分析来回答这些问题,因此,概念的介绍是在回答问题的过程中进行的。涉及的案例研究数据包括:美国各州的枪杀率、学生报告的身高、世界卫生和经济趋势、疫苗对传染病率的影响、2007—2008年的金融危机、美国总统选举预测、组建棒球队、手写数字的图像处理和电影推荐系统等相关数据。 本书可用于数据科学基础课。阅读本书不需要具备R语言的知识,尽管有一些编程经验可能更有帮助。
內容簡介:
本书介绍可以帮助读者处理真实数据分析挑战的概念和技能。它涵盖了概率论、统计推断、线性回归和机器学习等概念。它还帮助读者提升如下技能:R编程、数据清洗、数据可视化、预测算法构建、使用UNIX/Linux shell组织文件、使用Git和GitHub进行版本控制以及可复制的文档准备。全书分为六个部分,分别为R、数据可视化、统计与R、数据清洗、机器学习和生产力工具。
關於作者:
拉斐尔·A·伊里萨里(Rafael A. Irizarry)是达纳-法伯癌症研究所(Dana-Farber Cancer Institute)的数据科学教授、哈佛大学(Harvard)生物统计学教授、美国统计协会(American Statistical Association)会员。伊里萨里博士是一名应用统计学家,在过去的20年里,他在不同的领域工作,包括基因组学、声音工程和公共卫生。他将数据分析的解决方案作为开源软件发布,这些工具被广泛下载和使用。伊里萨里教授还在哈佛大学开发并教授了几门数据科学课程,以及一些受欢迎的在线课程。
目錄 :
目 录 Contents
前言
致谢
第1章 R和RStudio入门1
1.1 为什么是R1
1.2 R控制台2
1.3 脚本2
1.4 RStudio3
1.4.1 窗格3
1.4.2 按键绑定4
1.4.3 编辑脚本时运行命令5
1.4.4 更改全局选项7
1.5 安装R包8
第一部分 R语言
第2章 R基础知识10
2.1 案例研究:美国枪杀人数10
2.2 非常基础的知识11
2.2.1 对象11
2.2.2 工作区12
2.2.3 函数13
2.2.4 其他预构建对象14
2.2.5 变量名15
2.2.6 保存工作区15
2.2.7 启发性脚本15
2.2.8 注释代码16
2.3 练习16
2.4 数据类型17
2.4.1 数据帧17
2.4.2 检查对象17
2.4.3 访问器:$18
2.4.4 向量:数值型、字符型和
逻辑型18
2.4.5 因子19
2.4.6 列表20
2.4.7 矩阵21
2.5 练习22
2.6 向量23
2.6.1 创建向量23
2.6.2 命名24
2.6.3 序列24
2.6.4 子集25
2.7 强制转换25
2.8 练习26
2.9 排序27
2.9.1 sort27
2.9.2 order27
2.9.3 max和which.max28
2.9.4 rank29
2.9.5 注意循环使用29
2.10 练习29
2.11 向量运算30
2.11.1 重新缩放向量31
2.11.2 两个向量31
2.12 练习32
2.13 索引32
2.13.1 逻辑子集32
2.13.2 逻辑运算符33
2.13.3 which33
2.13.4 match33
2.13.5 %in%34
2.14 练习34
2.15 基本图35
2.15.1 plot 35
2.15.2 hist35
2.15.3 boxplot36
2.15.4 image36
2.16 练习36
第3章 编程基础38
3.1 条件表达式38
3.2 函数40
3.3 命名空间41
3.4 for循环42
3.5 向量化和泛函43
3.6 练习43
第4章 tidyverse45
4.1 tidy数据45
4.2 练习46
4.3 操作数据帧47
4.3.1 使用mutate添加列47
4.3.2 使用filter构造子集48
4.3.3 使用select选择列 48
4.4 练习48
4.5 管道:%>%50
4.6 练习51
4.7 汇总数据51
4.7.1 summarize52
4.7.2 pull53
4.7.3 group_by54
4.8 数据帧排序55
4.8.1 嵌套排序55
4.8.2 top_n56
4.9 练习56
4.10 tibble57
4.10.1 tibble展示效果更好58
4.10.2 tibble的子集仍是tibble58
4.10.3 tibble可以有复杂的条目59
4.10.4 tibble可以分组59
4.10.5 使用tibble代替data.frame59
4.11 点运算符60
4.12 do60
4.13 purrr包62
4.14 tidyverse条件63
4.14.1 case_when63
4.14.2 between63
4.15 练习64
第5章 导入数据65
5.1 路径和工作目录66
5.1.1 文件系统66
5.1.2 相对路径和完整路径67
5.1.3 工作目录67
5.1.4 生成路径名67
5.1.5 使用路径复制文件68
5.2 readr和readxl包68
5.2.1 readr68
5.2.2 readxl69
5.3 练习70
5.4 下载文件70
5.5 R-base导入函数71
5.6 文本与二进制文件72
5.7 Unicode与ASCII72
5.8 用电子表格组织数据73
5.9 练习74
第二部分 数据可视化
第6章 数据可视化导论76
第7章 ggplot280
7.1 图的组件81
7.2 ggplot对象82
7.3 几何图形82
7.4 美学映射83
7.5 图层集合84
7.6 全局与局部美学映射85
7.7 尺度86
7.8 标签和标题86
7.9 类别的颜色87
7.10 注释、形状和调整88
7.11 附加组件包89
7.12 综合90
7.13 用qplot快速绘图91
7.14 绘图网格91
7.15 练习92
第8章 可视化数据分布94
8.1 变量类型94
8.2 案例研究:描述学生的身高95
8.3 分布函数95
8.4 累积分布函数96
8.5 直方图97
8.6 平滑密度图97
8.6.1 解读y轴100
8.6.2 密度容许分层100
8.7 练习101
8.8 正态分布103
8.9 标准单位104
8.10 分位数图105
8.11 百分位数106
8.12 箱线图107
8.13 分层法108
8.14 案例研究:描述学生的
身高(续)108
8.15 练习109
8.16 ggplot2几何图形111
8.16.1 条形图111
8.16.2 直方图112
8.16.3 密度图113
8.16.4 箱线图113
8.16.5 QQ图114
8.16.6 图像114
8.16.7 快速绘图115
8.17 练习116
第9章 实践中的数据可视化118
9.1 案例研究:对贫困的新见解118
9.2 散点图120
9.3 分面121
9.3.1 facet_wrap 123
9.3.2 采用固定尺度以更好地
进行比较123
9.4 时间序列图124
9.5 数据转换127
9.5.1 对数转换127
9.5.2 使用哪一个底数128
9.5.3 转换值还是标记尺度129
9.6 可视化多峰分布130
9.7 用箱线图和脊线图比较多种分布130
9.7.1 箱线图131
9.7.2 脊线图132
9.7.3 示例:1970年和2010年的
收入分布134
9.7.4 访问计算变量139
9.7.5 加权密度142
9.8 生态谬误和显示数据的重要性143
9.8.1 逻辑转换143
9.8.2 显示数据144
第10章 数据可视化原则145
10.1 使用视觉线索编码数据145
10.2 知道什么时候包含0148
10.3 不要扭曲数量150
10.4 按有意义的值对类别排序150
10.5 显示数据152
10.6 简单的比较153
10.6.1 使用公共的轴153
10.6.2 垂直对齐图可以看到
水平变化,水平对齐图
可以看到垂直变化154
10.6.3 考虑数据转换155
10.6.4 比较相邻视觉线索157
10.6.5 使用颜色157
10.7 考虑色盲158
10.8 两个变量的图158
10.8.1 斜率图158
10.8.2 Bland-Altman图159
10.9 编码第三个变量160
10.10 避免拟三维图161
10.11 避免使用过多有效数字162
10.12 了解你的读者163
10.13 练习164
10.14 案例研究:疫苗和传染病167
10.15 练习170
第11章 鲁棒的汇总171
11.1 离群值171
11.2 中值172
11.3 四分位距172
11.4 Tukey对离群值的定义173
11.5 绝对中位差173
11.6 练习174
11.7 案例研究:学生报告的身高175
第三部分 R语言统计学
第12章 R语言统计学导论178
第13章 概率179
13.1 离散概率179
13.1.1 相对频率179
13.1.2 符号180
13.1.3 概率分布180
13.2 分类数据的蒙特卡罗模拟180
13.2.1 设置随机种子181
13.2.2 有无放回182
13.3 独立性182
13.4 条件概率183
13.5 加法和乘法法则183
13.5.1 乘法法则183
13.5.2 独立条件下的乘法法则184
13.5.3 加法法则184
13.6 排列组合184
13.7 示例188
13.7.1 蒙提·霍尔问题188
13.7.2 生日问题189
13.8 无限实验191
13.9 练习191
13.10 连续概率193
13.11 理论连续分布194
13.11.1 近似理论分布194
13.11.2 概率密度195
13.12 连续变量的蒙特卡罗模拟196
13.13 连续分布197
13.14 练习197
第14章 随机变量199
14.1 生成随机变量199
14.2 抽样模型200
14.3 随机变量的概率分布201
14.4 分布与概率分布202
14.5 随机变量符号203
14.6 期望值和标准误差203
14.7 中心极限定理205
14.8 平均值统计特性206
14.9 大数定律208
14.10 练习208
14.11 案例研究:大空头209
14.11.1 利率解释与机会模型209
14.11.2 大空头212
14.12 练习215
第15章 统计推断216
15.1 民意调查216
15.2 总体、样本、参数和估计218
15.2.1 样本平均值219
15.2.2 参数220
15.2.3 民意调查与预测220
15.2.4 估计值的性质:期望值和
标准误差220
15.3 练习221
15.4 实践中的中心极限定理222
15.4.1 蒙特卡罗模拟224
15.4.2 差值225
15.4.3 偏差:为什么不进行一次
大规模的民意调查呢225
15.5 练习226
15.6 置信区间227
15.6.1 蒙特卡罗模拟229
15.6.2 正确的语言230
15.7 练习231
15.8 幂232
15.9 p值232
15.10 联合检验233
15.10.1 女士品茶234
15.10.2 二乘二表234
15.10.3 卡方检验235
15.10.4 比值比236
15.10.5 比值比的置信区间237
15.10.6 小计数校正237
15.10.7 样本大,p值小238
15.11 练习238
第16章 统计模型239
16.1 民意调查聚合器240
16.1.1 民意调查数据242
16.1.2 民意调查机构偏差243
16.2 数据驱动模型244
16.3 练习245
16.4 贝叶斯统计248
16.5 贝叶斯定理模拟249
16.6 层次模型251
16.7 练习253
16.8 案例研究:选举预测255
16.8.1 贝叶斯方法255
16.8.2 一般偏差256
16.8.3 模型的数学表示256
16.8.4 预测选举团259
16.8.5 预测263
16.9 练习264
16.10 t分布266
第17章 回归268
17.1 案例研究:身高是遗传的吗268
17.2 相关系数269
17.2.1 样本相关系数是一个
随机变量271
17.2.2 相关系数并不总是有用272
17.3 条件期望272
17.4 回归线274
17.4.1 回归提高精度275
17.4.2 二元正态分布(高级)276
17.4.3 可释方差278
17.4.4 警告:有两条回归线278
17.5 练习279
第18章 线性模型280
18.1 案例研究:《点球成金》280
18.1.1 棒球统计学281
18.1.2 棒球基础知识282
18.1.3 投球上垒无奖283
18.1.4 投球上垒还是盗垒284
18.1.5 应用于棒球统计的回归285
18.2 混杂因素287
18.2.1 通过分层理解混杂因素288
18.2.2 多元回归291
18.3 最小二乘估计291
18.3.1 解释线性模型292
18.3.2 最小二乘估计292
18.3.3 lm函数293
18.3.4 LSE是随机变量294
18.3.5 预测值是随机变量295
18.4 练习296
18.5 tidyverse中的线性回归297
18.6 练习301
18.7 案例研究:《点球成金》(续)302
18.7.1 添加薪水和位置信息304
18.7.2 选择9名球员306
18.8 回归谬论307
18.9 测量误差模型308
18.10 练习310
第19章 关联关系并非因果关系312
19.1 伪相关312
19.2 离群值314
19.3 颠倒因果315
19.4 混杂因素316
19.4.1 示例:加州大学伯克利分校的
招生316
19.4.2 混杂解释图形317
19.4.3 分层后的平均值318
19.5 辛普森悖论319
19.6 练习319
第四部分 数据整理
第20章 数据整理导论322
第21章 重塑数据323
21.1 gather函数323
21.2 spread函数324
21.3 separate函数325
21.4 unite函数327
21.5 练习328
第22章 连接表330
22.1 连接331
22.1.1 左连接332
22.1.2 右连接332
22.1.3 内部连接333
22.1.4 全连接333
22.1.5 半连接333
22.1.6 反连接333
22.2 绑定334
22.2.1 按列绑定334
22.2.2 按行绑定335
22.3 集合运算符335
22.3.1 intersect函数335
22.3.2 union函数335
22.3.3 setdiff函数336
22.3.4 setequal函数336
22.4 练习337
第23章 网页抓取338
23.1 HTML339
23.2 rvest包340
23.3 CSS选择器342
23.4 JSON342
23.5 练习344
第24章 字符串处理346
24.1 stringr包347
24.2 案例研究:美国枪杀数据348
24.3 案例研究:学生报告的身高349
24.4 定义字符串时如何转义351
24.5 正则表达式353
24.5.1 字符串是正则表达式353
24.5.2 特殊字符353
24.5.3 字符类354
24.5.4 锚点355
24.5.5 量词356
24.5.6 空格357
24.5.7 量词*、 和+357
24.5.8 非检测元素358
24.5.9 组358
24.6 使用正则表达式搜索并替换359
24.7 测试和改进361
24.8 修剪364
24.9 更改字母大小写364
24.10 案例研究:学生报告的
身高(续)365
24.10.1 extract函数365
24.10.2 整合366
24.11 字符串拆分367
24.12 案例研究:从PDF中提取表369
24.13 重新编码372
24.14 练习373
第25章 解析日期和时间376
25.1 日期数据类型376
25.2 lubridate包377
25.3 练习380
第26章 文本挖掘381
26.1 案例研究:特朗普推文381
26.2 文本作为数据383
26.3 情感分析388
26.4 练习392
第五部分 机器学习
第27章 机器学习导论394
27.1 概念394
27.2 示例396
27.3 练习397
27.4 评价标准397
27.4.1 训练集和测试集398
27.4.2 总体准确度398
27.4.3 混淆矩阵400
27.4.4 灵敏度和特异性401
27.4.5 平衡准确度和评分402
27.4.6 类别主导优势在实践中的
重要性404
27.4.7 ROC和精度-召回率曲线404
27.4.8 损失函数406
27.5 练习407
27.6 条件概率和期望407
27.6.1 条件概率408
27.6.2 条件期望409
27.6.3 条件期望使平方损失
函数最小409
27.7 练习410
27.8 案例研究:是2还是7410
第28章 平滑化413
28.1 箱平滑化414
28.2 核函数416
28.3 局部加权回归418
28.3.1 抛物线拟合421
28.3.2 注意默认平滑化参数422
28.4 平滑化和机器学习的联系423
28.5 练习423
第29章 交叉验证425
29.1 k最近邻法的动机425
29.1.1 过度训练427
29.1.2 过度平滑化428
29.1.3 挑选kNN中的k429
29.2 交叉验证的数学描述430
29.3 K折交叉验证431
29.4 练习433
29.5 自举法434
29.6 练习436
第30章 caret包438
30.1 caret的train函数438
30.2 执行交叉验证439
30.3 示例:使用局部加权回归
进行拟合441
第31章 算法示例443
31.1 线性回归443
31.2 练习445
31.3 逻辑回归446
31.3.1 广义线性模型448
31.3.2 有不止一个预测因素的
逻辑回归450
31.4 练习451
31.5 k最近邻法451
31.6 练习452
31.7 生成模型453
31.7.1 朴素贝叶斯模型453
31.7.2 控制类别主导优势454
31.7.3 二次判别分析455
31.7.4 线性判别分析458
31.7.5 与距离的联系458
31.8 案例研究:类别的数量大于3459
31.9 练习461
31.10 分类回归树462
31.10.1 维数灾难462
31.10.2 CART动机463
31.10.3 回归树465
31.10.4 分类树469
31.11 随机森林470
31.12 练习474
第32章 机器学习实践476
32.1 预处理477
32.2 k最近邻法和随机森林478
32.3 变量重要性480
32.4 视觉评价480
32.5 集成模型481
32.6 练习481
第33章 大型数据集483
33.1 矩阵代数483
33.1.1 符号484
33.1.2 将向量转化为矩阵486
33.1.3 行汇总和列汇总487
33.1.4 apply487
33.1.5 根据汇总量对列进行过滤488
33.1.6 矩阵索引489
33.1.7 数据的二值化490
33.1.8 矩阵的向量化490
33.1.9 矩阵代数运算490
33.2 练习491
33.3 距离491
33.3.1 欧氏距离491
33.3.2 高维空间中的距离492
33.3.3 欧氏距离举例492
33.3.4 预测因素空间494
33.3.5 预测因素之间的距离494
33.4 练习494
33.5 维数缩减495
33.5.1 距离的保持495
33.5.2 线性变换(进阶)497
33.5.3 正交变换(进阶)498
33.5.4 主成分分析499
33.5.5 鸢尾花示例501
33.5.6 MNIST 示例503
33.6 练习505
33.7 推荐系统505
33.7.1 movielens 数据505
33.7.2 推荐系统是一个机器学习
挑战507
33.7.3 损失函数507
33.7.4 第一个模型508
33.7.5 电影效应建模508
33.7.6 用户效应509
33.8 练习510
33.9 正则化511
33.9.1 动机511
33.9.2 补偿最小二乘法513
33.9.3 惩罚项的选择515
33.10 练习517
33.11 矩阵分解518
33.11.1 因子分析520
33.11.2 连接SVD和PCA523
33.12 练习525
第34章 聚类529
34.1 分层聚类530
34.2 k均值聚类531
34.3 热点图531
34.4 特征过滤532
34.5 练习532
第六部分 生产力工具
第35章 生产力工具导论534
第36章 使用UNIX进行组织536
36.1 命名约定536
36.2 终端537
36.3 文件系统537
36.3.1 目录和子目录538
36.3.2 主目录538
36.3.3 工作目录540
36.3.4 路径540
36.4 UNIX命令541
36.4.1 ls:列出目录内容541
36.4.2 mkdir和rmdir:目录的
创建和删除541
36.4.3 cd:通过更改目录来
浏览文件系统542
36.5 示例543
36.6 其他UNIX命令545
36.6.1 mv:移动文件545
36.6.2 cp:复制文件545
36.6.3 rm:移除文件546
36.6.4 less:查看文件546
36.7 为数据科学项目做准备546
36.8 UNIX的进阶内容547
36.8.1 参数547
36.8.2 获取帮助548
36.8.3 管道548
36.8.4 通配符549
36.8.5 环境变量549
36.8.6 框架550
36.8.7 可执行文件550
36.8.8 权限和文件类型551
36.8.9 应该掌握的命令551
36.8.10 R中的文件管理551
第37章 Git和GitHub552
37.1 为什么要使用Git和GitHub552
37.2 GitHub账户553
37.3 GitHub库554
37.4 Git概述556
37.5 初始化Git目录559
37.6 在RStudio中使用Git和
GitHub561
第38章 使用RStudio和R markdown的
可复现项目565
38.1 RStudio项目565
38.2 R markdown569
38.2.1 头文件570
38.2.2 R代码块570
38.2.3 全局选项571
38.2.4 knitr571
38.2.5 更多有关R markdown的
内容572
38.3 组织数据科学项目572
38.3.1 在UNIX中创建目录572
38.3.2 创建RStudio项目573
38.3.3 编辑R脚本574
38.3.4 用UNIX创建更多的目录575
38.3.5 添加README文件575
38.3.6 初始化Git目录575
38.3.7 用RStudio进行文件的添加、
提交和推送576
內容試閱 :
Preface 前 言
工业界、学术界和政府对熟练的数据科学从业人员的需求正在迅速增长。本书介绍的概念和技能可以帮助读者解决现实世界的数据分析问题。本书涵盖了概率、统计推断、线性回归和机器学习等概念,还可以帮助读者培养一些技能,如R编程、使用dplyr进行数据整理、使用ggplot2进行数据可视化、使用caret包构建算法、使用UNIX/Linux框架组织文件、使用Git和GitHub进行版本控制,以及使用knitr和R markdown进行可复现的文档准备。本书主要分为六个部分,每个部分都有若干章,可以适用于一个课程。
案例研究
启发性案例研究贯穿全书。在每个案例研究中,我们都试图真实地模仿数据科学家的经历。对于所涵盖的每个概念,我们从提出具体问题开始,并通过数据分析回答这些问题。我们将所学习的概念作为回答问题的手段。本书中的案例研究包括:
案例研究概念
美国各州枪杀率R基础知识
描述学生的身高统计汇总
世界卫生和经济趋势数据可视化
疫苗对传染病病发率的影响数据可视化
2007—2008年金融危机概率
美国总统选举预测统计推断
学生报告的身高数据整理
《点球成金》线性回归
MNIST:手写数字图像处理机器学习
电影推荐系统机器学习
本书读者对象
本书适合作为数据科学方向第一门课程的教材。虽然有一些编程经验可能会有所帮助,但不需要有R语言的知识背景。本书对用于回答案例研究中的问题的统计概念仅作简要介绍,因此,要深入理解这些概念,建议配备概率与统计教材。如果你阅读并理解了所有章节并完成了所有练习,你将能够很好地完成基本数据分析任务,并且为学习成为专家所需的更高级的概念和技能做好了准备。
本书包含的主题
我们首先复习R基础知识和tidyverse。R的知识贯穿全书,但第一部分主要介绍持续学习所需的构建块。
信息数据集和软件工具的日益普及,使得许多领域对数据可视化的依赖性增加。第二部分将演示如何使用ggplot2生成图形,并描述重要的数据可视化原则。
第三部分基于R,通过概率、推断和回归回答案例研究中的问题,以说明统计学在数据分析中的重要性。
第四部分通过若干示例来让读者熟悉数据整理。我们将学习的具体技能包括网页抓取、正则表达式使用、连接和重塑数据表。我们使用tidyverse工具来完成这些工作。
第五部分通过展示一些挑战引出机器学习。我们将学习使用caret包来构建包括k最近邻和随机森林在内的预测算法。
第六部分简要介绍在数据科学项目中日常使用的生产力工具:RStudio、UNIX/Linux shell、Git和GitHub,以及knitr和R markdown。
本书未包含的主题
本书的重点是数据科学的数据分析方面,因此,不涉及与数据管理或工程相关的内容。尽管R编程是本书的一个重要部分,但本书并不教授更高级的计算机科学主题,如数据结构、优化和算法理论。同理,本书也不讨论诸如Web服务、交互式图形、并行计算和数据流处理等主题。统计概念主要作为解决问题的工具提出,本书并不包括其深入的理论描述。
本书配套
本书英文版基于HarvardX数据科学系列的课堂笔记。本书英文版在线版本的链接是https://rafalab.github.io/dsbook/。用于生成这本书的R markdown代码可以在GitHub上获得。注意,用于本书的图形可以使用dslabs包的ds_theme_set()函数重新创建。
本书通过Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International(CC BY-NC-SA 4.0)授权许可。
Acknowledgments 致 谢
本书献给所有参与构建和维护我们在本书中使用的R以及R包的人。特别感谢R、tidyverse和caret包的开发人员及维护人员。
特别感谢tidyverse专家David Robinson和Amy Gill的数十条点评、编辑意见及建议,也非常感谢曾两次担任我数据科学课指导老师的Stephanie Hicks,以及耐心地回答了我很多关于bookdown的问题的Yihui Xie。还要感谢Karl Broman,我从他那里借鉴了数据可视化和生产力工具部分的想法,也要感谢Hector Corrada-Bravo在教授机器学习课程的方法方面的建议。感谢Peter Aldhous,我从他那里借鉴了数据可视化原则部分的想法,感谢Jenny Bryan编写了Happy Git and GitHub for the useR,这对本书第37章的编写很有启发。感谢Alyssa Frazee提出的家庭作业问题,该问题成就了本书的推荐系统章节。感谢Amanda Cox提供的纽约高中会考数据。同时,也要感谢Jeff Leek、Roger Peng和Brian Caffo,本书的章节划分受他们的课程启发。还要感谢Garrett Grolemund和Hadley Wickham开放了R for Data Science一书的bookdown代码。最后,感谢Alex Nones在各个阶段对本书手稿的校对。
本书的构思开始于15年前,是从几门应用统计学课程的教学构思而来的。多年来,与我一起工作的助教们间接对本书做出了重要的贡献。本课程的最新版本是由Heather Sternshein和Zzofia Gajdos协助的HarvardX系列课程,感谢他们的贡献。也要感谢所有的学生,他们的问题和意见帮助我们改进了本书。课程部分经费由