新兴生态系统:数据科学与机器学习软件分析-36大数据
作者:Gregory Piatetsky, KDnuggets 本文为36大数据独译,译者ya楠
本文中我们将对现有大数据的顶级工具做项测验:Python和R语言,谁更适用于Spark/Hadoop和深度学习,并确定一个新兴的大数据深度学习生态系统。
上个月,我们对第18届KDnuggets软件的调查结果进行了一次报道:数据分析、数据科学、机器学习中的新领导者、趋势和惊喜。
本文将更详细的考察哪些工具能够相互之间友好合作,哪些工具则兼容性较差。我们还发现了一个新兴的Python友好型工具生态系统,这些工具通常被应用在数据科学的两大前沿:大数据(Spark / Hadoop)和深度学习。
本文的末尾有一个匿名数据集的链接——欢迎读者对数据进行分析,然后将结果发布或者发送给我。
首先,让我们来看一下顶级工具之间的联系。
我们选取了投票超过500票的工具(今年有11项入选)。
衡量两个特征之间的关联程度有很多种方法,比如卡方分析或T检验,但此次我们仍然沿用了在2015年和2016年分析时采用的相对简单的方法。此处先定义一个“Lift”
Lift (X & Y) = pct (X & Y) / ( pct (X) * pct (Y) )
其中pct(X)表示选择X的用户百分比。
Lift(X&Y)> 1表示X&Y 一起出现的频率比预设中两者相互独立要大;Lift=1表示X&Y 一起出现的频率恰好等于预设中两者相互独立,Lift<1表明X&Y 一起出现的频率小于两者相互独立的情况(负相关)。
为了更直观的看到与1之间的差距,我们定义
Lift1 (X & Y) = Lift (X & Y) – 1
表1将排名前11的工具的Lift1值进行了两两比较,并筛选出关联度绝对值abs(Lift1) 大于15%的情况。
图 1 :数据科学、机器学习高级工具关联度表, 2017
注:绿色表示正相关,红色表示负相关。
标签Lift1上文已解释;条形的宽度与Lift1的大小成正比。
我们注意到,Python不仅与Anaconda、Tensorflow和scikit- learn(不出所料)有显著的正相关,另外与Spark还具有显著正相关关系。
在比较流行的工具中,R语言相较于Python则关联性较弱。
除了Tableau之外,RapidMiner与其他顶级工具基本上都处于负相关关系,Excel用户也喜欢Tableau。而与Spark关系最密切的是Tensorflow 和scikit-learn。
Python聚类、Spark、Anaconda、Tensorflow和scikit- learn经常被一起使用,它们似乎形成了基于Python的大数据和深度学习生态系统的核心。
Python vs R 语言
接下来我们将研究使用Python或者R语言的前30个工具的亲和度。
用 with_Py(X) = %表示使用Python的工具X, with_R(X) % 表示使用R语言的工具X。可视化亲和度的过程中,我们采取一个非常简单的方式: Bias_Py_R(X) = log2(with_Py(X)/with_R(X)) ,若值为正则表明该工具更多使用了Python,当值为负则表明该工具更倾向于使用R语言。我们可以校正Python和R的相对频率,但由于它们在2017年的使用频率几乎相等,所以这种校正也是微不足道的。
表2:数据科学、机器学习前30位高级工具与Python vs R语言的关联度(2017)
条形图的长度为上文所定义的Bias_Py_R,条形图的高度与工具的受欢迎程度成正比。
我们注意到,与Python契合度较高的工具不仅包括我们预期的Scikit,PyCharm和Anaconda,而且还包括深度学习工具Keras和Tensorflow,特别是Spark和Scala。
与R语言契合度较高的工具包括SAS Base,Microsoft工具(预计自Microsoft购买Revolution Analytics后),Weka和Tableau。
接下来,我们检查不同工具在大数据和深度学习中的效果
在KDnuggets 2017 Software Poll中,33%的受访者使用了Spark / Hadoop工具,32%使用了深度学习工具。完整的工具列表可在以下图表中查看。
对于每个工具X,我们计算与Spark / Hadoop工具(垂直轴)共同使用的频率以及Deep Learning工具(横轴)共同使用的频率。
图3:深度学习vs Spark / Hadoop与顶尖数据科学,机器学习工具的亲和力(2017年)
圆形尺寸对应于各工具的使用份额,颜色与Python(蓝色)与R(橙色)相对应。
我们在图表的右上角注意到一组与Python相关的蓝色圆圈,包括scikit-learn,PyCharm,Anaconda,Java和Unix工具,这些工具更常用于Spark / Hadoop和深度学习工具。
这表明了一个Python-友好型的大数据/深度学习生态系统。
我们注意到Scala是与 “大数据”相关度最高的工具。
为了使图3更精确,它只包括至少获得200票的工具,及深度学习和Spark / Hadoop工具。请参阅下表1获取所有至少获得100票以上工具的更多详细信息。
表1:深度学习vs Spark / Hadoop与顶尖数据科学,机器学习工具的亲和力(2017年)
下面是一个以CSV格式输入匿名的轮询数据的 链接
- N:记录号(随机,记录不按投票顺序)
- 地区:usca:美国/加拿大、euro:欧洲/亚洲、Itam:拉丁美洲、afme:非洲/中东、aunz:澳大利亚/新西兰
- Python:如果投票(最后一列)包含Python,则为1,否则为0
- R语言:如果投票包含“R语言”,则为1,否则为0。我们使用“R语言”而不是R来简化正则表达式匹配
- SQL语言:如果投票包含“SQL语言”,则为1,否则为0。
- RapidMiner:如果投票包括RapidMiner,则为1,否则为0。
- Excel:如果投票包含Excel,则为1,否则为0。
- Spark:如果投票包括Spark,则为1,否则为0。
- 蟒蛇:如果投票包括蟒蛇,则为1,否则为0。
- Tensorflow:如果投票包括Tensorflow,则为1,否则为0。
- scikit-learn:如果投票包括scikit-learn,则为1,否则为0。
- Tableau:如果投票包括Tableau,则为1,否则为0。
- KNIME:如果投票包括KNIME,则为1,否则为0。
- 深度:如果投票包含深度,则为1,否则为0。
- Spark / Hadoop:如果投票包括Spark / Hadoop,则为1,否则为0。
- ntools:工具的数量
- 投票:选票列表,以分号分隔“;”
让我知道你的想法!
End.
转载请注明来自36大数据(36dsj.com): 36大数据 » 新兴生态系统:数据科学与机器学习软件分析