分享

新兴生态系统:Python和R语言,谁更适用于大数据Spark/Hadoop和深度学习?

 昵称42427018 2017-09-03

作者: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格式输入匿名的轮询数据的链接

http://www./aps/sw17-top11-dl-sh.anon.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 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多