发表于2024-11-27
本书通过简单直观的R代码、逐渐深入的讲解以及省时省力的方法,提供了大量数据分析样例,终帮助你高效地解决各类数据问题。1章介绍了如何创建R函数,避免不必要的代码重复。你会学到如何借助R程序包在各种数据源上准备、处理和执行复杂的ETL操作。后面的章节介绍了财务数据的时间序列分析,同时还介绍了机器学习的几个热点,例如数据分类、回归、聚类、关联规则挖掘、降维等。本书的结尾中,你会学到如何解决实际问题,并能够在数据分析过程中轻松地给出解决方案。
推荐序
译者序
前言
第1章 R中的函数1
1.1引言1
1.2 创建R函数2
1.3 匹配参数3
1.4 理解环境5
1.5 使用词法域8
1.6 理解闭包10
1.7 执行延迟计算12
1.8 创建中缀操作符13
1.9 使用替代函数15
1.10 处理函数中的错误17
1.11 调试函数21
第2章 数据抽取、转换和加载28
2.1 引言28
2.2 下载公开数据28
2.3 读取和写入CSV文件31
2.4 扫描文本文件32
2.5 使用Excel文件34
2.6 从数据库中读取数据36
2.7 爬取网络数据38
2.8 获取Facebook数据44
2.9 使用twitteR49
第3章 数据预处理和准备53
3.1 引言53
3.2 重命名数据变量53
3.3 转换数据类型55
3.4 使用日期格式57
3.5 添加新的记录58
3.6 过滤数据60
3.7 舍弃数据63
3.8 合并数据64
3.9 排列数据65
3.10 重塑数据67
3.11 检测缺失数据69
3.12 估计缺失数据71
第4章 数据操作74
4.1 引言74
4.2 使用data.table加强data.frame74
4.3 使用data.table管理数据77
4.4 使用data.table执行快速聚合82
4.5 使用data.table合并大型数据集85
4.6 使用dplyr进行数据抽取和切片88
4.7 使用dplyr进行数据抽样91
4.8 使用dplyr选取列92
4.9 使用dplyr进行链式操作94
4.10 使用dplyr整理行95
4.11 使用dplyr消除重复行97
4.12 使用dplyr添加新列98
4.13 使用dplyr汇总数据99
4.14 使用dplyr合并数据102
第5章 使用ggplot2可视化数据105
5.1 引言105
5.2 使用ggplot2创建基础图形106
5.3 改变美学映射109
5.4 引入几何对象112
5.5 执行变换116
5.6 调整图形尺度118
5.7 分面120
5.8 调整主题122
5.9 组合图形124
5.10 创建地图126
第6章 制作交互式报告131
6.1 引言131
6.2 创建R Markdown报告131
6.3 学习markdown语法135
6.4 嵌入R代码块137
6.5 使用ggvis创建交互式图形140
6.6 理解基础语法143
6.7 控制坐标轴和图例148
6.8 使用尺度153
6.9 给ggvis图形添加交互154
6.10 创建R Shiny文档159
6.11 发布R Shiny报告164
第7章 概率分布模拟169
7.1 引言169
7.2 生成随机样本169
7.3 理解均匀分布171
7.4 生成二项随机变量173
7.5 生成泊松随机变量175
7.6 从正态分布中抽样177
7.7 从卡方分布中抽样183
7.8 理解学生t-分布185
7.9 从数据集中抽样187
7.10 模拟随机过程188
第8章 R中的统计推断191
8.1 引言191
8.2 获取置信区间191
8.3 执行Z-检验196
8.4 执行学生T-检验199
8.5 执行精确二项检验202
8.6 执行Kolmogorov-Smirnov检验203
8.7 使用Pearson卡方检验205
8.8 理解Wilcoxon秩和检验207
8.9 执行单因素方差分析209
8.10 执行双因素方差分析212
第9章 R语言规则和模式挖掘216
9.1 引言216
9.2 把数据转换为事务216
9.3 展示事务和关联218
9.4 使用Apriori规则挖掘关联关系220
9.5 对冗余规则剪枝223
9.6 可视化关联规则224
9.7 使用Eclat挖掘频繁项集226
9.8 使用时序信息创建事务228
9.9 使用cSPADE挖掘频繁序列模式231
第10章 R语言时间序列挖掘235
10.1 引言235
10.2 创建时间序列数据235
10.3 绘制时间序列对象238
10.4 分解时间序列241
10.5 平滑时间序列243
10.6 预测时间序列247
10.7 选取ARIMA模型251
10.8 创建ARIMA模型255
10.9 使用ARIMA模型预测257
10.10 使用ARIMA模型预测股票价格260
第11章 监督式机器学习264
11.1 引言264
11.2 使用lm拟合线性回归模型264
11.3 汇总线性模型拟合266
11.4 使用线性回归来预测未知值268
11.5 度量回归模型的性能270
11.6 执行多元回归分析272
11.7 使用逐步回归选取最优拟合回归模型274
11.8 应用高斯模型泛化线性回归276
11.9 执行逻辑斯谛回归分析277
11.10 使用递归分割树构建分类模型280
11.11 可视化递归分割树282
11.12 使用混淆矩阵度量模型性能283
11.13 使用ROCR度量预测性能285
第12章 非监督式机器学习288
12.1 引言288
12.2 使用层次聚类法对数据聚类288
12.3 切割树成聚类291
12.4 使用k-means方法对数据聚类293
12.5 使用基于密度的方法对数据聚类294
12.6 从聚类中抽取轮廓信息296
12.7 比较多种聚类方法298
12.8 使用基于密度的聚类识别数字299
12.9 使用k-means聚类方法分组相似文本文档301
12.10 使用主成分分析法进行数据降维303
12.11 使用陡坡图确定主成分数量305
12.12 使用Kaiser方法确定主成分数量306
12.13 使用双标图可视化多变元数据308
?大数据、物联网、人工智能已经变成近几年最热门的科技流行语。尽管大家用很多名词去定义这些技术,但是共通的思想是它们都是数据驱动的。人们并不满足于简单地拥有数据,因为发现其中的价值才是最本质的。因此数据科学家已经开始关注如何从原始数据中洞悉深层价值。
数据科学已经变成学术界和产业界最流行的话题。但是数据科学是一门非常宽泛的学科,学会掌握数据科学注定很有挑战性。初学者必须学习如何准备、处理、聚合和可视化数据。而更多高级技能包括机器学习,挖掘各种数据格式(文本、图像和视频),以及最重要的—使用数据产生商业价值。数据科学家的角色需要大量的努力,同时,一名成功的数据科学家也需要一个有力的工具来解决日常问题。
在这个领域中,数据科学家使用最广泛的工具是开源而且免费的R语言。作为一种机器语言,R提供了许多数据处理函数、学习库和可视化函数,允许用户快速上手分析数据。R可以帮助用户快速执行分析,并在不需要懂得复杂数学模型细节的前提下执行机器学习算法。
本书给出了实际方案,教你如何使用R语言将数据科学落地。全书共12章,每一章都分成几个简单的教程。通过每一个教程循序渐进的介绍,你可以使用R的程序包,掌握书中所教授的技术。
本书首先介绍如何创建R函数来避免不必要的代码重复。你会学到如何使用R程序包,在各种数据源上准备数据、处理数据和执行高级ETL操作。数据操作的一个例子是介绍如何使用dplyr和data.table程序包有效地处理大型数据结构。还有一章关注ggplot2,介绍如何创建高级图形,进行数据展示。你也会学到如何使用ggvis程序包构建交互式报告。
本书也会介绍如何使用数据挖掘技术发现经常一起购买的产品。后面的章节还给出了财务数据的时间序列分析结果。还有一些章节会深入介绍机器学习技术,包括数据分类、回归、聚类和降维。我可以保证,本书会让你觉得,数据科学学习原来如此简单。
主要内容第1章介绍如何创建R函数。该章会介绍R函数的基本构成、环境和参数匹配。我们还会介绍高级技术,例如闭包、函数式编程和如何处理错误。
第2章介绍如何使用R读取结构化和非结构化的数据。该章首先介绍从文本文件中读取数据。然后,介绍如何把R和数据库连接起来。最后,你会学到如何编写网络爬虫,爬取网页和社交网络上的非结构化数据。
第3章介绍分析前的数据准备工作。在该章中,我们会介绍数据预处理过程,使用基本的R函数,进行例如类型转换、添加、过滤、舍弃、重塑和缺失值估计。
第4章介绍如何使用高级程序包data.table和dplyr有效而且高效地操作数据。data.table提供了快速加载和聚合大型数据的可能。dplyr程序包提供了以类似SQL的语法操作数据的能力。
第5章介绍使用ggplot2可视化数据。首先介绍ggplot2的基本构成。然后,介绍高级技术,使用ggplot2函数创建复杂的图形。最后,介绍如何使用ggmap构建地图。
第6章展示如何使用R创建一份专业的报告。首先,讨论如何使用Rmarkdown语法,嵌入R代码块。然后,介绍如何使用ggvis添加交互式图表。最后,介绍如何创建和发布RShiny报告。
第7章关注如何从不同的概率分布上抽样数据。作为一个具体的例子,我们会介绍如何使用概率函数模拟随机交易过程。
第8章首先讨论点估计和置信区间。然后,介绍参数和非参数检验方法。最后,介绍如何使用ANOVA分析工程师的收入是否会随着头衔和地区的变化而不同。
第9章介绍用于发现交易数据中关联项和暗藏的频率模式的常用方法。在该章中,我们会使用一个实际例子,以便你可以学到如何在实际的数据集中执行规则和模式挖掘。
第10章首先介绍如何从财务数据集中创建和操作时间序列。然后介绍如何使用HoltWinters和ARIMA预测时间序列。该章会通过一个实际例子介绍如何使用ARIMA预测股票价格。
第11章介绍如何构建基于标注训练数据的预测模型。你会学到如何使用回归模型理解数值关系,并使用拟合模型进行连续值预测。对于分类任务,你会学到如何拟合数据,生成一个树形分类器。
第12章介绍未标注数据的隐含结构。首先,介绍如何使用聚类方法对位置临近的旅馆进行分组。然后,介绍如何使用PCA方法选取和抽取经济自由度数据集中的特征。
机器环境要学习本书中的例子,你需要一台可以访问互联网的计算机,而且可以安装R环境。你可以通过http://www.cran.rproject.org/下载R安装文件。具体安装信息可以在第1章中找到。
本书中的例子是在MicrosoftWindows和R3.2.4的基础上编写和测试的。这些例子也可以在MacOSX或者类似于UNIX的操作系统下,使用最新的R版本编译通过。
读者人群本书是面向已经熟悉R语言的基础操作,但是希望学习如何使用R程序包有效而且高效地分析现实世界数据问题的读者。
行文结构在本书中,你会发现一些标题经常出现(如准备工作、实现步骤、运行原理、更多技能和扩展阅读)。
为了清楚地介绍如何完成每一个教程的学习,我们使用以下行文结构:
准备工作这个部分会告诉你当前教程需要的东西,并介绍如何安装软件和本教程所需的基础环境。
实现步骤这个部分包括本教程所需的步骤。
运行原理这个部分通常包含对前一个部分的具体解释。
更多技能这个部分包含本教程的额外信息,以便扩展读者关于当前教程的知识面。
扩展阅读这个部分提供了指向其他有用信息的链接。
本书约定在本书中,你会发现文本有多种风格,以提供不同的信息。这里给出一些风格的例子,并给出其中的含义。
程序包和函数名风格如下:“你可以安装加载程序包RCurl”。
代码块设置如下:
>install.packages("RCurl")>library(RCurl)屏幕中的词语,例如菜单或者对话框,文本做如下展示:”在R中,缺失值使用NA(不适用)标记,不可能的值用NaN(不是一个值)标记”。
样例源码下载你可以从http://www.packtpub.com通过个人账号下载你所购买书籍的样例源码。如果你是从其他途径购买的,可以访问http://www.packtpub.com/support,完成账号注册,就可以直接通过邮件方式获得相关文件。
你也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号,下载本书的源代码。
下载书中彩图我们还为读者准备了一个PDF文件,该文件包含了本书所有截图和样图,可以更好地帮助读者理解输出的变化。你可以从以下地址下载:http://www.packtpub.com/sites/default/files/downloads/RforDataScienceCookbook_ColorImages.pdf。
推荐序对于互联网来说,当今是一个数据为王的时代。特别是对于中国互联网从业者来说,这个时代来得很快、很迅猛。Web2.0的到来让用户数据呈现出爆炸式的增长态势。如今,在搜索引擎、推荐系统、广告投放、语音识别、图像识别、自然语言理解、对话系统、交通物流、互联网金融等领域都可以看到数据科学发挥功效的身影。而AlphaGo的胜利又掀起了人类对机器智能的大讨论。数据科学让人类在这个时代重新看到了0和1所蕴藏的巨大价值,找到了新的技术和战略高地。
然而机遇总是与挑战共存。海量数据通常意味着人们要花费巨大的精力才能把数据转变为价值,无论是数据记录、数据处理、数据算法,还是数据可视化,每一个环节都会影响最后的产出,而每一个环节都不能轻而易举地完成。市面上关于数据科学的书籍林林总总,最多的要数Python派和R派。Python派起源于工程人员,不管是理论还是实践,读者可选的种类还是很多的。而R语言是由统计学者开发的,其出身和基因也决定了它在工程应用上的暂时落后,相关书籍也较少。对于我国数据科学从业者来说,R也是一门相对陌生的语言。听说魏博在翻译这本有关R语言开发应用的书籍,我非常欣慰。人们在R语言的实战书籍中又多了一种选择。同时,我也希望本书可以带动大家使用R进行实际开发的热情。学科和行业的发展需要百家争鸣。数据科学的利器越多,挑战和壁垒就会越容易攻克,人们获得数据价值的机会也就越大。
本书介绍了R语言在数据科学领域应用的方方面面,包括数据处理、数据操作、数据可视化、概率模拟、序列预测、频繁项集挖掘、监督式算法和非监督式算法等。本书注重R语言程序包的介绍和使用,这可以让读者省去很多无谓的精力,避免“重复造轮子”。特别是对于“唯快不破”的互联网行业来说,能够尽快使用成熟的开发包,是一件很幸福的事情。对于一名希望提升自己数据科学战斗力的读者来说,这本书也是不二选择。
魏博毕业于中国科学院数学所,读博期间就开始主攻用户需求建模和自动推理,后来负责阿里巴巴优酷大文娱视频搜索引擎的算法优化工作,目前在欧普拉软件新闻推荐部门负责用户画像算法。他在理解用户行为和用户数据挖掘方面有较深的造诣。同时他也是一名资深的R语言用户和R语言传播者。这本书的翻译也是对他自身能力的考验和体现。英文原版书有400多页,他能够在工作之余,牺牲节假日,4个月来静下心完成翻译实属不易。同时,R语言在国内的发展还有很长的路要走,特别是一些面向开发的技术术语的中文译法还没有达成广泛共识,在翻译过程中经常需要揣度和推敲。希望本书能够成为广大R语言数据科学爱好者共同阅读、共同推广的资源。
再次感谢魏博能够把机械工业出版社的优质外文资源翻译成书。也希望这本书能够成为大家手边时常翻阅的经典数据科学资料。
胡睿前微软资深研发总监现欧普拉软件技术(北京)有限公司副总裁译者序“数据科学”也许是近几年最热门的科技名词。从各种各样的互联网应用到AlphaGo的胜利,世界正在见证着数据科学带来的深刻影响。特别是我国在“互联网+”大潮推动下,海量数据每时每刻都在产生。无论是学术界,还是工业界,大量的科研人员都在这块数据金矿上挥洒青春和汗水。从数据中发现规律并应用到产品开发或者战略决策中,逐渐成为各行各业及各个企业公司的标准日常活动。同时,数据科学对于统计学、数据挖掘/机器学习算法,以及数据可视化等的需求也变得日渐迫切。一名掌握数据存储知识、数据科学算法、数据项目管理和数据可视化技术的人员,通常是多家用人单位的必争之才。
古语说:工欲善其事,必先利其器。处理海量、纷繁、动态的数据不是一件容易的事情。2013年,我在一篇科研论文上第一次结识了R语言。从那以后,我便开始了R语言道路上的各种探索。从最开始的编写算法脚本,到后来执著于Rmarkdown的使用,再到后来开发Shiny小程序,以及在服务器上执行计算。对我来说,从来没有一种语言让我觉得在数据科学的道路上如此顺畅和友好。然而,遍寻各种书籍和网上教程,很少有一份可靠的实践开发资料可以让读者体会到实际项目的“火药味”。很多书籍都在着重介绍R语言的基础知识,对于实际开发和各种强大的程序包都鲜有系统的介绍。这与R语言在我国的普及和发展程度不无关系。我想是时候推出一本书,让大家见识R语言和程序包的超强能力了。
本书便是一本注重R语言程序包实际应用的书籍。本书结构严谨,阐述通俗易懂,内容涵盖了R语言的绝大多数应用场景。同时,对于众人皆知的基础知识,本书不再赘述;对于一些高级技术,本书还提供了一些扩展阅读的资料,供学有余力的读者钻研探讨。值得提出的是,本书的作者丘祐玮是中国台湾地区活跃的数据科学家。他不仅拥有自己的数据科学公司,同时还服务于各大数据科学论坛,与中国大陆的数据科学工作者也有合作,是一位理论与实践并重的数据科学家。相信每一位读者都可以通过这本书学习到他的宝贵经验。
2016年9月,我受机械工业出版社的委托,承担本书的翻译工作。整个翻译过程历时4个月。这个过程也是自我温习、自我提高的过程。特别是
数据科学:R语言实现 下载 mobi pdf epub txt 电子书 格式 2024
数据科学:R语言实现 下载 mobi epub pdf 电子书数据科学:R语言实现 mobi epub pdf txt 电子书 格式下载 2024