一次又一次,在与开始学习数据科学的人交谈时,会出现一种挫败感:
我不知道从哪种编程语言开始。“
它不仅仅是编程语言,还有像Tableau,SPSS等软件系统。工具和编程语言的范围越来越广,很难知道选择哪一种。
我知道了。几年前,当我开始重点关注数据科学时,我回顾了当时所有流行的编程语言:Python,R,SAS,D3,更不用说事后的一些,对于分析来说真的不是那么好像Perl,Bash和Java。即便在今天,我只是阅读了一个建议(由着名的数据科学博主)使用UNIX的AWK和SED等神秘工具。(如果你知道什么是AWK和SED,请不要担心,因为你不应该学习它们。不是在开始时。)
有这么多的建议,如此多的材料,如此多的选择,很难先知道要学什么。这里有大量内容,很难知道在哪里可以找到“金块”;要学习的东西会为您带来高额的实时投资回报。
这就是问题的症结所在。事实是,你的时间有限。学习一门新的编程语言对您的时间来说是一笔巨大的投资,因此您需要对所选择的语言保持战略性。
需要明确的是,某些语言会为您的投资带来很高的回报(您的时间和金钱投入)。其他语言纯粹是辅助工具,您每年只能使用几次。
让我为您轻松一点:先学习R。
专注于一种语言
在描述你应该学习R的原因之前,我想强调一下,当你开始学习数据科学时,你应该学习一种语言。
当我在Sharp Sight Labs发布R教程时,我有几个人问我是否应该学习Python(同时)。我对此的回答基本上是“不”。除非你直接需要多种语言,否则你应该选择一种语言。
专注于一种编程语言的原因是因为您需要更多地关注流程和技术,而不是语法。您需要学习如何使用数据科学工具思考数据以及如何解决问题。事实证明,我认为R是最好的编程语言。
学习R.
几乎没有任何保留,我建议你学习R作为你的第一个“数据科学编程语言。”虽然有例外(例如,如果你有特定的项目需要),我认为R是你开始时的最佳选择。
原因如下:
R正在成为数据科学的“通用语言”
R正在成为数据科学的通用语言。这并不是说它是唯一的语言,或者说它是每项工作的最佳工具。然而,它是最广泛使用的,并且它越来越受欢迎。
正如我之前所说,O'Reilly Media 在2014年进行了一项调查,以了解数据科学家目前使用的工具。他们发现R是最流行的编程语言(如果将SQL排除为“适当的”编程语言)。
从更广泛的角度来看,还有其他一些排名可以看到编程语言的普及程度(不仅仅是数据科学家)。例如,Redmonk通过检查讨论(在Stack Overflow上)和使用(在GitHub上)来衡量编程语言的流行程度。在他们的最新排名中,R排名第13,是所有统计编程语言中最高的。Redmonk还指出,R随着时间的推移越来越受欢迎。
TIOBE(根据搜索引擎搜索次数对编程语言进行排名)的类似排名表明,R的年度同比增长强劲。
请记住,Redmonk和TIOBE排名适用于所有编程语言。当你看到这些,R现中最流行和最常用的排名在所有。
公司使用R
R正在招聘数据科学家的几家最佳公司中大量使用。谷歌和Facebook -谁我认为是两个在我们的现代经济工作最好的公司- 都在使用R数据科学家。
(为了了解Facebook这样的公司如何使用R,我肯定会查看Solomon Messing的博客。所罗门是Facebook的数据科学家,他的博客文章证明R非常出色。)
正如Revolution Analytics 最近指出的那样,“R也是微软数据科学家的首选工具,他们将机器学习应用于Bing,Azure,Office以及销售,营销和财务部门的数据。”
除了Google,Facebook和微软等科技巨头外,R还广泛应用于包括美国银行,福特,TechCrunch,Uber和Trulia在内的众多公司。
R在学术界很受欢迎
R不仅仅是工业的工具。它在学术科学家和研究人员中也非常受欢迎,这一事实证明了最近在着名期刊“自然”杂志上的R编程语言。
R在学术界的受欢迎程度非常重要,因为它创造了一个为行业提供支持的人才库。
换句话说,如果最优秀和最聪明的人在大学接受过R培训,那么这将增加R在工业中的重要性。离开学术界进行商业活动的学者,博士和研究人员的供应将创造自己对 R患者的需求。
此外,随着数据科学的成熟,商业领域的数据科学家需要与学术科学家进行更多沟通。我们需要借用技巧和分享想法。当我们对地球进行测量并将世界转变为数据流时,学术科学与面向商业的数据科学之间的界限可能会变得模糊。
在R中学习“数据科学技能”是最容易的
然而,R的普及并不是学习R的唯一原因。
最终,要真正学习数据科学,您需要学习“核心”技能领域:数据处理,数据可视化和机器学习。
在选择语言时,您需要一种在每个领域都具有重要能力的语言。您需要工具来执行这些任务,以及使用您选择的语言学习它们的资源。
如上所述,您需要更多地关注流程和技术,而不是语法。
你需要学习如何思考解决问题。
您需要学习如何找到数据的洞察力。
要做到这一点,您需要掌握数据科学的3个核心技能领域:数据处理,数据可视化和机器学习。掌握这些技能领域在R中将比几乎任何其他语言更容易。
数据争论
人们常说80%的数据科学工作是数据处理。通常情况下,您需要花费大量时间“争论”您的数据; 把它放到你想要的形状。R有一些你会发现的最好的数据管理工具。
R中的dplyr包使数据操作变得容易。这是我多年前希望拥有的工具。当您将基本dplyr“链接”在一起时,您可以大大简化数据操作工作流程。
数据可视化
ggplot2是截至2015年最好的数据可视化工具之一.Ggplot2的优点在于,当您学习语法时,您还将学习如何思考数据可视化。
我已多次说过,所有统计可视化都有一个深层结构。有一个高度结构化的框架,用于思考和创建所有数据可视化。ggplot2基于该框架。通过学习ggplot2,您将学习如何考虑可视化数据。
此外,当您将ggplot2和dplyr组合在一起时(使用链接方法),找到数据的洞察力几乎毫不费力。
机器学习
最后,还有机器学习。虽然我认为大多数初学数据科学的学生应该等待学习机器学习(首先学习数据探索更重要),机器学习是一项重要的技能。当数据探索停止产生洞察力时,您需要更强大的工具。
当您准备开始使用(和学习)机器学习时,R拥有一些最好的工具和资源。
关于机器学习的最佳,最引用的介绍性文本之一,统计学习简介,使用R编程语言教授机器学习。此外,斯坦福大学统计学习课程使用这本教科书,并在R教授机器学习。
稍后了解更多语言和工具
要清楚,最终你会想要学习更多的编程语言。就像工具箱中没有单一的最佳工具一样,没有一种编程语言可以完美地解决您想要解决的每个数据问题。话虽如此,在掌握了R中数据科学的核心技能之后,你可能还想学习其他语言来解决具体问题。
以下是您学习R后可能会考虑的其他语言的快速回顾:
Python
Python是一种很棒的多用途编程语言,你应该在某些时候考虑它。需要明确的是,在O'Reilly最近的调查中,Python是数据科学家中第二大最受欢迎的编程语言。它具有出色的可视化工具以及机器学习工具。对于大多数人来说,我认为Python是第二种要学习的语言。
D3
我爱D3。D3中创建的可视化效果非常漂亮,D3可视化的交互性非常适合构建仪表板。我的问题是它不能很好地扩展。对我而言,D3更像是一个“工匠的工具”。它非常适合构建优雅的数据可视化,但是在手动上创建这些东西或多或少的东西在你必须支持数十个合作伙伴的情况下无法扩展有新的分析和临时要求。
我也乐观地认为R的ggvis将允许R用户创建高度动态和交互式的可视化,因此在某些时候,R用户可能能够学习R的ggvis而不是D3。
总结:学习R,并集中精力
重申一下,选择一种语言。如果你刚开始,R几乎肯定是最好的选择。而且,真正专注于学习数据科学的技能。
另外,一旦你开始学习R,就不要得到“闪亮的新物体”综合症。
您可能会看到新技术和工具的演示。只需看看人们正在创建的一些令人眼花缭乱的数据可视化。
看到其他人创造出色的作品(并发现他们正在使用不同的工具)可能会让你尝试别的东西。相信我:你需要专注。不要得到“闪亮的新物体”综合症。你需要花费几个月(或更长时间)来真正潜入一个工具。
正如我上面提到的,您真的希望在整个数据科学工作流程中建立自己的技能。至少在数据可视化和数据操作方面,您需要具备扎实的技能。在开始前进之前,您需要能够在R中进行一些严格的数据探索。
在R上花费100个小时将比在10个不同工具上花费10个小时产生更好的回报。最后,通过集中精力,您的投资回报率会更高。不要被“最新,性感的新事物”分散注意力。