机器学习和数据科学领域,最流行的语言是什么?

在开展数据分析项目或职业生涯规划时,应选哪一种编程语言?对此问题,不同职业背景的人给出的答案各不相同。让我们从数据角度来看看,人们在机器学习和数据科学方面所选的编程语言。

要想在机器学习或数据科学领域寻找一份工作,应该学习哪种编程语言?这是一个银弹问题,在许多论坛上引发了人们的热烈讨论。虽然我心中已有答案,也会解释其中的缘由,但是最好还是先来看一些数据。毕竟,机器学习和数据科学领域的工作者们研究的是数据,而非观点。

那么,我们先来看一些数据。我将使用 indeed.com 提供的趋势搜索工具。它可以查询到招聘信息中指定术语随着时间变化的出现频率,这能反映出雇主们正在寻求具备哪些技能的人才。但需要注意的是,它不是一份民意调查,不能说明哪些技能最为实用,而是衡量技术流行趋势的高级指标(更确切地讲,它可能更像是技术流行度的一阶导数,因为流行度就是入职时技能加上培训技能与退休和离职时技能的差额)。

话不多说,一起来看数据。我搜索与“机器学习”和“数据科学”连同使用的技能,其中的技能就是某种重要的编程语言,例如,Java、C、C++ 以及 Javascript。我还纳入了 Python 和 R 语言,众所周知,这两种语言在机器学习和数据科学领域非常流行,以及与 Spark相关的 Scala 和前景光明的 Julia。运行查询之后,我们得到了如下结果:

当我们针对机器学习进行搜索时,得到的数据十分类似:

从这些数据中可以看出什么?

首先,没有万金油。在此环境中,许多语言都非常受欢迎。

第二,所有这些语言的人气都在急剧上升,反映出过去几年人们对机器学习和数据科学的兴趣与日俱增。

第三,很显然,Python 位列榜首,紧随其后的是 Java,第三是 R,然后是 C++。Python 不断攀升的人气已经超过 Java,并且流行度还在,而 Java 与 R 之间的差距逐渐缩小。我必须承认,看到 Java 排在第二位我感到相当惊讶,因为我之前以为第二会是 R。

第四,Scala 的发展引人注目。这种语言在三年前几乎没人使用,而现在却与许多成熟的语言同场竞技了。我们在 indeed.com 上切换到数据的相对视图时,这种趋势更加一目了然。

第五,Julia 语言的流行度与任何其他语言都相距甚远,但是最近几个月呈绝对上升趋势。Julia 语言是否会成为机器学习和数据科学领域中的一种流行语言?让我们拭目以待。

如果我们暂且忽略 Scala 和 Julia,以便关注其他语言的发展趋势,那么我们就会发现,Python 和 R 语言的发展速度超过了其他通用型语言。

根据增长速度的差异,也许 R 的流行度将会很快超过 Java。

当我们针对深度学习运行这个查询时,得到的数据截然不同:

在这个领域中,Python 仍然位列第一,但排名第二的是 C++,然后是 Java,C 语言排在第四位。R 语言仅排名第五位。很显然,高性能计算语言备受青睐。不过 Java 发展速度很快。就一般的机器学习而言,它很快就可以晋升到第二位。R 语言短期内不会登上榜首。让我感到惊讶的是,作为大型深度学习框架(Torch)的主要语言,Lua 竟然没有登榜,而且 Julia 也缺席榜单。

最初问题的答案现在应该很清楚了吧。在机器学习和数据科学领域的工作中,Python、Java 和 R 语言是最受欢迎的技能。如果您的关注重点是深度学习而非一般的机器学习,那么应该学习 C++,当然 C 语言也值得考虑。但是,请记住,这只是看待问题的一种方法。如果您想在学术界找工作,或者只是想在业余时间学习机器学习和数据科学,那么您可能会得到不同的答案。

至于我个人的答案,今年初我就在一篇博客中回答过,我这里可以再简要复述一下。除了来自许多顶级的机器学习框架的支持,Python 非常适合我,因为我有计算机科学背景。因为在我职业生涯的大部分时间都在使用 C++ 进行编程,我也会使用这种语言开发新算法。但是这仅仅是我个人的观点,不同学科背景的人可能感觉另一种语言更适合。编程技能有限的统计学家无疑更喜欢 R 语言。实力强大的 Java 开发人员会继续使用自己喜欢的 Java,毕竟有大量的开源 Java API。同理,图中的其他语言也是如此。

因此,我的建议是去看看讨论同类问题的其他博客,然后投入大量时间学习一种语言吧。

原文发布于微信公众号 - 数据科学与人工智能(DS_AI_shujuren)

原文发表时间:2017-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Cloud Native - 产品级敏捷

人类对敏捷开发与软件工程的三种认知与行为

2017.6.24, 深圳, Ken Fang 在这么多年的敏捷开发、软件工程的职场生涯中, 收获最多的是, 能与相当多不同产品型态的团队、相当多不同个性的人共...

2295
来自专栏Golang语言社区

从设计者角度谈游戏的架构与细节梳理

(本文由四篇独立章节整合完成)游戏设计有点像写书,如果你没有首先花时间阅读和评价几本书,你就永远不可能写出一本书。那些想写书又没读过书的人,不可能创作出任何伟大...

4557
来自专栏CDA数据分析师

从数据到价值——创业团队应该关注的四个阶段

这是一个最好的时代,移动互联网技术为从业者提供了无比丰富的数据。从人们的言行举止、社交关系、到地里位置无处不在。这些详细宝贵的数据,蕴含了巨大的价值!但是,这也...

17710
来自专栏大数据挖掘DT机器学习

研究生:数据分析/挖掘工作的疑惑?

数据分析/挖掘工作的疑惑 本人在读硕士一名,研二,理工科,所作工作于这两方面无关。但是,最近对这个方向特别感兴趣,真的很想从事这方面的工作。目前,正在自学中,以...

4505
来自专栏区块链入门

用数据驱动进行精益创业实践[增长黑客]

1),精益创业代表了一种不断形成创新的新方法,提倡企业进行“验证性学习”,先向时常推出极简的原型产品[MVP-minimum viableproduct],然后...

782
来自专栏新智元

MIT教授称人类大脑并不比AI复杂,30年内机器智能将可复制爱与同情

【新智元导读】不久前,由IBM研发的AI辩论系统Project Dabater与人类辩论冠军进行了一场辩论,AI的表现令人印象深刻。从Project Debat...

996
来自专栏程序员笔记

平衡,平衡(下)

2206
来自专栏机器学习算法与Python学习

普通程序员如何转向AI方向?

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 ? 编辑|厂白小 AI——当下最热的...

3455
来自专栏CSDN技术头条

人工智能演进:道德可以被编程吗?

人工智能的最新进展明确表明,我们的电脑需要有一个道德准则。不同意?想想看:一辆车开车上路时,一个骑自行车的孩子在它的前面突然转了个弯。此时车子能转弯进入逆行车道...

2077
来自专栏数据科学与人工智能

【问答】什么是人工智能?

人工智能(Artificial Intelligence, AI): 人工智能(Artificial Intelligence, AI)亦称机器智能,是指由人制...

3177

扫码关注云+社区

领取腾讯云代金券