《数据分析与预测算法:基于R语言》[美]拉斐尔・A. 伊里萨里(Rafae | PDF下载|ePub下载
数据分析与预测算法:基于R语言 版权信息
- 出版社:机械工业出版社
- 出版时间:2024-04-01
- ISBN:9787111746782
- 条形码:9787111746782 ; 978-7-111-74678-2
数据分析与预测算法:基于R语言 本书特色
本书介绍的概念和技能可以帮助你解决现实世界的数据分析挑战。它涵盖概率、统计推断、线性回归和机器学习等概念。它还可以帮助你培养诸如R编程、数据整理、数据可视化、预测算法构建、使用Unix/Linux框架(shell)组织文件、使用Git和GitHub进行版本控制,以及可复现文档准备等技能。 作者通过案例研究,真实地模仿了数据科学家的经验。他首先提出具体的问题,然后通过数据分析来回答这些问题,因此,概念的介绍是在回答问题的过程中进行的。涉及的案例研究数据包括:美国各州的枪杀率、学生报告的身高、世界卫生和经济趋势、疫苗对传染病率的影响、2007―2008年的金融危机、美国总统选举预测、组建棒球队、手写数字的图像处理和电影推荐系统等相关数据。 本书可用于数据科学基础课。阅读本书不需要具备R语言的知识,尽管有一些编程经验可能更有帮助。
数据分析与预测算法:基于R语言 内容简介
本书介绍可以帮助读者处理真实数据分析挑战的概念和技能。它涵盖了概率论、统计推断、线性回归和机器学习等概念。它还帮助读者提升如下技能:R编程、数据清洗、数据可视化、预测算法构建、使用UNIX/Linux shell组织文件、使用Git和GitHub进行版本控制以及可复制的文档准备。全书分为六个部分,分别为R、数据可视化、统计与R、数据清洗、机器学习和生产力工具。
数据分析与预测算法:基于R语言 目录
前言
致谢
第1章 R和RStudio入门 1
1.1 为什么是R 1
1.2 R控制台 2
1.3 脚本 2
1.4 RStudio 3
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 sort 27
2.9.2 order 27
2.9.3 max和which.max 28
2.9.4 rank 29
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 which 33
2.13.4 match 33
2.13.5 %in% 34
2.14 练习 34
2.15 基本图 35
2.15.1 plot 35
2.15.2 hist 35
2.15.3 boxplot 36
2.15.4 image 36
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章 tidyverse 45
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 summarize 52
4.7.2 pull 53
4.7.3 group_by 54
4.8 数据帧排序 55
4.8.1 嵌套排序 55
4.8.2 top_n 56
4.9 练习 56
4.10 tibble 57
4.10.1 tibble展示效果更好 58
4.10.2 tibble的子集仍是tibble 58
4.10.3 tibble可以有复杂的条目 59
4.10.4 tibble可以分组 59
4.10.5 使用tibble代替data.frame 59
4.11 点运算符 60
4.12 do 60
4.13 purrr包 62
4.14 tidyverse条件 63
4.14.1 case_when 63
4.14.2 between 63
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 readr 68
5.2.2 readxl 69
5.3 练习 70
5.4 下载文件 70
5.5 R-base导入函数 71
5.6 文本与二进制文件 72
5.7 Unicode与ASCII 72
5.8 用电子表格组织数据 73
5.9 练习 74
第二部分 数据可视化
第6章 数据可视化导论 76
第7章 ggplot2 80
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 知道什么时候包含0 148
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 HTML 339
23.2 rvest包 340
23.3 CSS选择器 342
23.4 JSON 342
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还是7 410
第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中的k 429
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 案例研究:类别的数量大于3 459
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 apply 487
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和PCA 523
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和GitHub 552
37.1 为什么要使用Git和GitHub 552
37.2 GitHub账户 553
37.3 GitHub库 554
37.4 Git概述 556
37.5 初始化Git目录 559
37.6 在RStudio中使用Git和
GitHub 561
第38章 使用RStudio和R markdown的
可复现项目 565
38.1 RStudio项目 565
38.2 R markdown 569
38.2.1 头文件 570
38.2.2 R代码块 570
38.2.3 全局选项 571
38.2.4 knitr 571
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
数据分析与预测算法:基于R语言 作者简介
拉斐尔・A・伊里萨里(Rafael A. Irizarry)是达纳-法伯癌症研究所(Dana-Farber Cancer Institute)的数据科学教授、哈佛大学(Harvard)生物统计学教授、美国统计协会(American Statistical Association)会员。伊里萨里博士是一名应用统计学家,在过去的20年里,他在不同的领域工作,包括基因组学、声音工程和公共卫生。他将数据分析的解决方案作为开源软件发布,这些工具被广泛下载和使用。伊里萨里教授还在哈佛大学开发并教授了几门数据科学课程,以及一些受欢迎的在线课程。