数据科学:R语言实现(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-14 01:44:43

点击下载

作者:丘祐玮

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

数据科学:R语言实现

数据科学:R语言实现试读:

前言

大数据、物联网、人工智能已经变成近几年最热门的科技流行语。尽管大家用很多名词去定义这些技术,但是共通的思想是它们都是数据驱动的。人们并不满足于简单地拥有数据,因为发现其中的价值才是最本质的。因此数据科学家已经开始关注如何从原始数据中洞悉深层价值。

数据科学已经变成学术界和产业界最流行的话题。但是数据科学是一门非常宽泛的学科,学会掌握数据科学注定很有挑战性。初学者必须学习如何准备、处理、聚合和可视化数据。而更多高级技能包括机器学习,挖掘各种数据格式(文本、图像和视频),以及最重要的—使用数据产生商业价值。数据科学家的角色需要大量的努力,同时,一名成功的数据科学家也需要一个有力的工具来解决日常问题。

在这个领域中,数据科学家使用最广泛的工具是开源而且免费的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创建一份专业的报告。首先,讨论如何使用R markdown语法,嵌入R代码块。然后,介绍如何使用ggvis添加交互式图表。最后,介绍如何创建和发布R Shiny报告。

第7章关注如何从不同的概率分布上抽样数据。作为一个具体的例子,我们会介绍如何使用概率函数模拟随机交易过程。

第8章首先讨论点估计和置信区间。然后,介绍参数和非参数检验方法。最后,介绍如何使用ANOVA分析工程师的收入是否会随着头衔和地区的变化而不同。

第9章介绍用于发现交易数据中关联项和暗藏的频率模式的常用方法。在该章中,我们会使用一个实际例子,以便你可以学到如何在实际的数据集中执行规则和模式挖掘。

第10章首先介绍如何从财务数据集中创建和操作时间序列。然后介绍如何使用HoltWinters和ARIMA预测时间序列。该章会通过一个实际例子介绍如何使用ARIMA预测股票价格。

第11章介绍如何构建基于标注训练数据的预测模型。你会学到如何使用回归模型理解数值关系,并使用拟合模型进行连续值预测。对于分类任务,你会学到如何拟合数据,生成一个树形分类器。

第12章介绍未标注数据的隐含结构。首先,介绍如何使用聚类方法对位置临近的旅馆进行分组。然后,介绍如何使用PCA方法选取和抽取经济自由度数据集中的特征。

机器环境

要学习本书中的例子,你需要一台可以访问互联网的计算机,而且可以安装R环境。你可以通过http://www.cran.rproject.org/下载R安装文件。具体安装信息可以在第1章中找到。

本书中的例子是在Microsoft Windows和R3.2.4的基础上编写和测试的。这些例子也可以在Mac OS X或者类似于UNIX的操作系统下,使用最新的R版本编译通过。

读者人群

本书是面向已经熟悉R语言的基础操作,但是希望学习如何使用R程序包有效而且高效地分析现实世界数据问题的读者。

行文结构

在本书中,你会发现一些标题经常出现(如准备工作、实现步骤、运行原理、更多技能和扩展阅读)。

为了清楚地介绍如何完成每一个教程的学习,我们使用以下行文结构:

准备工作

这个部分会告诉你当前教程需要的东西,并介绍如何安装软件和本教程所需的基础环境。

实现步骤

这个部分包括本教程所需的步骤。

运行原理

这个部分通常包含对前一个部分的具体解释。

更多技能

这个部分包含本教程的额外信息,以便扩展读者关于当前教程的知识面。

扩展阅读

这个部分提供了指向其他有用信息的链接。

本书约定

在本书中,你会发现文本有多种风格,以提供不同的信息。这里给出一些风格的例子,并给出其中的含义。

程序包和函数名风格如下:“你可以安装加载程序包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。  第1章R中的函数1.1 引言

R语言是数据科学家的主流编程语言。基于著名的数据分析网站KDnuggets的民意测验,3项(2012年到2014年)的调查显示,R语言在数据分析、数据挖掘和数据科学领域中是最受欢迎的语言。对许多数据科学家来说,R语言不仅是一门编程语言,而且相关软件还提供了交互式的开发环境,支持运行各种数据分析任务。

R语言在数据操作和分析方面有许多优势。下面是3个最显著的优势。

·开源并且免费:用户使用SAS或者SPSS需要购买使用许可。而用户使用R语言是免费的,并且可以方便地学习如何实现每一个函数源代码中的统计算法。

·强大的数据分析函数:R语言在数据科学领域很出名。许多生物学家、统计学家和编程人员在使用CRAN(Comprehensive R Archive Network)全球发布之前,就把他们的模型封装在R程序包里了。这种机制允许任何用户通过CRAN包下载和安装,开展分析项目。

·易于使用:由于R语言是一种自解释的高级语言,使用R语言编程非常简单。R语言用户只需要知道如何使用R函数,并借助强大的文档即可知道每一个变量如何工作,而不需要了解其背后复杂的数学知识,就可以轻松地执行高级数据分析任务。

这些优势使得复杂的数据分析变得更加简单易行。对此,R语言用户都深信不疑。而且,R语言尤其适合基础用户或者开发人员。对于一名R语言用户,我们只需知道函数如何工作,而不需要知道函数实现的具体知识。类似于SPSS,我们可以通过R语言的交互式shell,运行各种类型的数据分析任务。另外,作为一名R语言开发人员,我们可以编写函数来创建新的模型,甚至可以把实现的函数封装在包中。

本书并不会讲解如何从零开始编写R程序。相反,本书的目标是要讨论如何成为一名R语言开发人员。本章的主要目的是向用户展示如何定义函数,从而加速分析过程。我们首先介绍如何创建函数,然后介绍R环境,接着讲解如何创建匹配参数。本章的内容还会涵盖如何执行R语言函数式编程,如何创建高级函数,例如中缀操作符和替代,以及如何处理错误和调试函数。1.2 创建R函数

R语言是函数的集合;用户可以在项目中使用各个程序包中的内置函数,或者为专门的目的定义新的函数。在本教程中,我们会展示如何创建一个R函数。

准备工作

如果你是R语言新手,你可以在R语言的官方网站(http://www.r-project.org/)上查阅具体的介绍、历史和功能。开始下载安装R语言的时候,建议使用R语言综合文档网络(http://cran.r-project.org/)。

实现步骤

执行下列步骤来创建你的第一个R函数。

1.在R控制台中键入下列代码,创建第一个函数:

2.使用下列命令,执行用户定义的函数addnum:

或者,你也可以不使用return语句来定义函数:

3.使用下列命令,执行用户定义的函数addnum2:

4.你可以输入函数名来查看函数的定义:

5.你可以使用body和formals来检查函数体和形参:

运行原理

R函数是组织良好且可重用的代码块,通过重用代码,可以减少编程工作的重复性劳动。而且,通过对函数中语句的模块化,你的R代码会变得更具可读性和可维护性。

借助这些步骤,你现在可以创建addnum和addnum2R函数,并且使用任何一个函数对两个输入参数实现加和运算。在R语言中,函数通常具有以下形式:

FunctionName是函数名,arg1和arg2是参数。大括号内部是函数体,它是合法语句、表达式或者指认的集合。在函数底部,我们可以看到return语句,它把表达式结果返回给调用者并跳出函数。

addnum函数拥有标准的语法,包含body和return语句。然而,你不一定非要在函数结尾的地方加入return语句。如addnum2函数,它本身就会把最后的表达式结果返回给调用者。

如果你想查看函数的具体细节,只需在交互式shell中输入函数名。可以进一步使用body和formals函数来查看函数体和形参。也可以使用args函数来获取函数的参数列表。

更多技能

如果你想查阅R函数的文档,可以使用help函数,或者只需在函数名前输入?。例如,如果你想查阅sum函数的文档,你需要使用以下步骤:1.3 匹配参数

在R函数中,参数是激活函数的输入变量。我们可以给函数传递一般参数、命名参数、带有默认变量的参数,或者不确定数量的参数。在本教程中,我们会展示如何给定义好的函数传递各种各样的参数。

准备工作

确保你已经在操作系统中安装了R语言,完成了之前的步骤。

实现步骤

执行下列步骤,来创建带有不同类型参数列表的函数。

1.在R控制台中键入下列代码,来创建带有默认值的函数:

2.传递3作为输入参数,执行用户定义的函数defaultarg:

3.也可以传递其他类型的输入参数:

4.同样可以给函数传递两个参数:

5.还可以传递一组命名参数的列表:

6.在使用命名参数的同时,还可以使用if-else条件语句:

7.另外,可以给函数传递不确定数量的参数:

运行原理

创建函数的时候,R语言提供了灵活的参数绑定机制。在本教程中,我们首先创建了名为defaultag的函数,它带有两个形参:x和y。这里,y有一个默认值,给定为5。然后,当我们传递3来调用defaultarg函数时,它把3传递给x,把5传递给了y,并且返回了13。除了传递数值作为输入外,我们也可以给函数传递向量(或者其他任何数据类型)。在本例中,如果我们传递向量1:3给defaultarg函数,它就会返回一个向量。

接下来,我们可以看到参数是如何与函数绑定的。当我们使用不带参数名的参数来调用函数的时候,函数会通过位置来绑定传递的值。以步骤4为例,第一个参数3匹配到x,6匹配到y,函数返回15。另一方面,你也可以通过名称传递参数。在步骤5中,我们可以使用任何顺序给函数传递指定名称的参数。因此,如果我们给函数defaultarg传递y=6和x=3,函数也会返回15。

另外,我们可以使用参数作为控制语句。在步骤6中,我们指定了3个形参:x,y和type,其中,参数type带有默认值sum。接着,我们可以为参数type指定取值作为if-else控制流程中的判断条件。也就是说,当我们把sum传递给type时,函数返回x与y的加和;当我们把mean传递给type时,函数返回x和y平均值;当我们把sum和mean之外的任何取值传递给type时,函数返回x和y乘积。

最后,我们可以使用记号...给函数传递不确定数量的参数。在本例的最后一个步骤中,如果我们只给函数传递3和5,函数会先把3传递给x,5传递给y。然后,函数给x加上2,给y乘以2。最后,求x和y的和。然而,如果我们给函数传递两个以上的参数,函数也会对额外的参数求和。

更多技能

除了给出完整的参数名,我们也可以使用参数的缩写来调用函数:

这里,我们并没有正确地指定参数名type,函数却可以把unknown传递给参数type,并且返回输出15。1.4 理解环境

除了函数名、函数体和形参,环境也是函数的另一个基本组成部分。简单地说,环境是R管理和存储各种类型变量的地方。除了全局环境外,每一个函数会在创建之初激活自己的环境。在本教程中,我们会展示每一个函数的环境是如何工作的。

准备工作

确保你已经在操作系统中安装了R语言,完成了之前的步骤。

实现步骤

执行下列步骤来使用环境。

1.你可以使用函数environment来查看当前的环境:

2.你也可以使用.GlobalEnv和globalenv来浏览全局环境:

3.你可以使用函数identical来比较环境:

4.而且,你可以按照如下方法创建一个新的环境:

5.你可以找到不同环境中的变量:

6.这里,你可以创建函数addnum,并使用environment得到函数的环境:

7.你也可以判断函数的环境是否属于程序包:

8.接下来,你可以在函数中打印环境:

9.而且,你可以比较函数内部和外部的环境:

运行原理

我们可以把R环境看作存储和管理变量的地方。也就是说,只要我们创建了R的一个函数或者对象,我们就开辟了一个环境。顶层环境默认为是全局环境R_GlobalEnv,我们可以使用函数environment确定当前的环境。然后,我们可以使用.GlobalEnv或者globalenv打印全局环境,并使用函数identical进行比较。

除了全局环境,我们也可以创建自己的环境,并把变量分配到新的环境。在本例中,我们创建了环境myenv,并使用环境名加美元符号的方法,把x<-3分配到myenv。这样,我们就可以使用函数ls来列出myenv和全局环境中所有的变量了。我们可以在myenv中找到x,但是在全局环境中只找到了myenv。

接下来,我们要确定一个函数的环境。创建名为addnum的函数之后,我们可以使用environment来获取它的环境。由于我们是在全局环境下创建的,函数显然是属于全局环境的。另外,当我们获取函数lm的环境时,却得到了相关的程序包。这意味着,函数lm位于程序包stat的命名空间中。

我们还可以在函数内部打印出当前的环境。通过调用函数addnum2,我们可以确定,函数environment输出的环境名与全局环境不同。也就是说,在我们创建函数的同时,我们也创建了一个新的环境,以及指向父环境的指针。为了查看这一特点,我们创建了另一个函数addnum3,其带有嵌套func1。我们可以打印出func1和addnum3的内部环境,而且二者的环境有可能是完全不同的。

更多技能

为了获取父环境,我们可以使用函数parent.env。在下面的例子中,我们可以看到parentenv的父环境是R_GlobalEnv:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载