开源数据科学项目做出贡献


15

对开源项目的贡献通常是一种很好的方式,可以让新手有所实践,并为经验丰富的数据科学家和分析人员尝试一个新领域。

您贡献哪些项目?请在Github上提供一些介绍+链接。


2
查看ELKI(在github,Java上;另请参阅Wikipedia)。我经常使用它,因为它是用于聚类和异常检测的最完整的项目。通常也比R快
已退出-Anony-Mousse 2015年

Answers:


15

朱莉娅项目是一个我作出积极贡献,其中包括先进的计算和XGBoost库。因此,我绝对可以保证它的维护性和社区的素质。

一些非常好的开源数据科学项目,即使是初学者也可以做出贡献:

  • Sklearn:sklearn社区始终保持快速发展,向新开发人员和贡献者开放。
  • H2O:H2O是另一个快速发展的数据科学项目,致力于可扩展的机器学习和深度学习解决方案。
  • 转到:开源数据科学路线图和资源。这不是一个真正的技术项目,但是对于绝对的初学者和有抱负的分析师来说非常有帮助。
  • Pylearn2:另一个快速发展的机器学习和深度学习项目。
  • Vowpal Wabbit:Vowpal Wabbit(VW)项目是由Microsoft Research和(先前)Yahoo!赞助的一种快速的核心学习系统。研究。

这是有关此类项目的Quora讨论,而本答案中未提及的更多讨论

这是关于Python中的开源数据科学和ML项目的另一个很好的讨论


2
我确认-提交sklearn非常容易,只需打开请求请求即可。
Alexey Grigorev

Pylearn2不再有效。Keras,烤宽面条和块是更好的选择。
SHASHANK GUPTA'7

6

有很多可用的。我不知道是否可以这样做(请告诉我是否有错),但是我开发了一个,并且它已经在git hub上使用了2年以上(实际上是在github之前开始的)。该项目被称为rapaio,是git的枢纽位置,最近我开始写一本手册为它(我的一些朋友问我这个问题)。该手册可在此处找到。

如果您愿意使用Java 8进行开发,并且愿意自己做任何工具,也想尝试一下,那么它将满足您的需求。我只执行两个原则。第一个是只在需要时才写东西。这是因为我坚信,只有在需要工具时,您才能从输出,性能和信息方面知道真正想要的工具。第二个原则是您仅依赖jdk,如果您需要某些内容,则可以编写它。我可以同意我是老式的,但是您可以按照这种方式定制任何功能。

如果我不允许这样做,请再次通知我。尽管由于这是一个开放源代码的计划,但可以回馈那些没有任何利润类型的项目的人,但我看不出为什么不能这样做。


2
+1我认为这对某人做出贡献是一个很棒的项目。谢谢你的分享。Atleast,我认为这无关紧要:)
Dawny33

1
您是否考虑过与众多其他类似项目之一共同努力?假设,ELKI,Weka,JSAT,Smile,Hubminer,...基准化了吗?快速浏览后,我发现一些构造对我来说看起来非常昂贵(尽管可能不如R差)。
已退出-Anony-Mousse,2016年

我的目标是拥有一套友好的,易于程序员使用的工具,而性能并不是目标。但是我开始重新评估。关于其他项目:由于法律问题,我不能承诺分发东西,而只能为拥有某种类型的开源许可证的项目做出贡献。无论如何,谢谢您的关注,如果您能给我更多关于您提到的结构的细节,我将非常高兴。我希望您的时间有限,而且我不敢进行全面讨论
rapaio

1
ELKI是AGPL-3。它不是分布式的,但是具有一些低级别的优化功能,以实现较高的“本地”性能(尚无Java 8)。JSAT,Smile,Hubminer-所有这些都是开源的,可能大多是apache,没有分布式,并且如果我没有记错的话还没有优化(我主要使用ELKI)。
已退出(Quit)– Anony-Mousse


4

ELKI(也在GitHub上)是数据挖掘和数据科学开源项目。就其模块化体系结构而言,它是独一无二的:您可以结合算法,距离函数和索引来进行加速而几乎没有限制(当然,不使用距离的算法无法与距离结合)。由于效率高,它不是最简单的代码。对于数据挖掘,您需要注意内存- ArrayList<Integer>如果要获得可伸缩性,则不能使用。

由于采用了模块化架构,因此很容易仅贡献一些小模块,例如单个距离函数或算法。

我们保留一份数据挖掘项目构想清单,按难度大致分组。大多数项目都是算法的某些变体的实现。ELKI旨在允许对算法进行比较研究,因此我们尝试允许任何组合,并涵盖算法的变体。例如,对于k均值,我们不仅具有劳埃德算法,而且具有通用k均值主题的10个变体。在ELKI中重新实现了至少220篇文章(至少部分地)。

通过在同一工具中实施所有操作,我们可以获得可比的结果。如果使用R进行基准测试,通常会比较苹果和橙子。R本身中的k-means实际上是一个旧的Fortran程序,并且非常快。在R中,但在“ flexclust”包中的k均值要慢100倍,因为它是用真实的R代码编写的。因此,不要相信R中的基准...而且,R模块往往是不兼容的,因此您通常无法使用与模块A的距离A和与模块B的算法B。在ELKI中,我们尝试共享尽可能多的代码可能在整个实现中减少此类伪像(当然,永远不可能有100%公平的基准-总是有优化的空间),而且还允许轻松地组合模块。

您可以先从较小的东西开始,例如Hartigan&Wong k-means变体,然后再继续进行球形k-means(这是针对稀疏数据,可能需要进行不同的性能优化),然后继续为分类数据添加更好的支持;或添加索引功能。

我也很想为ELKI看到一个更好的UI,但这是一项巨大的努力。


4

如果喜欢跨平台的可视化编程工具,则可以选择Orange。最近迁移到Python 3后,他们还没有移植所有小部件。它将PyData堆栈(NumPy,SciPy,SciKit Learn等)带到Python 3,PyQt,PyQtGraph,并在GitHub上进行了 GPL 处理

橙色屏幕显示

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.