为什么R语言是当今最值得学习的数据科学语言
作者:鲁伟
一个数据科学践行者的学习日记。数据挖掘与机器学习,R与Python,理论与实践并行。个人公众号:数据科学家养成记 (微信ID:louwill12)
概述
在上周的博客里,我向大家解释了为什么应该精通R语言(尽管这些说辞最终可能没什么大用)。我那篇文章是写给那些认为掌握R语言是件劳神费力的人看的(因为最后大家可能都会放弃R语言)。但当我提到R最终确有可能被其他语言取代时,有些人就担心害怕到好像R马上就要被取代了似的。那我就说点让你放心的:R仍然是最受欢迎的数据科学语言。在过去的几年里,R已经成为蹿升势头最猛的编程语言。说句实在话,如果你现在想入门数据科学,我仍然推荐你学习R。所以我想打消你们的疑虑,R在数据科学领域不会被其他语言取代,即使那是Python。
所以,我就是想跟大家说一下为什么我如此看好R的发展前景,并且我认为R是当今最值得学习的数据科学语言。
R在最好的编程语言里持续走高
有一件事情我必须要你们马上明确的:R现在是最被看好的、拥有高排名的、发展最快的编程语言之一。但总的说来,R是数据语言。在数据科学里面,R是独孤求败的(仅有那么一两个可以比一下的竞争者)。为了证明我说的这些都是事实,让我们看看在一些实际调查和编程语言排行榜上面R的表现如何。
IEEE: R排名第五
作为世界上最大的技术专业联盟,IEEE在编程语言上早就制定有排行榜。IEEE在这套排名系统里使用了12个衡量指标,包括谷歌搜索量、谷歌趋势指数、在推特上的热度、在Github上的资源存量、黑客新闻报导次数以及其他一些指标。在2016年最终的“最佳编程语言”的榜单上,R攀升到第五名。
IEEE的排名方法很综合,所以这是一个相当有说服力的结果:R相较于其他语言具有更高的学习价值。
TIOBE:R排名持续走高
另一个排名系统TIOBE也设立了一套类似的编程语言排名指数。我们可以在TIOBE指数上看到R最近的持续上升势头。
TIBOE指数等于是构造了一个最受欢迎的编程语言指标。该指数每个月更新一次,打分是来自于一定数量全球范围内的资深编程工程师、大学课程和第三方软件供应商。还包括来自像谷歌、必应、雅虎、维基百科、亚马逊、YouTube以及百度等搜索引擎的打分数据。2016年12月的时候,R在全部编程语言里排行17,它在TIOBE上最好的排名是在2015年的5月份排名第12。
这也表明了当前R语言是学习数据科学绝佳的选择。或许说R是最好的选择会有争议。(老实说,Python在TIOBE上的表现要好于R,但很难区分人们使用Python来网络和软件开发还是数据科学,所以这并不是公平的比较。)
Redmonk: R排名12
另一个常用的排名系统是Redmonk编程语言排行榜,源于GitHub和Stack Overflow上的热门讨论。2016年11月份的时候,R在这份榜单上位于所有编程语言的第13位。更为重要的是,R在过去几年展现了持续上升的趋势:
“在所有最好的20种编程语言里,R展现出了最为持久的上升势头。从2012年排名第17以来,R每年都在稳定进步,但好像在13名之后就举步不前。但此时R已经超过了Perl语言攀升到第12名。Perl依旧有着广阔的市场,但在数据科学方面R无疑要比Perl更为专业。这跟R倡导者们毫无关系,无论是什么原因,R成为最受欢迎的编程语言之一确实是值得振奋的事情。”
——Redmonk编程语言排行榜(2016.06)
O'Reilly:R可能是最为流行的数据编程语言
最后一个是O'Reilly。O'Reilly曾在过去数年间都做了关于数据科学的调查,并用调查得到的数据来分析数据科学的发展趋势,其中就有包括关于最受数据科学家欢迎的数据分析工具的分析结论。
2016年的调查报告显示,R是最为常见的编程语言(我还把SQL也算在内了,尽管从某种意义上讲它不是编程语言)。有超过57%的受访者使用R语言(相比而言,Python的使用比例是54%)。(有必要提一下的是,70%的人都在用SQL。如果你想在R后面再学习一门工具的话,我推荐SQL。)O'Reilly也调查了人们常用的数据可视化工具。结果表明ggplot2是最受欢迎的可视化工具。我将在接下来的博客里解释我为什么这么喜爱ggplot2。
R是学习数据科学的极佳工具
除了流行以外,R是优秀的数据科学编程语言的另一个原因在于R是学习数据科学的极佳工具。
R是真正的“数据语言”
这么说的一部分原因在于语言的本质。R应统计和数据而生。R-Project上R形容为一种“用于统计计算的编程语言”。因为R自打被发明以来就带有统计和数据的DNA。从这个层面看,R在编程语言里面是独一无二的,它为数据而生。这使得你在学习数据科学时具有优势,因为任意一个统计检验或者统计技术你都可以在R基础配置或者R扩展包里找到。
参考书和其他资源都在使用R作为范例
与R是统计计算语言这个事实相关的是另一个事实是许多最好的参考书和学习资料都采用了R作为编程范例。这对于初学者而言尤为重要,因为你有很多东西要学。为了真正掌握数据科学,你需要学习数据科学下的多个子领域,包括概率论、统计学、数据可视化、数据处理以及机器学习等等。所有的这些技术领域都需要理论基础和实战技术,这需要你自己编写代码来实现。这意味着两点:
1. 你选择的编程语言必须对各个领域(可视化,数据处理,机器学习(统计学习)等)都有强大的掌控能力。
2. 你选择的编程语言在这些领域内都有着高质量的练习材料。
尽管现在市面上有很多关于数据的学习教材和课程,但最好的都是用R作为编程范例的。
用R学习概率论
举例来说,有两本极为出色的概率书都是用R作为编程范例的。第一本是概率论及其R应用。这本书亲切可读且条理清晰。第二本是概率论导论,这本教材被哈佛统计课程广泛采用。这只是两个例子。如果你足够资深的话,你会发现大多数概率理论书都会采用R作为范例。
用R学习频率学派统计学
同样的道理可以用在统计学参考书上。R的统计特性与生俱来,多数统计教材都把R作为学习工具。这里我们介绍一本优秀的频率学派统计教材的入门书籍:统计学导论与R应用。当然,你也可以在亚马逊上随便一搜就可以搜到各类关于统计学的入门书籍,你会发现它们是否会用编程语言作为教学工具,并且相较于其他语言而言,它们更喜欢使用R语言。
用R学习贝叶斯统计学
如果你想要一本学习贝叶斯统计的手册,R语言在其中的作用就更加明显了。如果你想学习贝叶斯统计和贝叶斯分析的话,几乎所有的参考书都用了R作为范例。当然也有例外,只有极少部分的教材是通过C或者Python来讲解贝叶斯理论的,但毫无疑问的是最好的贝叶斯参考书都采用了R作为分析工具。
如果你对贝叶斯统计感兴趣的话,推荐看下面三本书:
1. 贝叶斯统计导论
2. 统计学反思
3. 贝叶斯数据分析实战
这些书都用了R作为分析工具,如果你对贝叶斯方法情有独钟的话,相信这会是你的菜。
用R学习数据可视化
当你学习数据可视化的时候,可供选择的编程语言范围就会大很多,但我仍然R是学习可视化的最好工具。如果你正在学习数据可视化的话,我极力推荐Nathan Yau名为flowingdata.com的博客,上面经常会有关于用R做可视化分析的教程更新。(他的书数据点是极好的配套教材,尽管它只阐明一些原理而对编程语法避而不谈。)同样力荐的是Hadley Wickham 大神的一些书。第一,如果你对R语言数据可视化感兴趣,你需要入手这本ggplot2。这个关于R数据可视化的扩展包不仅会教你编程语法,也会让你重新认识数据可视化。
我还推荐R语言数据科学这本书。这本书对数据可视化有一个令人惊叹的导论,当然也会教你如何用R处理数据。这是一本必备的R参考书。
用R进行机器学习
最后,如果你还想对机器学习有个入门的话,很多参考书也都用了R作为范例。我承认尽管关于机器学习教材使用的编程语言各不相同,但我仍然坚信R是最好的工具。这里有两本用R作为讲解的优秀的机器学习入门书籍:
1. 统计学习导论
2. 预测建模实战
这两本书读起来亲切有加又不失严谨。在讲解理论基础的同时也会向你展现实战技巧。这是两本我最喜欢向那些志在学习机器学习的初学者推荐的,它们都使用R语言。
R是学习数据科学的最佳工具
我最终的结论是R是学习数据科学最好的工具,很多参考书都用R作为编程语言。所以当还你是一名数据科学菜鸟的话,我认为R无论是在质还是量上都是最好的学习工具。
关于Python的一点说明
除了R之外,你当然还有许多其他选择,但我这里只提一下Python。随着数据科学的快速发展,可能除了R以外Python是一个值得认真考虑的选择。(其他语言缺乏体系健全的扩展包系统并且不开源。)我不想对Python作过多解释,但需要声明是Python是一门出色的语言,我爱Python。尽管说了这些,但对于数据科学的初学者而言,我还是认为R是稍微更好的选择,原因我在前面都已阐述完毕。再者,很多参考书对于数据科学基本概念(概率论、统计学、贝叶斯、机器学习)的解释都是基于R的,这并不是说用Python进行数据科学实践不好,但基于R的参考教材平均质量水平更高。
再就是许多学生用Python做了软件开发。这就意味着他们用Python来学习了数据结构、循环、控制流、面向对象编程以及网络框架而不是学习统计、数据可视化、数据处理和概率论等。这些计算机技能确实是数据科学家的工具箱必备武器之一,但不是我这里谈到的数据科学核心主题。老实说,我推荐大多数软件开发的初学者在学习开发之前最好是能学习一下基础的数据科学内容,包括数据处理、可视化以及数据分析等等。
尽管大多数初学者应该把软件开发原理的学习放在后面,但多数Python的初学者一开始就跑偏了。造成这种情况的原因有很多,但Python确实在这些领域表现出色。大部分关于Python的参考书都不是真正的数据科学书,而是关于编程和开发的书。所以当准备开始学习数据科学的学生打开一本Python教材的时候,很容易就被带往软件/网络开发的方向,而且经年累月走不出来。尽管我对Python爱之深沉,但Python对于初学者而言确实不太友好。所以最好还是从R开始你的数据科学之旅,容易学习且不易跑偏。
再次强调:数据科学就学习R语言
如果你想从数据科学这里拿走什么好东西的话,R是最好的选择。从流行程度上而言,R排名很高并且在持续走高。另外,多数最好的数据科学教材和学习材料都用R作为工具。如果你现在想入门数据科学,我郑重地向你推荐下面这些:
1. 学习R语言。
2. 具体而言,学习ggplot2,dplyr,tidyr,lubridate以及其他数据处理和可视化扩展包。
3. 学习如何综合利用各类工具进行数据分析。
4. 一旦你在这些关键扩展包的学习上取得进展,就去扩充你的概率统计和机器学习能力。
英文原作来自Sharp Slight Labs博客
翻译:鲁伟
英文原文地址:
http://sharpsightlabs.com/blog/r-recommend-data-science/