数据分析与预测算法:基于R语言

数据分析与预测算法:基于R语言
作 者: 拉斐尔·A 伊里萨里
出版社: 机械工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  拉斐尔·A·伊里萨里(Rafael A. Irizarry)是达纳-法伯癌症研究所(Dana-Farber Cancer Institute)的数据科学教授、哈佛大学(Harvard)生物统计学教授、美国统计协会(American Statistical Association)会员。伊里萨里博士是一名应用统计学家,在过去的20年里,他在不同的领域工作,包括基因组学、声音工程和公共卫生。他将数据分析的解决方案作为开源软件发布,这些工具被广泛下载和使用。伊里萨里教授还在哈佛大学开发并教授了几门数据科学课程,以及一些受欢迎的在线课程。

内容简介

本书介绍可以帮助读者处理真实数据分析挑战的概念和技能。它涵盖了概率论、统计推断、线性回归和机器学习等概念。它还帮助读者提升如下技能:R编程、数据清洗、数据可视化、预测算法构建、使用UNIX/Linux shell组织文件、使用Git和GitHub进行版本控制以及可复制的文档准备。全书分为六个部分,分别为R、数据可视化、统计与R、数据清洗、机器学习和生产力工具。

图书目录

目  录  Contents

前言

致谢

第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