Python扩大领先优势,PyTorch仅占6.4%:2018年数据科学语言&工具排名

近日,著名数据科学网站 KDnuggets 发布了 2018 年数据科学和机器学习工具调查结果。超过 2000 人对自己「过去 12 个月内在项目开发中使用过的数据挖掘/机器学习工具和编程语言」进行了投票。该统计还对过去三年来的排名进行了对比分析。此外,机器之心在文末发起了一个投票,快选出你心中最美的深度学习框架吧。

这份投票结果既有预料之内,也有预料之外的部分。数据显示,Python 作为机器学习常用的编程语言正在不断扩大领先优势,R 语言的使用率第一次降到了 50% 以下。在深度学习框架上,最近呼声很高的深度学习框架 PyTorch 仅仅占据了 6.4% 的使用率,远远落后于 TensorFlow 的 29.9% 和 Keras 的 22.2%。

Python 继续侵蚀着 R 的用户领域,RapidMiner 热门度增加,SQL 保持稳定,TensorFlow 和 Keras 引领前进,Hadoop 衰落,数据科学平台整合等等。

第 19 次年度 KDnuggets 软件调查有超过 2300 人参与投票,略微少于 2017 年,可能是因为仅有一个供应商 RapidMiner 积极地参与 KDnuggests 调查的投票。平均来说,每个参与者选择 7 个使用过的不同工具,因此仅投票一个工具会带来偏差。KDnuggets 排除了大约 260 个这样的「独好」投票(主要来自 RapidMiner),因为即使他们代表了该工具的合法用户,他们的行为也是非典型的,并且会歪曲结果。

以下是基于 2052 个参与者的初始结果分析,其中「独好」投票者已被排除。更多详细分析和匿名数据将在大约两周内公布。

最受欢迎的分析、数据科学、机器学习工具

图 1:KDnuggests 分析/数据科学 2018 年软件调查:2018 年最受欢迎工具,以及它们相对于 2016-2017 年的排名变化。(为了更有效的比较,KDnuggests 排除了「独好」投票者并重新计算了 2016 年、2017 年的调查结果。)

上图显示了排名前 11 的工具,每个工具的使用率至少为 20%。

表 1:KDnuggests 2018 年软件调查最受欢迎的分析/数据科学/机器学习软件

在这里,「2018 % share」一栏是指使用该工具的用户百分比,「% change」是指和 2017 年软件调查相比的变化比例,绿色和红色标记表示比例的变化幅度达到了 10% 或更多。

每个投票人的平均使用工具数量是 7 个,略微高于 2017 年调查的 6.75 个(也排除了「独好」投票人)。

和 2017 年的软件调查相比,进入前 11 名的新工具是 Keras。Knime 从第 11 名下跌,可能是因为今年他们并没有积极调动其用户参与投票。

以下是一些观察结果。

Python 正在吞噬 R 的用户领域

2017 年 Python 的使用率超过 50%,今年它的使用率上升至 66%,而 R 的使用率首次下跌,跌破 50%。

RapidMiner 

在之前的几次问卷中,RapidMiner 这一顶级数据科学平台正快速传播,它的用户使用率由 2017 年的 33% 增长到了今年的 52.7%。根据 RapidMiner 的创始人和董事长 Ingo Mierswa,他们采取了一些措施鼓励用户参与该调查。

对于 KDnuggets 的问卷调查,Ingo Mierswa 说:「近两年我们都向用户发送邮件推广该问卷调查,但今年有超过 400 多位用户回邮件表示很高兴能帮助 RapidMiner 的传播。而且今年 RapidMiner 月度活跃用户增长率超出去年 300%,因此我们向更多用户发送了关于 KDnuggets 问卷调查的邮件。我很高兴看到如此活跃的社区。」

SQL 保持稳定

作为数据管理系统的程序语言,SQL(包括 Spark SQL 和 SQL to Hadoop 工具)继续保持着约 40% 的使用率,和之前 3 次调查结果一样。因此,如果你是一位有雄心壮志的数据科学家,学习 SQL 吧,它在很长一段时间里都会很有用!

趋势

该调查唯一使用率超过 2% 的新工具是 Spark SQL,使用率达到 11.7%。下表列举了使用率增幅达到 20% 及以上、2018 年使用率为 3% 以上的工具。

表 2:使用率增幅最大的主要分析/数据科学/机器学习工具。

整合

2017 年使用率达到 2% 及以上的 56 个工具中,有 19 个(仅 1/3)工具在 2018 年使用率有所上升,其余 37 个均下降。这和近期的收购案(Datawatch 收购 Angoss、Minitab 收购 Salford)一道表明数据科学平台的整合正在进行过程中。

2017 年使用率至少 3% 的工具,今年下降了 25% 甚至更多,详见下表。

表 3:使用率跌幅最大的主要分析/数据科学工具。

深度学习工具

近两年,该调查中使用深度学习工具的投票者所占份额保持稳定。2018 年有 33% 的投票者使用深度学习工具,2017 年和 2016 年分别有 32% 和 18%。谷歌维护的 TensorFlow 仍然占主导地位,而发展迅速的 Keras 可作为构建在 TensorFlow 和 MXNet 等框架上的高级 API。

另一方面,主要由 Facebook 推动,推出已过一年的 PyTorch 吸引了一批研究者和工程人员,使用率达到 6.4%,排名第三。由于这款深度学习框架已和 Caffe2 合并,在未来我们肯定将会看到 PyTorch 占据更大的份额。

不过 KDnuggets 更关注数据科学,也更常使用浅层的机器学习算法。我们可能更希望了解机器学习深度学习社区在框架上的选择,因此读者可以在文末对常用的深度学习框架进行投票。

深度学习工具排名:

  • Tensorflow, 29.9%

  • Keras, 22.2%

  • PyTorch, 6.4%

  • Theano, 4.9%

  • Other Deep Learning Tools, 4.9%

  • DeepLearning4J, 3.4%

  • Microsoft Cognitive Toolkit (Prev. CNTK), 3.0%

  • Apache MXnet, 1.5%

  • Caffe, 1.5%

  • Caffe2, 1.2%

  • TFLearn, 1.1%

  • Torch, 1.0%

  •  Lasagne, 0.3%

大数据工具:Hadoop 使用率下降

2018 年,大约 33% 的用户使用大数据工具,要么是 Hadoop,要么是 Spark,和 2017 年一样。但 Hadoop 的使用率显著下降,跌幅超过 30%。

以下是相关细节:

编程语言

Python 似乎不仅正在取代 R,还包括除了 SQL、Java、C/C++ 之外的大多数其它语言,这三者与 Python 大致处于同一个级别。自 KDnuggets 开始做这项调查以来,R 使用率首次出现下跌。其它语言也出现了衰落的趋势。

以下是按热门度排序的主要编程语言:

  • Python, 65.6% (was 59.0% in 2017), 11% up

  • R, 48.5% (was 56.6%), 14% down

  • SQL, 39.6% (was 39.2%), 1% up

  • Java, 15.1% (was 15.5%), 3% down

  • Unix, shell/awk/gawk, 9.2% (was 10.8%), 15% down

  • Other programming and data languages, 6.9%, (was 7.6%), -9% down

  • C/C++, 6.8%, (was 7.1%), 3% down

  • Scala, 5.9%, (was 8.3%), 29% down

  • Perl, 1.0% (was 1.9%), 46% down

  • Julia, 0.7% (was 1.2%), 45% down

  • Lisp, 0.3% (was 0.4%), -25% down

  • Clojure, 0.2% (was 0.3%), -38% down

  • F, # 0.1% (was 0.5%), -73% down

地区参与度

本次调查中不同地区的参与比例是:

  • 欧洲,37.5%

  • 美国/加拿大,36.6%

  • 亚洲,11.7%

  • 拉丁美洲,6.6%

  • 非洲/中东,4.5%

  • 澳大利亚/新西兰,3.1%

和 2017 年相比,主要的变化是欧洲的参与比例变高了(之前为 35.5%),而美国/加拿大的参与比例变低了(之前为 41.5%)。

完整结果和 3 年来的趋势

以下表格展示了调查结果的细节(由于篇幅限制,此处仅列出排名前 12 的工具):

更完整的列表请参考原文:https://www.kdnuggets.com/2018/05/poll-tools-analytics-data-science-machine-learning-results.html

产业
相关数据
大数据技术
Big data

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

MXNet技术
MXNet

MXNet是开源的,用来训练部署深层神经网络的深度学习框架。它是可扩展的,允许快速模型训练,并灵活支持多种语言(C ++,Python,Julia,Matlab,JavaScript, Go,R,Scala,Perl,Wolfram语言)

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。 近年来监督式深度学习方法(以反馈算法训练CNN、LSTM等)获得了空前的成功,而基于半监督或非监督式的方法(如DBM、DBN、stacked autoencoder)虽然在深度学习兴起阶段起到了重要的启蒙作用,但仍处在研究阶段并已获得不错的进展。在未来,非监督式学习将是深度学习的重要研究方向,因为人和动物的学习大多是非监督式的,我们通过观察来发现世界的构造,而不是被提前告知所有物体的名字。 至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

张量技术
Tensor

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

TensorFlow技术
TensorFlow

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

数据挖掘技术
Data mining

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

返回顶部