1.3 R语言的功能特征
目前R程序包已经超过3000个,其数量仍在与日俱增。没有任何一本书可以清楚介绍所有这些程序包。本书仅侧重于介绍R的主要特征以及最常用和主流的程序包。
1.3.1 使用R程序包
R程序包都是一些具有函数特性的自含单元,可以看做是若干个函数的集合,类似于Java中的.jar文件。现有关于R程序包的海量书籍所涵盖的应用范围非常广泛,从统计操作和机器学习到丰富的图形可视化和绘制。每个程序包都包括一个或多个R函数。一个R程序包是可供他人重复使用和共享的实体。R用户可以安装拥有他们所需功能的程序包并从中调用函数。这些程序包的完整列表可在http://cran.r-project.org/(也称R语言综合文档网络(Comprehensive R Archive Network,CRAN))中找到。
1.3.2 执行数据操作
R支持广泛的操作,包括统计运算操作,例如平均数、最小值、最大值、概率、分布和回归;机器学习操作,如线性回归、逻辑回归、分类和聚类。通用数据处理操作如下:
数据清洗:清洗大量的数据集。
数据探查:探查数据集所有可能的值。
数据分析:对描述性和预测性分析数据的可视化进行分析,即分析输出程序的可视化。
为了建立一个有效的分析应用,有时需要使用应用程序编程接口(API)来挖掘数据,使用付费服务进行分析,并通过第三方服务进行可视化处理。另外,进行编程是最有助于实现数据分析的自动化方式。
R有它自己的编程语言来操作数据。此外,可用的程序包可以帮助整合R与其他程序功能。 R支持面向对象的编程概念。它也能够与其他编程语言,如Java、PHP、C和C++实现整合。有几个程序包将作为中间层编程帮助进行数据分析,它们类似于sqldf、httr、RMongo、RgoogleMaps、RGoogleAnalytics和google-predictionapi-r-client。
1.3.3 日渐增多的社区支持
随着R的用户数逐步上升,与R相关的群组也在增加。因此,R的学习者或开发人员可以轻松地聚集在一起,并通过R群组或社区的帮助解决一些他们不确定的问题。
下面是一些有用的主流平台:
R邮件列表:这是由R项目业主创造的一个官方R群组。
R的博客:有不计其数的博主正在编写一些R应用。其中最流行的博客是http://www.r-bloggers.com/,在这里所有博主都开设了自己的博客。
stack overflow:这是一个很大的技术知识分享平台,在这里程序员可以发布自己的技术问题,热心的程序员会给出解决方案。欲了解更多信息,请访问http://stats.stackexchange.com/。
群组:目前在LinkedIn和Meetup网站上有许多其他团体,在这里世界各地的专业人士聚集在一起,讨论他们的问题和创新理念。
图书:关于R的书籍有很多。一些很流行的读物,如《R in Action》,由Rob Kabacoff所著,Manning出版;《R in a Nutshell》,由Joseph Adler所著,O扲eilly Media出版;《R and Data Mining》,赵延长所著,科学出版社出版;《R Graphs Cookbook》,由Hrishi Mittal所著,Packt出版社出版。
1.3.4 R语言数据建模
数据建模属于机器学习技术的范畴,用于从历史数据集中发现隐藏的模式,这些模式可用来对未来相似数据进行预测。这个技术注重过去的用户行为,了解用户的偏好。大多数数据建模技术已经被许多主流组织应用,以通过过去的交易行为来了解他们的客户。这些技术将分析数据,并预测客户的需求。Amazon、Google、Facebook、eBay、LinkedIn、Twitter和其他许多组织都在使用数据挖掘来改进定义的应用程序。
最常用数据挖掘技术如下:
回归:在统计学中,回归是一项传统技术,通过对变量值进行状态拟合来识别两个或多个变量之间的数量关系。这种关系将有助于预测未来事件的变量值。例如,任意变量y可以用来建立与另一个变量x的线性函数,表达式为y = mx + c。在这里,x是预测变量,y是因变量,m是直线的斜率,c为截距。产品或服务的销量预期、股票价格的预测都可通过这个回归来实现。通过使用由R语言编写的lm方法可实现回归,这种方法是R语言中的默认方法。
分类:这是一个机器学习技术,主要用于对观察值进行标签分类,这些观察值主要用于训练案例。通过这一技术,我们能够将观察值以一个或多个标签进行分类。销售、网络欺诈检测和癌症分类(医学技术)都是应用这一技术的常见领域。Google邮件使用这种技术判定邮件是否为垃圾邮件。分类功能可以通过R语言的glm、glmnet、ksvm、svm和randomForest获取。
集群:这个技术能根据给定的项目集合进行相似的项目成组。用户细分和图像压缩是群集的最常见的应用。市场分割、社会化网络分析、组织计算机集群和天文数据分析也包括在集群技术的应用内。Google新闻使用这些技术将相似的新闻条目归为同一类。集群可以通过R语言的knn、kmeans、dist、pvclust和Mclust等方法实现。
推荐:推荐算法应用于推荐系统,这些推荐系统是目前使用中的获得极高认可的机器学习技术。网页内容的推荐可能包括类似的网站、博客、视频或相关内容。此外,网上物品的推荐有助于推进交叉销售和向上销售。常见的是网上购物门户网站根据用户过去的行为推荐书籍、手机或其他任何网购商品。Amazon是一个知名的电子商务门户网站,其29%的销售是通过推荐系统实现的。推荐系统可以通过R语言Recommender()和recommendaerlab程序包实现。