本书共11章。第1章介绍如何创建一个可用的R环境和基本的R命令;第2章讲述如何使用R语言进行探索性数据分析;第3章重点探讨数据采样和概率分布的概念;第4章探讨因变量和解释变量集合之间的线性关系;第5章介绍基于树的分类器:K近邻分类器、逻辑回归分类器以及朴素贝叶斯分类器;第6章神经网络和支持向量机;第7章展示一些模型评估的方法;第8章探讨集成分类器;第9章讲述多种聚类算法;第10章介绍关联分析和序列挖掘;第11章介绍如何从原始变量中选择和抽取特征;第12章讨论大数据分析(R和Hadoop)。
Abut the Auther 作 者 简 介Yu-Wei,Chiu (David Chiu)是LargitData公司(www.LargitData.com)的创始人。David曾是Trend Micro公司的软件工程师,负责构建商务智能大数据平台以及客户关系管理系统。除了是一名创业者和数据科学家之外,David还专注于利用Spark和Hadoop来处理海量数据,并使用数据挖掘技术来进行数据分析。他还是一名专业的讲师,在很多会议上做过关于Python、R以及Hadoop方面的技术报告。
2013年,Yu-Wei审读了《Bioinformatics with R Cookbook》(Packt出版社)。更多内容请参考他的个人网站www.ywchiu.com。
我要衷心感谢我的家人和朋友,是他们支持和鼓励我完成了本书。我要诚挚地向我母亲Ming-Yang Huang(Miranda Huang)、我的良师Man-Kwan Shan、本书的校对Brendan Fisher,中国台湾的R用户组,数据科学项目(Data Science Program,DSP),以及其他支持过我的朋友表示感谢。
目 录 Contents
译者序
前言
作者简介
审校者简介
第1章 基于R实践机器学习 1
1.1 简介 1
1.2 下载和安装R 3
1.3 下载和安装RStudio 10
1.4 包的安装和加载 13
1.5 数据读写 15
1.6 使用R实现数据操作 18
1.7 应用简单统计 22
1.8 数据可视化 25
1.9 获取用于机器学习的数据集 28
第2章 挖掘RMS Titanic数据集 32
2.1 简介 32
2.2 从CSV文件中读取Titanic数据集 33
2.3 根据数据类型进行转换 36
2.4 检测缺失值 38
2.5 插补缺失值 40
2.6 识别和可视化数据 43
2.7 基于决策树预测获救乘客 50
2.8 基于混淆矩阵验证预测结果的性 53
2.9 使用ROC曲线评估性能 55
第3章 R和统计 58
3.1 简介 58
3.2 理解R中的数据采样 59
3.3 在R中控制概率分布 59
3.4 在R中进行一元描述统计 64
3.5 在R中进行多元相关分析 67
3.6 进行多元线性回归分析 69
3.7 执行二项分布检验 71
3.8 执行t检验 73
3.9 执行Kolmogorov-Smirnov检验 76
3.10 理解Wilcoxon秩和检验及Wilcoxon符号秩检验 78
3.11 实施皮尔森卡方检验 80
3.12 进行单因素方差分析 82
3.13 进行双因素方差分析 85
第4章 理解回归分析 90
4.1 简介 90
4.2 调用lm函数构建线性回归模型 90
4.3 输出线性模型的特征信息 93
4.4 使用线性回归模型预测未知值 94
4.5 生成模型的诊断图 96
4.6 利用lm函数生成多项式回归模型 98
4.7 调用rlm函数生成稳健线性回归模型 99
4.8 在SLID数据集上研究线性回归案例 101
4.9 基于高斯模型的广义线性回归 107
4.10 基于泊松模型的广义线性回归 109
4.11 基于二项模型的广义线性回归 111
4.12 利用广义加性模型处理数据 112
4.13 可视化广义加性模型 114
4.14 诊断广义加性模型 116
第5章 分类I——树、延迟和概率 119
5.1 简介 119
5.2 准备训练和测试数据集 119
5.3 使用递归分割树建立分类模型 121
5.4 递归分割树可视化 124
5.5 评测递归分割树的预测能力 126
5.6 递归分割树剪枝 128
5.7 使用条件推理树建立分类模型 130
5.8 条件推理树可视化 131
5.9 评测条件推理树的预测能力 132
5.10 使用k近邻分类算法 134
5.11 使用逻辑回归分类算法 137
5.12 使用朴素贝叶斯分类算法 142
第6章 分类II—神经网络和SVM 146
6.1 简介 146
6.2 使用支持向量机完成数据分类 147
6.3 选择支持向量机的惩罚因子 149
6.4 实现SVM模型的可视化 152
6.5 基于支持向量机训练模型实现类预测 154
6.6 调整支持向量机 157
6.7 利用neuralnet包训练神经网络模型 161
6.8 可视化由neuralnet包得到的神经网络模型 164
6.9 基于neuralnet包得到的模型实现类标号预测 166
6.10 利用nnet包训练神经网络模型 168
6.11 基于nnet包得到的模型实现类标号预测 170
第7章 模型评估 173
7.1 简介 173
7.2 基于k折交叉验证方法评测模型性能 173
7.3 利用e1071包完成交叉验证 175
7.4 利用caret包完成交叉检验 176
7.5 利用caret包对变量重要程度排序 177
7.6 利用rminer包对变量重要程度排序 180
7.7 利用caret包找到高度关联的特征 181
7.8 利用caret包选择特征 182
7.9 评测回归模型的性能 187
7.10 利用混淆矩阵评测模型的预测能力 189
7.11 利用ROCR评测模型的预测能力 191
7.12 利用caret包比较ROC曲线 193
7.13 利用caret包比较模型性能差异 196
第8章 集成学习 199
8.1 简介 199
8.2 使用bagging方法对数据分类 200
8.3 基于bagging方法进行交叉验证 203
8.4 使用boosting方法对数据分类 204
8.5 基于boosting方法进行交叉验证 207
8.6 使用gradient boosting方法对数据分类 208
8.7 计算分类器边缘 213
8.8 计算集成分类算法的误差演变 216
8.9 使用随机森林方法对数据分类 218
8.10 估算不同分类器的预测误差 223
第9章 聚类 226
9.1 简介 226
9.2 使用层次聚类处理数据 227
9.3 将树分成簇 231
9.4 使用k均值方法处理数据 234
9.5 绘制二元聚类图 237
9.6 聚类算法比较 239
9.7 从簇中抽取轮廓信息 241
9.8 获得优化的k均值聚类 242
9.9 使用密度聚类方法处理数据 244
9.10 使用基于模型的聚类方法处理数据 248
9.11 相异度矩阵的可视化 251
9.12 使用外部验证评估聚类效果 253
第10章 关联分析和序列挖掘 256
10.1 简介 256
10.2 将数据转换成事务数据 257
10.3 展示事务及关联 258
10.4 使用Apriori规则完成关联挖掘 261
10.5 去掉冗余规则 266
10.6 关联规则的可视化 267
10.7 使用Eclat挖掘频繁项集 270
10.8 生成时态事务数据 273
10.9 使用cSPADE挖掘频繁时序模式 276
第11章 降维 279
11.1 简介 279
11.2 使用FSelector完成特征筛选 280
11.3 使用PCA进行降维 283
11.4 使用scree测试确定主成分数 287
11.5 使用Kaiser方法确定主成分数 289
11.6 使用主成分分析散点图可视化多元变量 290
11.7 使用MDS进行降维 293
11.8 使用SVD进行降维 297
11.9 使用SVD进行图像压缩 299
11.10 使用ISOMAP进行非线性降维 302
11.11 使用局部线性嵌入法进行非线性降维 306
第12章 大数据分析(R和Hadoop) 310
12.1 简介 310
12.2 准备RHadoop环境 311
12.3 安装rmr2 314
12.4 安装rhdfs 315
12.5 在rhdfs中操作HDFS 316
12.6 在RHadoop中解决单词计数问题 318
12.7 比较R MapReduce程序和标准R程序的性能差别 320
12.8 测试和调试rmr2程序 321
12.9 安装plyrmr 323
12.10 使用plyrmr处理数据 324
12.11 在RHadoop中实施机器学习 327
12.12 在Amazon EMR环境中配置RHadoop机群 330
附录A R和机器学习的资源 335
附录B Titanic幸存者的数据集 337