机器学习是近年来非常热门的学科,R语言经过一段时间的发展也逐渐成为主流的编程语言之一。本书结合机器学习和R语言,面向机器学习实践,不仅介绍了机器学习和R语言的基础知识,而且介绍了如何借助不同的算法来进行模型分析,以及这些算法在R语言中的实现方式。通过阅读本书,读者可以快速了解机器学习和R语言的必备知识,掌握机器学习的实现流程。
本书适合程序员、数据分析人员、对算法感兴趣的读者、机器学习领域的从业人员及科研人员阅读。
1.本书系统性地剖析了机器学习的内涵,帮助读者掌握机器学习的核心要义。书中案例的可操作性、可模仿性极好,书中的代码示例易学易上手。
2.本书基于R语言讲解,书中介绍了一系列tidyverse的包,通过流行的R包帮助读者高效率实现机器学习,掌握典型的机器学习算法。
黄天元,复旦大学博士,中国科学院博士后,现任浙江财经大学讲师。热爱数据科学与开源工具,致力于利用数据科学迅速积累行业经验和探索科学
发现。在 CRAN 上维护4个R 语言包(累计下载量破10万),著有《R语言数据高效处理指南》《文本数据挖掘:基于R语言》等图书,并开设知乎专栏《R 语言数据挖掘》。
第 1章 机器学习概论 1
1.1 机器学习的概念 1
1.2 机器学习的意义 2
1.3 机器学习的种类 3
1.4 机器学习基本流程 3
第 2章 R语言综合基础 5
2.1 简易环境配置 5
2.2 编程保留符号 9
2.3 基本数据类型 9
2.3.1 数值型 10
2.3.2 逻辑型 10
2.3.3 字符型 11
2.3.4 因子型 11
2.3.5 类型判断与转换 12
2.4 常用数据结构 12
2.4.1 向量 12
2.4.2 矩阵 13
2.4.3 列表 14
2.4.4 数据框 14
2.5 程序流程控制 15
2.5.1 选择结构 15
2.5.2 循环结构 16
2.6 函数使用技巧 18
第3章 高效数据操作 19
3.1 R数据操作包简介 19
3.2 数据读写 19
3.3 管道操作符 20
3.4 基本操作 21
3.4.1 筛选列 22
3.4.2 筛选行 28
3.4.3 更新 34
3.4.4 排序 36
3.4.5 汇总 40
3.4.6 分组计算 41
3.4.7 列的重命名 44
3.5 多表连接 45
3.6 长宽转换 50
3.7 集合运算 53
3.8 缺失值处理 55
3.9 列表列的运用 56
第4章 tidyverse快速入门 59
4.1 数据读取(readr) 59
4.2 数据整理 61
4.2.1 批处理(purrr) 61
4.2.2 因子操作(forcats) 64
4.2.3 时间操作(lubridate) 67
4.2.4 字符串操作(stringr) 68
4.2.5 数据框清洗(tibble/dplyr/tidyr) 71
4.3 数据可视化(ggplot2) 79
第5章 探索性数据分析 82
5.1 基本概念介绍 82
5.1.1 平均值 82
5.1.2 标准差 83
5.1.3 极值 83
5.1.4 中位数 84
5.1.5 相关系数 84
5.2 探索工具实践 86
5.2.1 vtree 86
5.2.2 skimr 88
5.2.3 naniar 90
第6章 特征工程 93
6.1 特征修饰 93
6.1.1 归一化 93
6.1.2 数据分箱 94
6.1.3 缺失值填补 101
6.2 特征构造 107
6.2.1 构造交互项 107
6.2.2 基于降维技术的特征构造 108
6.2.3 One-Hot编码 110
6.3 特征筛选 111
6.3.1 过滤法 111
6.3.2 封装法 113
6.3.3 嵌入法 114
第7章 重采样方法 116
7.1 针对模型评估的重采样 116
7.1.1 交叉验证 116
7.1.2 自举法 117
7.2 针对类失衡的重采样 117
第8章 模型表现的衡量 119
8.1 回归模型的表现衡量 119
8.2 分类模型的表现衡量 120
第9章 模型选择 122
9.1 机器学习模型概览 122
9.1.1 线性回归 122
9.1.2 K近邻算法(KNN) 123
9.1.3 朴素贝叶斯方法 123
9.1.4 判别分析 124
9.1.5 支持向量机 124
9.1.6 人工神经网络 125
9.1.7 决策树 125
9.1.8 随机森林 126
9.1.9 梯度下降法 127
9.2 mlr3工作流简介 127
9.2.1 环境配置 127
9.2.2 任务定义 128
9.2.3 学习器选择 130
9.2.4 训练与预测 131
9.3 基于mlr3的模型筛选 134
第 10章 参数调节 136
10.1 指定终止搜索条件 136
10.2 设置指定参数组合 138
10.3 范围内网格搜索 139
10.4 范围内随机搜索 140
第 11章 模型分析 142
11.1 变量重要性评估 142
11.2 变量影响作用分析 146
11.3 基于个案的可加性归因方法 149
第 12章 集成学习 152
12.1 集成学习的三种策略 152
12.1.1 装袋法简介 152
12.1.2 提升法简介 152
12.1.3 堆叠法简介 153
12.2 基于caret与caretEnsemble框架的集成学习实现 153
12.2.1 环境部署 153
12.2.2 数据准备 153
12.2.3 装袋法 154
12.2.4 提升法 155
12.2.5 堆叠 156
第 13章 实践案例一:基于caret包对泰坦尼克号乘客存活率进行二分类预测 161
13.1 工具简介 161
13.2 问题背景 162
13.3 数据审视 162
13.4 特征工程 163
13.5 数据划分 164
13.6 模型训练 165
13.7 模型的预测与评估 165
13.8 超参数调节 166
第 14章 实践案例二:基于mlr框架对波士顿房价进行回归预测 169
14.1 工具简介 169
14.2 问题背景 169
14.3 数据审视与预处理 170
14.4 任务定义 174
14.5 建模与调参 174
14.6 模型表现比较 181
14.7 进一步的参数调节 183
14.8 模型解释 184
第 15章 实践案例三:基于mlr3框架对皮马印第安人糖尿病数据集进行特征筛选 187
15.1 工具简介 187
15.2 问题背景 187
15.3 去除冗余特征 188
15.4 特征重要性排序 190
15.5 利用封装法对特征进行筛选 191
第 16章 实践案例四:基于tidymodels框架对鸢尾花进行多分类预测 193
16.1 工具简介 193
16.2 问题背景 193
16.3 数据集划分 194
16.4 数据预处理 195
16.5 指定重采样方法 196
16.6 模型定义与调参 197
16.7 观察模型在测试集的表现 199