R You Ready?——大数据时代下优雅、卓越的统计阐明及画图情况
当前位置:以往代写 > 其他教程 >R You Ready?——大数据时代下优雅、卓越的统计阐明及画图情况
2019-06-14

R You Ready?——大数据时代下优雅、卓越的统计阐明及画图情况

R You Ready?——大数据时代下优雅、卓越的统计阐明及画图情况

作者按:本文按照去年11月份CSDN举行的“大数据技能大会”演讲质料整理,最初颁发于2012年2月期《措施员》杂志。


1. 汗青


R(R Development Core Team, 2011)语言由新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 两人配合发现,其词法和语法别离源自 Scheme 和 S 语言,R 语言一般认为是 S 语言(John Chambers, Bell Labs, 1972)的一种方言。R 是“GNU S”, 一个自由的、有效的、用于统计计较和画图的语言和情况,它提供了遍及的统计阐明和画图技能:包罗线性和非线性模子、统计检讨、时间序列、分类、聚类等要领。我们更倾向于认为 R 是一个情况,在 R 情况里实现了许多经典的、现代的统计技能。



图1: 1992 年,Ross Ihaka 和Robert Gentleman 在奥克兰大学成为同事。厥后为了利便传授初等统计课程,二人开拓了一种语言;而他们名字的首字母都是R,于是R 便成为了这门语言的名称。


作为 R 语言的前身——S 语言的代码险些不需要举办任何修改即可在R 语言情况下运行,从这个角度讲两种语言险些等价。S 语言降生于上个世纪 70 年月的由 John M. Chambers 率领的贝尔尝试室统计部,它的降生进程险些就是现代统计阐明方法的演化过程的写照(谢益辉,郑冰, 2008):

  • 1975-1976 年,贝尔尝试室统计研究部利用一套文档齐全的 Fortran 库做统计研究,简称为 SCS ( Statistical Computing Subroutines );
  • 其时的贸易统计软件回收的是批处理惩罚的方法,一次性输出问题的所有相关的信息,在谁人时代,这个进程需要几个小时,而且贸易软件不能对措施做任何修改。而贝尔尝试室的统计学家们需要机动的交互式数据阐明方法,因此 SCS 在贝尔尝试室很是受接待;
  • 但统计学家们发明利用 SCS 做统计阐明时需要大量的 Fortran 编程,花在编程上的时间同取得的阐明结果对比有些得不偿失。逐步地,各人告竣了一个共鸣:统计阐明不该该需要编写 Fortran 措施!
  • 于是,为了同 SCS 举办交互,一套完整的高级语言系统 S 降生了;
  • S 语言的理念,用它的发现者John Chambers 的话说就是“to turn ideas into software, quickly and faithfully.”

  • 1993 年,S 语言的许可证被 MathSoft 公司买断,S-PLUS 成为了其公司的主打数据阐明产物,这时候,由于 S-PLUS 担任了S 语言的优秀血统,所以遍及被世界各国的统计学家所利用。但好景不长,1997 年 R 语言正式成为了 GNU 项目,大量的优秀统计学家插手到了 R 语言开拓的队列。跟着 R 语言的成果愈发强大,徐徐地 S-PLUS 的用户转到了同承一脉的R 语言。S 语言的发现人之一,John M. Chambers 最终也成为了 R 语言的焦点团队成员。S-PLUS 这款优秀的软件也几经易手,最后花落 TIBCO 公司,这是后话。


    John Chambers 老爷子一直精心极力的致力于R 语言的成长,至今仍然是活泼的 R 语言开拓者。在 2009 年第一期 R Journal 上 John Chambers 是这样对 R 语言是界说的:



    1. An interface to computational procedures of many kinds;
    2. Interactive, hands-on in real time;
    3. Functional in its model of programming;
    4. Object-oriented, “everything is an object”;
    5. Modular, built from standardized pieces; and,
    6. Collaborative, a world-wide, open-source effort.

    虽然,R 语言的这些特点很难在一篇随笔里细致的浮现出来,那下面我将扼要的描写一下 R 语言的近况和将来。


    2. 近况及应用


    R 语言在国际和海内的成长差别很是大,国际上 R 语言已然是专业数据阐明规模的尺度,但在海内依旧任重而道远,这当然有数据学科职位的原因,国人版权观念单薄以及学术规模相对闭塞也是原因。那为什么 R 语言可以或许被宽大的数据阐明事情者做接管?这个华夏因是许多的:


    2.1 优势及特点


    从 R 语言的成长汗青上看,R 主要是统计学家为办理数据阐明规模问题而开拓的语言,因此 R 具有一些奇特的优势:

  • 统计学家和险些包围整个统计规模的前沿算法(3700+ 扩展包)
  • 开放的源代码(free, in both senses),可以陈设在任何操纵系统,好比 Windows, Linux, Mac OS X, BSD, Unix强大的社区支持
  • 高质量、遍及的统计阐明、数据挖掘平台
  • 反复性的阐明事情(Sweave = R + LATEX),借助 R 语言的强大的阐明本领 + LaTeX 完美的排版本领,可以自动生成阐明陈诉
  • 利便的扩展性

  • 可通过相应接口毗连数据库,如 Oracle、DB2、MySQL
  • 同 Python、Java、C、C++ 等语言举办互调
  • 提供 API 接口均可以挪用,好比 Google、Twitter、Weibo
  • 其他统计软件大部门均可挪用 R,好比 SAS、SPSS、Statistica等
  • 甚至一些较量直接的贸易应用,好比 Oracle R Enterprise, IBM Netezza, R add-on for Teradata, SAP HANA, Sybase RAP(刘思喆,2012)


  • 2.2 荣誉


    R 语言拥有这么多优势,很大部门原因是由于它同样担任了 S 语言的优秀血统。S 语言在1998 年被美国计较机协会(ACM)授予了软件系统奖,这是迄今为止浩瀚统计软件中“”被 ACM 授予的统计系统。


    其时 ACM 是这样评价S 语言的:

  • 永久的改变了人们阐明、可视化、处理惩罚数据的方法;
  • 是一个优雅的,被遍及接管的,不朽的软件系统。

  • 我们也可以查询到积年 ACM 授予软件系统奖的列表,这些优秀的软件系统同我们的糊口息息相关:

  • 1983 Unix
  • 1986 TeX
  • 1989 PostScript
  • 1991 TCP/IP
  • 1995 World-Wide-Web
  • 1997 Tcl/Tk
  • 1998 S
  • 1999 The Apache Group
  • 2002 Java

  • 2009 年纽约时报颁发了题为 “Data Analysts Captivated by R’s Power” 的社评,会合的接头了 R 语言在数据阐明规模的成长,并激发了 SAS 和 R 用户遍及而剧烈的争论。接下来的 2010 年,美国统计协会(American Statistical Association)又将第一届“统计计较及图形奖” 授予了 R 语言,用于表扬其在统计应用和统计研究遍及的影响。


    2.3 社团及勾当


    正如前文 John Chambers 所说,R 也是一个社区,其线下的勾当也长短常活泼。在国际上,欧洲和美国每年会轮值举行一次 useR! 集会会议,届时来自于世界各地的 R 用户齐聚一堂,接头 R 语言的应用与科研方面的成就。出于对统计计较的非凡思量,每两年还会举行一次 DSC 集会会议(Directions in Statistical Computing),专门接头 R 在统计计较方面的应用及理论研究。各多半会也会有相应的 R Group,利便当地的R 用户集会及交换。


    在海内,每年会以统计之都牵头在北京和上海举行两次中国 R 语言集会会议,至本年已经在中国人民大学、华东师范大学等高校举行了四届 R 语言集会会议,积年的演讲主题涉及医药、金融、地理信息、统计图形、数据挖掘、制药、高机能计较、社会学、生物信息学、互联网等多个规模,从来岁起,台北将成为第三个举行中国 R 语言集会会议的都市,2012 年6月的中华 R 语言集会会议台北场已经在操持傍边。


    2.4 业界的承认


    KDnuggets 网站每年城市做一些数据阐明、数据挖掘方面的专题问卷观测,在 2011 年 8月份的数据挖掘规模语言风行度的观测中,R 语言位于数据挖掘规模居于所有语言之首(图2),而紧随其后的SQL、Python、Java 则是在某一规模具有各自的独到优势。在数据挖掘领域下,R 语言同这些语言彼此补足、相得益彰。


    按照互联网搜索功效计较的TIOBE 编程社区指数(Programming Community Index)(TIOBE, 2011)大概更能代表编程语言的风行度。在 2011 年 12 月份排名中,R 语言依旧是在统计规模中更为风行的语言,位列第 24(Ratings 0.522%),而时常被放在一起较量的SAS 则排名第 31(0.417%)。



    图2: 固然KDnuggets 网站的观测存在样本有偏的嫌疑,但究竟代表了某一类人群的偏好。并 且排名前五位的语言在各自的规模确有代表性。数据来历http://www.kdnuggets.com/2011/08/poll-languages-for-data-mining-analytics.html


    3. 挑战和将来


    固然 R 语言有诸多的优势,但 R 语言不是万能的,它究竟是统计编程类语言。受到其算法架构的通用性以及速度机能方面的影响,因此其初始设计完全基于单线程和纯粹的内存计较。固然一般环境下无关 R 的利用,在当今大数据条件下,这两个设计思路的劣势逐渐变得愈加刺目,亏得 R 的一些优秀的扩展性经办理了上述问题,好比:

  • snow 支持MPI、PVM、nws、sockets 通讯,办理单线程和内存限制;
  • multicore 适合大局限计较情况,主要办理单线程问题;
  • parallel R 2.14.0 版本增加的尺度包,整合了snow 和multicore 成果;
  • R + Hadoop 在Hadoop 集群上运行R 代码,亦或操纵Hive 客栈;
  • RHIPE 更友好的R 代码运行情况,办理单线程和内存限制;
  • Segue 操作Amazon’s Web Services(EC2)。

  • 这里需要着重提一下 parallel 包,这个包是 R 焦点团队为了办理大数据计较问题而在尺度安装措施下新增的成果包。


    3.1 一些误区


    许多人认为 R 语言是 GNU 开源项目软件,因此软件的利用是“没有任何担保” 的。但在美国,R 的计较功效被 FDA(Food and Drug Administration)所认可;而且有陈诉指出R 对比其他贸易软件,bug 数量很是少(UCLA, 2006)!


    R 开拓的焦点团队对付 R 的新成果持异常审慎的立场,好比cairographics 从2007 开始酝酿,直到上一个大版本(2011 年)才引入到 R 尺度安装措施;byte-compile 成果更是经验了1999-2011 近12年的孵化(Ripley, 2011)。从这个角度讲,R 语言的代码质量以及运算功效的可信性是完全可以担保的。


    虽然,这里所说的是 R 的尺度安装措施包,并不代表所有的扩展包的质量。究竟3700+的扩展包良莠不齐,固然不乏一些优秀的包(如Rcpp, RODBC, VGAM, rattle),但一定存在一些扩展包质量不佳的环境。


    3.2 应用的思考


    R 语言并不是人人城市打仗到的语言,相对要小众许多,有些人即便打仗到没准也搞不清楚 R 到底是做什么用途。对付走上这条路的人,常常会有一些应用坚苦,好比对小我私家进修角度而言:

  • 固然 R 语言的设计之初就是制止通过大量编程实现统计较法,但最根基的编程本领照旧需要的,因此对付一般非计较机专业的事情者来说无疑提高了难度;
  • 尚有许多人提到,R 语言的进修曲线很是陡峭。但从小我私家这么多年的利用履历上看,陡峭的进修曲线并不是R 语言自己的,而是埋没在后头的统计常识很难在短时间内把握的缘故。

  • 从公司贸易应用的角度而言,也存在一些不行回避的问题:

  • 首先是人力资源本钱如何核算;
  • 软件本钱问题,由于 R 是自由软件,可以随时随地下载,因此对付企业来说如何怀抱本钱是一个问题;
  • R 的技术审定并没有官方或机构尺度,简历上“纯熟利用R 语言” 大概没有任何意义;
  • 实际上,即便没有上述两个问题,那企业想找到 R 相关的人才不那么简朴;
  • 对付大量事情已经过其他软件实现(好比用SAS)的公司来讲,转化本钱很高;
  • 技能支持获取的问题。

  • 4. 结语


    R 语言固然降生于统计社区,处事于数据,但此刻跟着数据渗透到各行各业,R 语言已经远远高出统计领域,相信不久的未来会有更多的伴侣插手到 R 语言社区。

      关键字:

    在线提交作业