内容简介
本书共分为14章,重点探讨了数据预处理的方法,包括数据获取、筛选、重构、建模、平滑以及降维,本书还介绍了分类和聚类等几种主要的数据分析方法,zui后探讨了网络数据、时序数据、空间数据及社交媒体数据等一些特殊类型数据的分析处理。
目录
译者序
前言
第1章 你好,数据! 1
1.1 导入一个大小合适的文本文件 2
1.2 文本文件编译测试平台 5
1.3 导入文本文件的子集 6
1.4 从数据库中导入数据 8
1.4.1 搭建测试环境 9
1.4.2 MySQL和MariaDB 11
1.4.3 PostgreSQL 15
1.4.4 Oracle数据库 17
1.4.5 访问ODBC数据库 22
1.4.6 使用图形化用户面连接数据库 23
1.4.7 其他数据库后台 24
1.5 从其他统计系统导入数据 25
1.6 导入Excel电子表格 26
1.7 小结 26
第2章 从Web获取数据 28
2.1 从Internet导入数据集 29
2.2 其他流行的在线数据格式 32
2.3 从HTML表中读取数据 37
2.4 从其他在线来源获取数据 39
2.5 使用R包与数据源API交互 42
2.5.1 Socrata的开源数据API 43
2.5.2 金融API 44
2.5.3 使用Quandl获取时序数据 45
2.5.4 Google文档和统计数据 46
2.5.5 在线搜索的发展趋势 47
2.5.6 天气历史数据 48
2.5.7 其他在线数据源 49
2.6 小结 49
第3章 数据筛选和汇总 50
3.1 去掉多余的数据 50
3.1.1 快速去掉多余数据 52
3.1.2 快速去掉多余数据的其他方法 53
3.2 聚集 54
3.2.1 使用基础的R命令实现快速聚集 55
3.2.2 方便的辅助函数 56
3.2.3 高性能的辅助函数 57
3.2.4 使用data.table完成聚集 59
3.3 测试 59
3.4 汇总函数 62
3.5 小结 64
第4章 数据重构 65
4.1 矩阵转置 65
4.2 基于字符串匹配实现数据筛选 66
4.3 数据重排序 67
4.4 dplyr包和data.table包的比较 70
4.5 创建新变量 70
4.5.1 内存使用分析 71
4.5.2 同时创建多个变量 72
4.5.3 采用dplyr包生成新变量 73
4.6 数据集合并 74
4.7 灵活地实现数据整形 76
4.7.1 将宽表转换为长表 77
4.7.2 将长表转换为宽表 78
4.7.3 性能调整 80
4.8 reshape包的演变 80
4.9 小结 81
第5章 建模 82
5.1 多元模型的由来 83
5.2 线性回归及连续预测变量 83
5.2.1 模型解释 83
5.2.2 多元预测 85
5.3 模型假定 87
5.4 回归线的拟合效果 90
5.5 离散预测变量 92
5.6 小结 95
第6章 线性趋势直线外的知识 96
6.1 工作流建模 96
6.2 逻辑回归 97
6.2.1 数据思考 100
6.2.2 模型拟合的好处 101
6.2.3 模型比较 102
6.3 计数模型 102
6.3.1 泊松回归 103
6.3.2 负二项回归 107
6.3.3 多元非线性模型 107
6.4 小结 115
第7章 非结构化数据 116
7.1 导入语料库 116
7.2 清洗语料库 118
7.3 展示语料库的高频词 121
7.4 深度清洗 121
7.4.1 词干提取 122
7.4.2 词形还原 124
7.5 词条关联说明 124
7.6 其他一些度量 125
7.7 文档分段 126
7.8 小结 128
第8章 数据平滑 129
8.1 缺失值的类型和来源 129
8.2 确定缺失值 130
8.3 忽略缺失值 131
8.4 去掉缺失值 134
8.5 在分析前或分析中筛选缺失值 136
8.6 填补缺失值 136
8.6.1 缺失值建模 138
8.6.2 不同填补方法的比较 140
8.6.3 不处理缺失值 141
8.6.4 多重填补 141
8.7 异常值和孤立点 141
8.8 使用模糊方法 144
8.9 小结 146
第9章 从大数据到小数据 147
9.1 充分性测试 148
9.1.1 正态性 148
9.1.2 多元变量正态性 149
9.1.3 变量间的依赖关系 152
9.1.4 KMO和Barlett检验 154
9.2 主成分分析 157
9.2.1 PCA算法 158
9.2.2 确定成分数 159
9.2.3 成分解释 161
9.2.4 旋转方法 164
9.2.5 使用PCA检测孤立点 167
9.3 因子分析 170
9.4 主成分分析和因子分析 172
9.5 多维尺度分析 173
9.6 小结 176
第10章 分类和聚类 177
10.1 聚类分析 178
10.1.1 层次聚类 178
10.1.2 确定簇的理想个数 181
10.1.3 k均值聚类 183
10.1.4 可视化聚类 185
10.2 潜类别模型 186
10.2.1 潜类别分析 187
10.2.2 LCR模型 189
10.3 判别分析 189
10.4 逻辑回归 192
10.5 机器学习算法 194
10.5.1 k近邻算法 195
10.5.2 分类树 197
10.5.3 随机森林 200
10.5.4 其他算法 201
10.6 小结 203
第11章 基于R的社会网络分析 204
11.1 装载网络数据 204
11.2 网络中心性度量 206
11.3 网络数据的展现 207
11.3.1 交互网络图 210
11.3.2 绘制层次图 211
11.3.3 使用R包来解释包的依赖关系 212
11.4 更多网络分析资源 212
11.5 小结 213
第12章 时序数据分析 214
12.1 创建时序对象 214
12.2 展现时序数据 215
12.3 季节性分解 217
12.4 Holt-Winters筛选 218
12.5 自回归积分滑动平均模型 220
12.6 孤立点检测 221
12.7 更复杂的时序对象 224
12.8 高级时序数据分析 225
12.9 小结 225
第13章 我们身边的数据 226
13.1 地理编码 226
13.2 在空间中展示数据点 228
13.3 找出数据点的多边形重叠区域 230
13.4 绘制主题图 232
13.5 围绕数据点绘制多边形 233
13.5.1 等高线 234
13.5.2 冯洛诺伊图 236
13.6 卫星图 237
13.7 交互图 238
13.7.1 查询Google地图 238
13.7.2 Java脚本地图库 240
13.8 其他绘图方法 242
13.9 空间数据分析 244
13.10 小结 246
第14章 分析R社区 247
14.1 R创始团队的成员 247
14.2 R开发包的维护人员 249
14.3 R-help邮件列表 253
14.3.1 R-help邮件列表的规模 256
14.3.2 预测未来的邮件规模 258
14.4 分析用户列表的重叠部分 260
14.5 社交媒体内的R用户数 262
14.6 社交媒体中与R相关的贴子 263
14.7 小结 266
附录 267
前言/序言
Preface 前 言 自20多年前发源于学术界以来,R语言已经成为统计分析的通用语言,活跃于众多产业领域。目前,越来越多的商业项目开始使用R,兼之R用户开发了数以千计易于上手的开发包,都使得R成为数据分析工程师及科学家最常用的工具。 本书将帮助读者熟悉R语言这一开源生态系统,并介绍一些基本的统计背景知识,以及一小部分相关的数学知识。我们将着重探讨使用R语言解决实际的问题。 由于数据科学家在数据的采集、清洗及重构上将耗费大量时间,因此本书首先将通过第一手实例来重点探讨从文件、数据库以及在线资源中导入数据的方法,然后再介绍数据的重构和清洗——不包含实际的数据分析,最后几章将对一些特殊的数据类型以及经典的统计模型和部分机器学习算法进行说明。 本书主要内容第1章从与所有数据相关项目都有关的关键性的第一步——从文本文件和数据库中导入数据开始。重点探讨使用优化的CSV分析器把数据载入R,预筛选数据,并对不同数据库后台对R的支持能力进行比较。 第2章介绍如何使用面向Web服务和API通信的包实现数据的导入,包括如何从主页上整理和抽取数据。还将对处理XML和JSON格式数据进行概括性说明。 第3章继续介绍基础的数据处理知识,包括多种数据筛选和聚集,并对data.table和dplyr这两个常见开发包在性能和使用语法方面进行比较。 第4章介绍更多有关复杂数据类型的转换方法,相关函数包括处理数据子集、数据合并、长宽表数据格式到适合用户需要的工作流源数据格式之间的转换等。 第5章开始介绍真实的统计模型,包括回归的概念、常用回归模型等。这一章篇幅不长,还介绍了模型测试的方法以及基于真实数据集如何解释某个多元线性回归模型结果。 第6章在前述章节的基础上,探讨了预测变量的非线性关联,以及诸如逻辑回归和泊松回归等广义线性模型的样例。 第7章介绍一些新的非结构化数据类型,读者将通过实践文本挖掘算法及对结果的可视化处理,了解使用统计模型来处理类似这样一些非结构化数据的方法。 第8章探讨有关原始数据集的另一个常见问题。大多数时候,数据科学家需要处理脏数据,包括去掉错误数据、孤立点以及其他不正确的值,同时又要将缺失值带来的影响降到最低。 第9章介绍如何从大数据中进行特征提取,假设我们已经装载了一个干净的数据集,并且完成了格式转换,当我们开始处理高维变量时,需要采用一些统计方法来进行降维以及其他包括主成分分析、因子分析和多维尺度分析等方法完成连续变量的转换。 第10章讨论使用监督及非监督统计和机器学习方法来处理样本分组问题。这些方法包括层次聚类、k均值聚类、潜类别模型、判别分析、逻辑回归和k近邻算法,以及分类树和回归树。 第11章重点探讨一类特殊的数据结构,包括其基本概念以及可视化网络分析技术,igraph包是该章的重点。 第12章展示如何通过平滑、季节性分解以及ARIMA等方法处理分析时间-日期数据及其相关值,同时还将讨论有关预测和孤立点检测等技术。 第13章探讨一类重要的数据维度——空间维,重点会放在通过主题图、交互图、等高线和冯洛诺伊图完成空间数据的可视化。 第14章提供了一个更完整的样例,该样例中包含了很多前述章节中提到的方法来帮助读者复习这本书所学习到的主要内容,以及应对未来工作中可能遇到的问题和困难。 附录给出了R语言的帮助索引,以及对前述章节中涉及内容的补充阅读。 阅读准备本书所展示的代码都应该在R控制台内运行,读者需要事先安装好R,可以从http://r-project.org下载免费软件以及为所有主流操作系统准备的安装指南。 本书并不会探讨其他更深入的内容,例如在集成开发环境(Integrated Development Environment IDE)下使用R的方法,尽管IDE为诸如Emacs、Eclipse、vi、NotePad++都提供了非常棒的插件和扩展。当然,我们还是建议读者能够使用RStudio,这是一个为R开发的开源免费IDE,访问地址为https://www.rstudio.com/products/RStudio。 除了基础的R包,我们还会使用到部分用户自己提供的R包,它们大多都可以很容易地从R综合典藏网(Comprehensive R Archive Network,CRAN)处下载安装。附录中列出了本书用到的开发包以及多个版本。 如果要从CRAN安装包,读者要确保网络通畅。假如要下载二进制文件,可以在R控制台调用install.packages命令: 本书中所提到的部分包在CRAN上下载不了,但也许可以从Bitbucket或者GitHub处找到安装文件,然后再通过调用devtools包的install_bitbucket和install_github函数完成安装。Windows用户则需首先从https://cran.r-project.org/bin/windows/Rtools处安装rtools包。 安装完毕后,我们应该在使用包之前先将其装载到R会话中,附录中列出了所有包的目录,而每一章的一开始则对相关的源码和R命令做了介绍: 我们极力建议读者下载安装本书的样例源码(可以参考前言的“样例源码下载”小节),这样读者就可以在R控制台很容易地复制和粘贴相关命令,而不需要再按照书中文字输入代码。 如果读者之前没用过R语言,最好能够先从R主页上阅读一些免费的介绍性文章和帮助手册,本书附录中也列出了一些推荐阅读材料。 读者人群如果你是数据科学家或者是R开发人员,希望更多地了解有关R的高级功能及工具,那么这本书就是为你而写。本书希望读者已经具备基础的R语言知识,了解数据库的逻辑。如果你是数据科学家、工程师或分析师,希望提高自己对R语言的开发能力,那么这本书也适合你。尽管需要掌握一些基本的R知识,本书还是为你提供了相关参考文档,能够帮助你快速进入角色并掌握相关技术。 本书约定本书中任何将在R控制台输入或输出的命令行将采用如下格式: 符号“>”有提示的意思,指此处R控制台正在等待要输入执行的命令。如果命令长度超过一行,则第一行还是用“>”开头,但剩下的其余行都要在行首添加符号“+”,代表该行不是一个完整的命令(例如,缺圆括号或引号)。命令的输出不需要增加任何首字母,字体采用和输入文本相同的等宽字体。 新出现的术语和重要的文字将用粗体表示。 警告或重要提示将跟在这样的符号后面。 小窍门或诀窍将跟在这样的符号后面。 样例源码下载你可以从http://www.packtpub.com通过个人账号下载你所购买书籍的样例源码。如果你是从其他途径购买的,可以访问http://www.packtpub.com/support,完成账号注册,就可以直接通过邮件方式获得相关文件。 你也可以访问华章图书官网:http://www.hzbook.com,通过注册并登录个人账号,下载本书的源代码。 下载书中彩图我们还为读者准备了一个PDF文件,该文件包含了本书所有截图和样图,可以更好地帮助读者理解输出的变化。你可以从以下地址下载: http://www.packtpub.com/sites/default/files/downloads/1234OT_ColorImages.pdf The Translator’s Words?译 者 序R语言在数据分析与机器学习领域已经成为一款重要的工具,根据Tiobe、PyPL以及Redmonk等编程语言的人气排名结果显示,它所受到的关注程度正在快速提升,并成为统计领域最具人气的语言选项。了解并掌握R语言的编程开发,也就意味着我们能够更高效地分析和处理数据。 位于英国伯明翰的Packt公司是世界上发展最快、产品最丰富的技术书籍出版商之一,本书是Packt公司近年推出的又一本技术力作,全书一共分为14章,重点探讨了数据预处理的方法,包括数据获取、筛选、重构、建模、平滑以及降维,本书还介绍了分类和聚类等几种主要的数据分析方法,以及网络数据、时序数据、空间数据及社交媒体数据等一些特殊类型数据的分析处理。本书以数据科学家、R开发人员和具备基础R语言知识的工程师为目标读者,通过阅读本书,读者能够更多地了解有关R的高级功能及工具,同时提高R语言的开发能力。为了照顾初学者,尽管作者没有过多地介绍R语言的基本知识,但依然很贴心地提供了相关的参考资料,以帮助读者快速进入角色并掌握相关技术。 本书作者盖尔盖伊?道罗齐(Gergely Daróczi)是一位狂热的R用户及开发人员,也是rapporter.net网站的创始人及CTO,现就职于洛杉矶的www.card.com网站,担任首席R语言开发及研究的数据专家。受作者自身的研究背景影响,本书花了相当多的篇幅分析在数据预处理环节开发人员可能遇到的各类问题,并给出了多种经过实践证明的解决方案。书中所有源代码和实验数据在华章网站(www.hzbook.com)上都可以免费下载,相信阅读完本书并亲自动手实践完成所有案例方法后,读者将对在数据科学领域应用R语言有更深入的了解,也将对数据处理及分析有更多的领悟及体会。 本书能够得以出版,要感谢机械工业出版社的缪杰和何欣阳编辑,他们在翻译过程中给予了我很多建设性的指导意见。其次,还要感谢吴怡编辑,是她让我与机械工业出版社结缘。 由于教学科研需要,译者很早就已经接触了R语言,之前翻译《机器学习与R语言实战》一书,也让我获益匪浅,但由于学科发展速度日新月异,在翻译过程中我仍然遇到了一些问题,尽管在此期间我查阅了大量的文献及网络资源,并逐字逐句地对译稿进行了反复推敲和琢磨,但还是不可避免地存在错误和疏漏之处,还望各位读者不吝指正。 潘怡2016年8月
R语言数据分析 电子书 下载 mobi epub pdf txt