本书主要分为三个部分,基础篇、建模应用篇和Rattle篇。基础篇(第1~5章)介绍了有关R语言的安装与使用、R语言中的数据结构、常用操作和绘图功能等基础功能。建模应用篇(第6~10章)主要介绍了目前在数据挖掘中的常用的建模方法在R语言中的实现函数,并对输出结果进行了解释,有助于读者快速掌握应用R语言进行分析挖掘建模的方法。Rattle篇(第11章)介绍了一个R语言的图形界面工具。图书配套提供了程序代码及数据,读者可通过上机实验,快速掌握书中所介绍的R语言的使用方法。
公认*威教材,数据挖掘资深专家10余年大数据挖掘与实施经验结晶。华南师范大学、广东工业大学、广西科技大学等20余所大学选为教材,附赠源代码,配有教学PPT和上机实验
10余位数据挖掘领域资深专家和科研人员,10余年大数据挖掘咨询与实施经验结晶。
为零基础R语言与数据挖掘教学和自学量身打造,系统讲解R语言与数据挖掘的必备知识,配有大量的上机实验、源代码和教学PPT资源。
为什么要写本书R语言是什么?R是一种适用于统计分析计算和图像处理的语言,受S语言和Scheme语言影响发展而来。早期R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不做任何修改地在R环境下运行。R的语法来自Scheme,作为一款诞生于20世纪90年代的语言,R已经成为S统计编程语言的一类实现方式。
R编程语言在数字分析与机器学习领域已经成为一款重要的工具。随着机器逐步成为愈发核心的数据生成器,该语言的人气也一路攀升。正如Tiobe、PyPL以及Redmonk等编程语言人气排名所指出,R语言所受到的关注程度正在快速提升。Rexer Analytics发布的2013年数据挖掘人员调查显示,70%的数据挖掘人员使用R软件进行分析工作,其中有24%将其作为主要工具。这些结果类似于 2013 年KDnuggets调查的结果,该调查指出有61%的响应者表示正在使用R处理分析、数据挖掘和数据科学工作。相比前一年,这一比例上升了16%。
R语言有一些明显的优势:
1)R语言作为一款开源软件,是完全免费的,对比昂贵的SPSS和SAS等统计软件,这无疑是一个巨大的优势。
2)R语言拥有一个庞大的社区来进行维护,庞大的软件包生态系统无疑是R语言最为突出的优势之一。
3)R语言具备可扩展能力且拥有丰富的功能选项,帮助开发人员构建自己的工具及方法,从而顺利实现数据分析。
4)R语言简单易学。虽与C语言之类的程序设计语言已差别很大(比如语言结构相对松散,使用变量前不需要明确正式定义变量类型等),但仍保留了程序设计语言的基础逻辑与自然的语言风格。
从R的普及来看,国外的普及度要明显好于国内,与盗版Windows的泛滥会影响Linux在中国的普及一样,破解的MATLAB与SPSS的存在也影响了R在中国的使用。但在国外高校的统计系,R几乎是一门必修的语言,具有统治性的地位。在工业界,作为互联网公司翘楚的Google内部也有不少工程使用R进行数据分析工作。随着数据挖掘在国内的发展,国内对R语言的需求必将随之一起发展。
总的来说,R语言是一款用于统计分析、数据可视化和预测建模的数据分析软件,它不单单只是一门语言,更是一个数据计算与分析的环境。R支持几乎所有数据分析所需的数据处理、统计模型和图表,支持大量的第三方功能包,涵盖了从统计计算到机器学习,从金融分析到生物信息,从社会网络分析到自然语言处理,从各种数据库各种语言接口到高性能计算模型等内容。随着大数据时代的来临,数据挖掘将更加广泛地渗透到各行各业中去,而R语言作为数据挖掘里的热门工具,将会有更多其他行业的人加入到R语言的使用者行列中来。R语言的使用课程成为高校中数学与统计学专业的重要课程将是必然的趋势。
本书特色本书从实际应用出发,结合实例及应用场景,深入浅出地介绍了R语言应用的相关知识:R语言的安装及使用、数据对象与数据读写、常用数据管理、图形探索、高级绘图工具及常用的建模算法在R语言中的实现方式。书中以R语言的函数应用为主,先介绍了函数的应用场景及使用格式,再给出函数的应用实例,最后对函数的运行结果做出了解释,将掌握函数应用的所需知识点按照实际使用的流程展示出来。
为方便理解R语言中相关函数的使用,本书提供示例代码及所用数据等相关资源下载,读者可以从“泰迪杯”全国数据挖掘挑战赛网站(http://www.tipdm.org/ts/747.jhtml)免费获取。也可以通过热线电话(40068-40020)、企业QQ(40068-40020)及以下微信公众号咨询获取。
TipDM 张良均〈大数据挖掘产品与服务〉本书适用对象开设有数据挖掘课程的高校教师和学生。
目前国内不少高校将数据挖掘引入本科教学中,在数学、计算机、自动化、电子信息、金融等专业开设了数据挖掘技术相关的课程,但目前这一课程的教学工具仍然为SPSS、SAS等传统统计工具,并没有使用R语言作为挖掘工具。本书提供了有关R语言的从安装到使用的一系列知识,将能有效指导高校教师和学生使用R语言工具进行数据挖掘。
数据挖掘开发人员。
这类人员可以在理解数据挖掘应用需求和设计方案的基础上,结合书中提供的R语言的使用方法快速实现数据挖掘应用的编程。
进行数据挖掘应用研究的科研人员。
许多科研院所为了更好地对科研工作进行管理,纷纷开发了适应自身特点的科研业务管理系统,并在使用过程中积累了大量的科研信息数据。R语言可以提供一个优异的环境对这些数据进行挖掘分析应用。
关注高级数据分析的人员。
R语言作为一个专业的数据分析软件,能为数据分析人员提供可靠的依据。
如何阅读本书本书主要分为三个部分,基础篇、建模应用篇和Rattle篇。基础篇介绍了有关R语言的安装与使用、R语言中的数据结构、常用操作和绘图功能等基础功能。建模应用篇主要介绍了目前在数据挖掘中常用的建模方法在R语言中的实现函数,并对输出结果进行了解释,有助于读者快速掌握应用R语言进行分析挖掘建模的方法。读者可结合本书提供的示例代码及数据进行上机实验,快速掌握R语言的使用方法。
第一部分是基础篇(第1~5章),第1章主要介绍了R语言及图形操作工具RStudio的安装及使用方法,第2章对R语言中的数据类型和数据对象及不同格式的数据读入和导出R语言进行了介绍,第3章描述了R语言中对数据所能做的常用操作,包括变量的重命名、缺失值分析、排序、随机抽样等,第4、5章主要对R语言的绘图功能进行了介绍,涵盖常用图形如散点图、直方图、条形图、箱线图等,且一并介绍了一些基于R语言的可用于生成交互式图形的软件包。
第二部分是建模应用篇(第6~10章),主要对数据挖掘中常用算法的函数在R语言中的使用方法及其结果进行了介绍,涵盖了目前数据挖掘的5大类算法,包括分类与预测、聚类分析、关联规则、智能推荐和时间序列。按照从模型建立到模型评价架构的顺序进行介绍,使读者能熟练地掌握从建模到对模型评价的完整建模过程。
第三部分是Rattle篇(第11章),介绍了一个R语言的图形界面工具Rattle,此工具能够在一个图形化的界面上对本书介绍的R语言功能进行操作,使读者能更好地体验到使用R语言进行数据挖掘的整个流程。
勘误和支持除封面署名作者外,参加本书编写工作的还有黄博、陈婷婷、王路、陈玉辉、杨征、施兴、徐英刚、郑泽如、张乐儿、黄东鑫等。由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。本书内容的更新将及时在“泰迪杯”全国数据挖掘挑战赛网站上发布。读者可通过微信公众号TipDM、TipDM官网反馈有关问题。也可通过热线电话或企业QQ进行在线咨询。
致谢本书编写过程中得到了广大高校师生的大力支持,在此谨向华南农业大学、华南师范大学、广东工业大学、广东技术师范学院、华南理工大学、韩山师范学院、中山大学、贵州师范学院等单位给予支持的领导及师生致以深深的谢意。
在本书编辑和出版过程中还得到了参与“泰迪杯”全国数据挖掘挑战赛的众多师生及机械工业出版社杨福川老师无私的帮助与支持,在此一并表示感谢。
张良均,资深大数据挖掘专家,高级信息项目管理师,有近20年的大数据挖掘应用、咨询和培训经验,被称为“中国大数据挖掘培训教父”。为电信、电力、政府、互联网、生产制造、零售、银行、生物、化工、医药等多个行业上百家大型企业提供过数据挖掘应用与咨询服务,实践经验丰富。现任广东工业大学、华南师范大学、华南农业大学等6所高校兼职教授。著有《神经网络实用教程》《数据挖掘:实用案例分析》《R语言数据分析与挖掘实战》等畅销图书。
谢佳标,资深R语言专家,多次于中国R语言大会发表演讲,具有十余年的数据挖掘实战经验。目前于某上市互联网游戏公司,任高级数据分析师,负责大数据挖掘及可视化。培训过的精品课程有:《R语言基础培训》《数据分析之R语言实战》《机器学习与R语言实践》等。
万正勇,某国际投行VP,有超过10年的金融系统大数据挖掘及分析经验,超过15年的大型金融机构核心交易系统规划设计开发经验。数据库及中间件专家,先后获得中国首届十大杰出数据库工程师,Oracle 中间件 ACE Director以及 Oracle 数据库 ACE 等称号。曾为电信,电力,航空,银行,保险,互联网,交通,制造等等行业相关龙头企业提供过咨询服务。著有《衍生数学》,《Oracle数据库DBA专题技术精粹》等畅销书
前 言
第一部分 基础篇
第1章 R语言的安装与使用 2
1.1 R安装与升级 3
1.2 R使用入门 4
1.2.1 R操作界面 4
1.2.2 RStudio窗口介绍 5
1.2.3 R常用操作 6
1.3 R数据分析包 8
1.4 配套资源使用说明 10
1.5 小结 10
1.6 上机实验 10
第2章 数据对象与数据读写 12
2.1 数据类型 12
2.2 数据结构 16
2.2.1 向量 16
2.2.2 矩阵 19
2.2.3 数组 24
2.2.4 数据框 25
2.2.5 因子 28
2.2.6 列表 31
2.3 数据文件的读写 34
2.3.1 键盘输入数据 34
2.3.2 读取不同格式的数据 35
2.3.3 从其他统计软件获取数据 37
2.3.4 从数据库获取数据 37
2.3.5 从网页获取数据 39
2.4 小结 40
2.5 上机实验 40
第3章 R语言常用数据管理 42
3.1 变量的重命名 42
3.2 缺失值分析 45
3.3 数据排序 46
3.4 随机抽样 48
3.5 数值运算函数 49
3.6 字符串处理 52
3.7 文本分词 56
3.8 apply函数族 62
3.9 数据整合 65
3.10 控制流 68
3.11 函数的编写 71
3.12 小结 72
3.13 上机实验 73
第4章 图形探索 75
4.1 图形元素 76
4.1.1 颜色 76
4.1.2 点 80
4.1.3 文本 82
4.1.4 线条 86
4.1.5 图例 91
4.1.6 坐标轴 92
4.2 图形组合 94
4.3 图形保存 97
4.4 图形函数 98
4.5 小结 116
4.6 上机实验 116
第5章 高级绘图工具 117
5.1 lattice包绘图工具 117
5.1.1 绘图特色 117
5.1.2 基本图形 122
5.2 ggplot2包绘图工具 135
5.2.1 从qplot开始 135
5.2.2 ggplot作图 137
5.3 交互式绘图工具简介 142
5.3.1 rCharts包 143
5.3.2 recharts包 147
5.3.3 googleVis包 147
5.3.4 htmlwidgets包 148
5.3.5 shiny包 153
5.4 小结 163
5.5 上机实验 163
第二部分 建模应用篇
第6章 分类与预测 166
6.1 回归分析 166
6.2 决策树 175
6.2.1 C4.5算法 176
6.2.2 CART算法 178
6.2.3 C5.0算法 180
6.3 人工神经网络 181
6.4 KNN算法 183
6.5 朴素贝叶斯分类 185
6.6 其他分类与预测算法函数 187
6.7 分类与预测算法评价 192
6.8 小结 196
6.9 上机实验 196
第7章 聚类分析 198
7.1 K-Means聚类分析函数 199
7.2 层次聚类算法 204
7.3 其他聚类分析函数 207
7.4 小结 211
7.5 上机实验 212
第8章 关联规则 213
8.1 Apriori关联规则 214
8.2 小结 226
8.3 上机实验 226
第9章 智能推荐 228
9.1 智能推荐模型构建 228
9.2 智能推荐模型评价 232
9.3 小结 235
9.4 上机实验 235
第10章 时间序列 237
10.1 ARIMA模型 237
10.2 其他时间序列模型 245
10.3 小结 250
10.4 上机实验 251
第三部分 Rattle篇
第11章 可视化数据挖掘工具Rattle 254
11.1 Rattle简介及其安装 254
11.1.1 Rattle简介 254
11.1.2 Rattle安装 254
11.2 功能预览 255
11.3 数据导入 256
11.3.1 导入CSV数据 256
11.3.2 导入ARFF数据 261
11.3.3 导入ODBC数据 262
11.3.4 R Dataset——导入其他数据源 264
11.3.5 导入RData File数据集 267
11.3.6 导入Library数据 268
11.4 数据探索 269
11.4.1 数据总体概况 269
11.4.2 数据分布探索 272
11.4.3 相关性 275
11.4.4 主成分 277
11.4.5 交互图 278
11.5 数据建模 283
11.5.1 聚类分析 283
11.5.2 关联规则 288
11.5.3 决策树 291
11.5.4 随机森林 293
11.6 模型评估 296
11.6.1 混淆矩阵 296
11.6.2 风险图 296
11.6.3 ROC图及相关图表 297
11.6.4 模型得分数据集 298
11.7 小结 299
11.8 上机实验 299
参考资料 301