
数据挖掘技术是当下大数据时代最关键的技术,其应用领域及前景不可估量。R 是一款极其优秀的统计分析和数据挖掘软件,本书侧重使用R 进行数据挖掘,重点讲述了R 的数据挖掘流程、算法包的使用及相关工具的应用,同时结合大量精选的数据挖掘实例对R 软件进行深入潜出和全面的介绍,以便读者能深刻理解R 的精髓并能快速、高效和灵活地掌握使用R 进行数据挖掘的技巧。 通过本书,读者不仅能掌握使用R 及相关的算法包来快速解决实际问题的方法,而且能得到从实际问题分析入手,到利用R 进行求解,以及对挖掘结果进行分析的全面训练。
前 言 在大数据时代,数据挖掘无疑将是最炙手可热的技术,数据挖掘的理论和方法正日新月异地发展,数据挖掘的技术及工具,已经渗透到互联网、金融、电商、管理、生产、决策等各个领域,数据挖掘的软件也是层出不穷,其中R是最引人关注的软件。 R是一个免费的开源软件,它提供了首屈一指的统计计算和绘图功能,尤其是大量的数据挖掘方面的算法包,使得它成为一款优秀的、不可多得的数据挖掘工具软件。 本书的主要目的是向读者介绍如何用R进行数据挖掘,通过大量的精选实例,循序渐进、全面系统地讲述R在数据挖掘领域的应用。 全书以数据预处理、基本算法及应用和高级算法及应用这三篇展开。 (1)上篇:数据预处理 由第1~5章组成,首先简要介绍数据挖掘流程、算法和工具,然后介绍R中数据分类和数据集,以及R获取数据的多种灵活的方法。最后讲述对数据进行探索性分析和预处理的方法。这些内容是使用R进行数据挖掘的最基础内容。 (2)中篇:基本算法及应用 由第6~9章组成,主要讲述数据挖掘的基本算法及应用,包括关联分析、聚类分析、判别分析和决策树,这些算法也是数据挖掘使用最多最普遍的算法。R中提供了丰富的、功能强大的算法包和实现函数,数据挖掘的初级和中级用户务必掌握。 (3)下篇:高级算法及应用 由第10~14章组成,主要讲述数据挖掘的高级算法及应用,包括集成学习、随机森林、支持向量机和神经网络,以及使用R中的工具对数据挖掘的模型进行评估与选择。对于中高级的用户,可以深入学习一下本章内容。 R的特点是入门非常容易,使用也非常简单,因此本书不需要读者具备R和数据挖掘的基础知识。不管是R初学者,还是熟练的R用户都能从书中找到对自己有用的内容,快速入门和提高。读者既可以把本书作为学习如何应用R的一本优秀的教材,也可以作为数据挖掘的工具书。 全书以实际问题、解决方案和对解决方案的讨论为主线来组织内容,脉络清晰,并且各章自成体系。读者可以从头至尾逐章学习,也可以根据自己的需要进行学习,根据自己在实际中遇到的问题寻找解决方案。 本书所编写的源程序,都通过了反复调试,读者可在www.broadview.com.cn网站下载,方便读者使用。 本书主要由黄文、王正林编写,其他参与编写的人员有付东旭、王思琪、钟太平、刘拥军、陈菜枚、李灿辉、钟事沅、王晓丽、王龙跃、夏路生、钟颂飞、钟杜清、王殿祜等。在此对所有参与编写的人员表示感谢!对关心、支持我们的读者表示感谢! 由于时间仓促,作者水平和经验有限,书中错漏之处在所难免,敬请读者指正,我们的电子邮箱是:wa_2003@126.com。 编 者 2014年4月18日于北京
第1 章 目 录 第0 章 致敬,R! ............................................................................. 1 致敬,肩膀!.................... 1 致敬,时代!.................... 3 致敬,人才!.................... 4 致敬,R 瑟! .................... 5 上篇 数据预处理 第1 章 数据挖掘导引.......10 1.1 数据挖掘概述........10 1.1.1 数据挖掘的过程.....................................................10 1.1.2 数据挖掘的对象.....................................................12 1.1.3 数据挖掘的方法.....................................................12 1.1.4 数据挖掘的应用.....................................................13 1.2 数据挖掘的算法....14 1.3 数据挖掘的工具....17 1.3.1 工具的分类17 1.3.2 工具的选择18 1.3.3 商用的工具19 1.3.4 开源的工具21 1.4 R 在数据挖掘中的优势......................................................23 数据挖掘:R 语言实战 VI 第2 章 数据概览.................25 2.1 n×m 数据集............25 2.2 数据的分类............28 2.2.1 一般的数据分类.....................................................28 2.2.2 R 的数据分类..........................................................29 2.2.3 用R 简单处理数据................................................31 2.3 数据抽样及R 实现34 2.3.1 简单随机抽样..........................................................34 2.3.2 分层抽样....36 2.3.3 整群抽样....38 2.4 训练集与测试集....40 2.5 本章汇总.................40 第3 章 用R 获取数据......42 3.1 获取内置数据集....42 3.1.1 datasets 数据集........................................................42 3.1.2 包的数据集43 3.2 获取其他格式的数据..........................................................45 3.2.1 CSV 与TXT 格式...................................................45 3.2.2 从Excel 直接获取数据.........................................47 3.2.3 从其他统计软件中获取数据................................48 3.3 获取数据库数据....50 3.4 获取网页数据........52 3.5 本章汇总.................55 第4 章 探索性数据分析...56 4.1 数据集.....................56 4.2 数字化探索............57 4.2.1 变量概况....57 4.2.2 变量详情....58 4.2.3 分布指标....61 4.2.4 稀疏性........62 4.2.5 缺失值........63 4.2.6 相关性........65 4.3 可视化探索............68 4.3.1 直方图........68 目 录 VII 4.3.2 累积分布图71 4.3.3 箱形图........73 4.3.4 条形图........78 4.3.5 点阵图........81 4.3.6 饼图............82 4.5 本章汇总.................84 第5 章 数据预处理............86 5.1 数据集加载............86 5.2 数据清理.................88 5.2.1 缺失值处理90 5.2.2 噪声数据处理..........................................................95 5.2.3 数据不一致的处理.................................................97 5.3 数据集成.................99 5.4 数据变换...............101 5.5 数据归约...............102 5.6 本章汇总...............104 中篇 基本算法及应用 第6 章 关联分析...............106 6.1 概述........................106 6.2 R 中的实现...........109 6.2.1 相关软件包............................................................109 6.2.2 核心函数...109 6.2.3 数据集......110 6.3 应用案例...............111 6.3.1 数据初探...111 6.3.2 对生成规则进行强度控制..................................112 6.3.3 一个实际应用........................................................114 6.3.4 改变输出结果形式...............................................115 6.3.5 关联规则的可视化...............................................116 6.4 本章汇总...............120 第7 章 聚类分析...............121 7.1 概述........................121 7.1.1 K-均值聚类............................................................122 数据挖掘:R 语言实战 VIII 7.1.2 K-中心点聚类........................................................122 7.1.3 系谱聚类...122 7.1.4 密度聚类...124 7.1.5 期望最大化聚类...................................................125 7.2 R 中的实现...........126 7.2.1 相关软件包............................................................126 7.2.2 核心函数...127 7.2.3 数据集......129 7.3 应用案例...............131 7.3.1 K-均值聚类............................................................131 7.3.2 K-中心点聚类........................................................135 7.3.3 系谱聚类...137 7.3.4 密度聚类...140 7.3.5 期望最大化聚类...................................................145 7.4 本章汇总...............150 第8 章 判别分析...............151 8.1 概述........................151 8.1.1 费希尔判别............................................................152 8.1.2 贝叶斯判别............................................................153 8.1.3 距离判别...153 8.2 R 中的实现...........154 8.2.1 相关软件包............................................................154 8.2.2 核心函数...155 8.2.3 数据集......157 8.3 应用案例...............161 8.3.1 线性判别分析........................................................161 8.3.2 朴素贝叶斯分类...................................................167 8.3.3 K 最近邻...172 8.3.4 有权重的K 最近邻算法.....................................174 8.4 推荐系统综合实例............................................................175 8.4.1 kNN 与推荐...........................................................176 8.4.2 MovieLens 数据集说明.......................................176 8.4.3 综合运用...177 8.5 本章汇总...............182 目 录 IX 第9 章 决策树...................183 9.1 概述........................183 9.1.1 树形结构...183 9.1.2 树的构建...184 9.1.3 常用算法...185 9.2 R 中的实现...........185 9.2.1 相关软件包............................................................185 9.2.2 核心函数...186 9.2.3 数据集......187 9.3 应用案例...............190 9.3.1 CART 应用.............................................................191 9.3.2 C4.5 应用..202 9.4 本章汇总...............205 下篇 高级算法及应用 第10 章 集成学习............208 10.1 概述.....................208 10.1.1 一个概率论小计算.............................................208 10.1.2 Bagging 算法.......................................................209 10.1.3 AdaBoost 算法.....................................................209 10.2 R 中的实现.........209 10.2.1 相关软件包..........................................................209 10.2.2 核心函数210 10.2.3 数据集....210 10.3 应用案例.............213 10.3.1 Bagging 算法.......................................................213 10.3.2 Adaboost 算法.....................................................218 10.4 本章汇总.............219 第11 章 随机森林............220 11.1 概述......................220 11.1.1 基本原理.220 11.1.2 重要参数.222 11.2 R 中的实现.........223 11.2.1 相关软件包..........................................................223 数据挖掘:R 语言实战 X 11.2.2 核心函数.223 11.2.3 可视化分析..........................................................231 11.3 应用案例.............232 11.3.1 数据处理.233 11.3.2 建立模型.234 11.3.3 结果分析.235 11.3.4 自变量的重要程度.............................................236 11.3.5 优化建模.237 11.4 本章汇总.............241 第12 章 支持向量机.......242 12.1 概述.....................242 12.1.1 结构风险最小原理.............................................243 12.1.2 函数间隔与几何间隔.........................................244 12.1.3 核函数....245 12.2 R 中的实现.........245 12.2.1 相关软件包..........................................245 12.2.2 核心函数246 12.2.3 数据集....248 12.3 应用案例.............248 12.3.1 数据初探249 12.3.2 建立模型249 12.3.3 结果分析249 12.3.4 预测判别250 12.3.5 综合建模251 12.3.6 可视化分析..........................................................252 12.3.7 优化建模254 12.4 本章汇总.............256 第13 章 神经网络............257 13.1 概述.....................257 13.2 R 中的实现.........258 13.2.1 相关软件包..........................................................258 13.2.2 核心函数258 13.3 应用案例.............261 13.3.1 数据初探261 目 录 XI 13.3.2 数据处理262 13.3.3 建立模型263 13.3.4 结果分析264 13.3.5 预测判别264 13.3.6 模型差异分析......................................................266 13.3.7 优化建模268 13.4 本章汇总.............272 第14 章 模型评估与选择.............................................................273 14.1 评估过程概述....273 14.2 安装Rattle 包....274 14.3 Rattle 功能简介..275 14.3.1 Data——选取数据..............................................275 14.3.2 Explore——数据探究........................................276 14.3.3 Test——数据相关检验......................................276 14.3.4 Transform——数据预处理...............................277 14.3.5 Cluster——数据聚类..........................................277 14.3.6 Model——模型评估...........................................277 14.3.7 Evaluate——模型评估.......................................280 14.3.8 Log——模型评估记录......................................281 14.4 模型评估相关概念..........................................................281 14.4.1 误判率....281 14.4.2 正确/错误的肯定判断、正确/错误的否定判断........................................................281 14.4.3 精确度、敏感度及特异性................................282 14.5 Rattle 在模型评估中的应用..........................................282 14.5.1 混淆矩阵282 14.5.2 风险图....283 14.5.3 ROC 图及相关图表............................................286 14.5.4 模型得分数据集.................................................287 14.6 综合实例.............288 14.6.1 数据介绍288 14.6.2 模型建立288 14.6.3 模型结果分析......................................................289 数据挖掘:R 语言实战 XII