我们仔细分析了哪些主流工具是“朋友”、这些工具对Python与R的偏向性、哪些工具与Spark/Hadoop和深度学习很兼容,并介绍了新兴的大数据深度学习生态系统。
上个月,我们KDnuggets公布了第18份年度KDnuggets软件调查:《分析、数据科学和机器学习领域的新领导者、趋势和惊讶》的结果。
本文更详细地介绍了哪些工具相互很搭、哪些则不然。我们还发现了一个对Python友好的新兴生态系统,这方面的工具通常与数据科学的两个前沿:大数据(Spark/Hadoop)和深度学习结合使用。
本文末尾附有匿名数据集的链接,诸位可以自行分析数据。
我们先看一下主流工具之间的关系。
我们选择了至少获得500张选票的工具――今年这样的工具共有11种。
有好多方法可以衡量两个名义特征或二元特征(比如chi-square或T-test)之间的相关性有多显著,不过我们使用了与我们的2015年分析和2016年分析同样的简单衡量尺度。我们将“Lift”定义为:
Lift(X& Y)= pct(X& Y)/(pct (X)* pct(Y))
其中,pct(X)是选择X的用户的百分比。
Lift(X&Y)> 1表示,如果X和Y是独立的工具,X和Y出现在一起的频率之高超乎预料;
为了更容易看清与1之间的差异,我们定义
Lift1(X& Y) = Lift(X& Y)- 1
下面图1显示了11种主流工具之间成对的lift1,已经过了过滤,只显示Lift1绝对值> 15%的相关性。
2017年数据科学和机器学习主流工具的相关性
绿色代表正相关,红色代表负相关
标签是上面所解释的Lift1;条宽与Lift1成正比。
需要说明的一点是,Python不仅与Anaconda、Tensorflow和scikit-learn有着显著正相关性(这在预料之中),还与Spark有着显著正相关性。
在较为流行的工具当中,R的相关性不如Python来得显著。
RapidMiner与其他主流工具(Tableau除外)之间基本上负相关。Excel用户还喜欢Tableau。Spark的“最佳朋友”是Tensorflow和scikit-learn。
Python、Spark、Anaconda、Tensorflow和scikit-learn经常结合使用,似乎组成了基于Python的新兴大数据和深度学习生态系统的核心。
Python vs R
接下来我们分析30种主流工具与Python和R的亲和性(affinity)。
不妨用with_Py(X)= %表示工具X与Python结合使用的频率,用with_R(X) %表示工具X与R结合使用的频率。为了直观地显示亲和性,我们使用了一个很简单的衡量公式:Bias_Py_R(X)= log2(with_Py(X)/with_R(X))。如果工具更常与Python结合使用,其值为正;如果更常与R结合使用,其值为负。可以针对Python和R的相对频率来校正,但由于它们在2017年几乎相等,校正就无关紧要了。
2017年30种主流数据分析和机器学习工具与Python和R的相关性
条长是上面所定义的Bias_Py_R,条高是工具的受欢迎程度。
需要说明的一点是, Python的朋友不仅包括scikit-learn、PyCharm和Anaconda(这在预料之中),还包括深度学习工具Keras和Tensorflow,尤其还包括Spark和Scala.
R的最佳朋友包括SAS Base、微软的工具(由于微软收购了Revolution Analytics,这在预料之中)、Weka和Tableau。
接下来我们分析不同的工具与大数据和深度学习结合使用有多好。
大数据和深度学习
Spark / Hadoop工具被33%的《KDnuggets2017年软件调查》受访对象所使用,深度学习工具被32%的受访对象所使用。想了解工具的完整列表,请参阅该文:http://www.kdnuggets.com/2017/05/poll-analytics-data-science-machine-learning-software-leaders.html。
至于每一种工具(X),我们计算了它与Spark/Hadoop工具结合使用的频率有多高(纵轴)以及与深度学习工具结合使用的频率有多高(横轴)。
主流数据科学和机器学习工具与深度学习的亲和性和与Spark/Hadoop的亲和性。
圆圈大小对应于工具的使用份额,颜色则对应于工具与Python的偏向性(蓝色)和与R的偏向性(桔黄色)。
需要说明的一点是,该图右上方有一组与Python有关的蓝色圆圈,包括scikit-learn、PyCharm、Anaconda、Java和Unix这些工具,它们更经常与Spark/Hadoop和深度学习工具结合使用。
这表明,对Python友好的大数据/深度学习生态系统由此形成。
需要说明的一点是,Scala是最密切相关的“大数据”工具。
为了让图3更清晰易读,它只包括至少有200张选票的工具,不包括深度学习和Spark/Hadoop工具。想了解至少有100张选票的工具方面的更详细信息,请参阅下面表1。
表1:主流数据科学和机器学习工具与深度学习的亲和性和与Spark/Hadoop的亲和性
工具
|
选票
|
与Spark/Hadoop
的亲和性
|
与深度学习
的亲和性
|
全部
|
2881
|
33.4%
|
31.9%
|
Python
|
1516
|
45.1%
|
47.8%
|
R语言
|
1502
|
40.3%
|
36.6%
|
SQL语言
|
1006
|
44.5%
|
34.5%
|
RapidMiner
|
946
|
28.2%
|
26.0%
|
Excel
|
810
|
28.6%
|
26.8%
|
Spark
|
654
|
100.0%
|
61.8%
|
Anaconda
|
629
|
43.7%
|
55.3%
|
Tensorflow
|
581
|
57.0%
|
100.0%
|
scikit-learn
|
561
|
49.6%
|
64.3%
|
Tableau
|
560
|
36.8%
|
29.5%
|
KNIME
|
551
|
29.6%
|
31.8%
|
开源Hadoop工具
|
431
|
100.0%
|
59.2%
|