Open Source Data Science Projekte sollen dazu beitragen


14

Beiträge in Open-Source-Projekten sind in der Regel eine gute Möglichkeit, um sich mit Einsteigern vertraut zu machen und einen neuen Bereich für erfahrene Datenwissenschaftler und Analysten zu erschließen.

Welche Projekte tragen Sie bei? Bitte geben Sie eine Einführung + Link auf Github.


2
Schauen Sie sich ELKI an (auf Github, Java; siehe auch Wikipedia). Ich benutze dies oft, weil es das umfassendste Projekt zur Erkennung von Clustern und Anomalien ist. und normalerweise auch viel schneller als R.
Anony-Mousse

Antworten:


14

Das Julia-Projekt ist eines, an dem ich aktiv mitarbeite, einschließlich der Advanced Computing- und XGBoost-Bibliotheken. Ich kann also definitiv für die Pflege und die Qualität der Community bürgen.

Einige wirklich gute Open Source Data Science-Projekte, zu denen auch Anfänger beitragen können, sind:

  • Sklearn : Die Sklearn-Community entwickelt sich immer in rasantem Tempo und ist offen für neue Entwickler und Mitwirkende.
  • H2O : H2O ist ein weiteres schnell wachsendes Data Science-Projekt, das an skalierbaren Lösungen für maschinelles Lernen und Deep Learning arbeitet.
  • Go : Fahrplan und Ressourcen für Open Source Data Science. Nicht wirklich ein technisches Projekt, aber sehr hilfreich für absolute Anfänger und angehende Analysten.
  • Pylearn2 : Ein weiteres schnell wachsendes Projekt für maschinelles Lernen und vertieftes Lernen.
  • Vowpal Wabbit : Das Vowpal Wabbit (VW) -Projekt ist ein schnelles Out-of-Core-Lernsystem, das von Microsoft Research und (zuvor) Yahoo! Forschung.

Hier ist eine Quora-Diskussion über solche Projekte und einige weitere, die in dieser Antwort nicht erwähnt werden.

Hier ist eine weitere nette Diskussion über Open Source Data Science- und ML-Projekte in Python.


2
Ich bestätige - es ist sehr einfach, sich für sklearn zu engagieren. Öffnen Sie einfach eine Pull-Anfrage und fertig.
Alexey Grigorev

Pylearn2 ist nicht mehr aktiv. Keras, Lasagne und Blöcke sind eine bessere Option für den Beitrag.
SHASHANK GUPTA

6

Es gibt viele davon. Ich weiß nicht, ob ich das darf (lass es mich bitte wissen, wenn es falsch ist), aber ich entwickle eins und es hat bereits über 2 Jahre auf Git Hub (es hat tatsächlich ein Jahr vor Github angefangen). Das Projekt heißt rapaio, ist auf Git Hub hier und vor kurzem habe ich angefangen, ein Handbuch dafür zu schreiben (einige meiner Freunde haben mich danach gefragt). Das Handbuch finden Sie hier .

Es passt zu Ihren Anforderungen, wenn Sie bereit sind, in Java 8 zu entwickeln, wenn Sie sich selbst ein Werkzeug anfertigen und wenn Sie experimentieren möchten. Es gibt nur zwei Prinzipien, die ich durchsetze. Der erste ist , etwas nur dann zu schreiben, wenn Sie es brauchen . Das liegt daran, dass ich fest davon überzeugt bin, dass Sie nur dann wirklich wissen, was Sie von einem Tool in Bezug auf Leistung, Leistung und Informationen erwarten. Das zweite Prinzip ist, dass Sie nur von jdk abhängig sind. Wenn Sie etwas brauchen, werden Sie es schreiben . Ich kann zustimmen, dass ich altmodisch bin, aber Sie können jedes Feature auf diese Weise für Ihren Zweck anpassen.

Wenn ich das als Antwort nicht darf, lassen Sie es mich bitte wissen. Obwohl es sich um eine Open-Source-Initiative handelt, sehe ich keinen Grund, warum ich es nicht tun konnte, um den Menschen etwas zurückzugeben, die kein gewinnorientiertes Projekt haben.


2
+1 Ich denke, es ist ein großartiges Projekt für jemanden, der einen Beitrag leistet. Ich danke Ihnen für das Teilen. Zumindest halte ich es nicht für irrelevant :)
Dawny33

1
Haben Sie darüber nachgedacht, sich einem der vielen ähnlichen Projekte anzuschließen? Sagen wir, ELKI, Weka, JSAT, Smile, Hubminer, ... haben Sie ein Benchmarking durchgeführt? Auf den ersten Blick habe ich einige Konstrukte gesehen, die für mich sehr teuer aussehen (obwohl sie wahrscheinlich nicht so schlecht sind wie R).
Anony-Mousse - Monica

Mein Ziel war es, einen netten, programmiererfreundlichen Werkzeugsatz zu haben, Leistung war kein Ziel. Aber ich fing an, das neu zu bewerten. In Bezug auf andere Projekte: Aus rechtlichen Gründen kann ich mich nicht auf verteilte Inhalte festlegen und ich kann nur zu Projekten mit Open Source-Lizenzen beitragen. Wie auch immer, danke, dass Sie sich das angesehen haben. Ich würde mich sehr freuen, wenn Sie mir weitere Einzelheiten zu den von Ihnen erwähnten Konstrukten mitteilen könnten. Ich gehe davon aus, dass Ihre Zeit begrenzt ist, und ich wage es nicht, eine vollständige Diskussion zu führen
rapaio

1
ELKI ist AGPL-3. Es wird nicht verteilt, hat jedoch einige Optimierungen auf niedriger Ebene für eine hohe "lokale" Leistung (noch kein Java 8). JSAT, Smile, Hubminer - alle sind Open Source, wahrscheinlich meistens Apache, nicht verbreitet und nicht so optimiert, wenn ich mich nicht irre (ich benutze meistens ELKI).
Anony-Mousse

4

ELKI (auch auf GitHub ) ist ein Open-Source-Projekt für Data Mining und Data Science. Es ist einzigartig in Bezug auf seine modulare Architektur: Sie können Algorithmen, Abstandsfunktionen und Indizes für die Beschleunigung mit sehr wenigen Einschränkungen kombinieren (natürlich können Algorithmen, die keine Abstände verwenden, nicht mit Abständen kombiniert werden). Dies ist aus Effizienzgründen nicht der einfachste Code. Beim Data Mining müssen Sie vorsichtig mit dem Arbeitsspeicher ArrayList<Integer>umgehen. Wenn Sie Skalierbarkeit wünschen , ist die Verwendung ein absolutes Muss.

Aufgrund der modularen Architektur ist es einfach, nur kleine Module wie eine einzelne Distanzfunktion oder einen Algorithmus beizutragen.

Wir führen eine Liste mit Ideen für Data Mining-Projekte , die grob nach Schwierigkeitsgraden geordnet sind. Die meisten Projekte sind die Implementierung einer Variante eines Algorithmus. ELKI zielt darauf ab, vergleichende Studien von Algorithmen zu ermöglichen, daher versuchen wir, jede Kombination zuzulassen und auch Varianten von Algorithmen abzudecken. Zum Beispiel haben wir mit k-means nicht nur den Lloyds-Algorithmus, sondern 10 Varianten des allgemeinen k-means-Themas. Über 220 Artikel wurden (zumindest teilweise) in ELKI neu implementiert.

Indem wir alles im selben Tool implementieren, erhalten wir viel vergleichbarere Ergebnisse. Wenn Sie R für das Benchmarking verwenden, vergleichen Sie normalerweise Äpfel und Orangen. k-means in R selbst ist eigentlich ein altes Fortran-Programm und sehr schnell. k-means in R aber im "flexclust" -Paket ist 100x langsamer, weil es in echtem R-Code geschrieben ist. Vertraue also keinem Benchmark in R ... auch neigen R-Module dazu, inkompatibel zu sein, daher kannst du oft nicht den Abstand A von Modul A mit Algorithmus B von Modul B verwenden. In ELKI versuchen wir, so viel Code wie möglich zu teilen Implementierungsübergreifend möglich, um solche Artefakte zu reduzieren (es wird natürlich nie möglich sein, einen zu 100% fairen Benchmark zu haben - es gibt immer Raum für Optimierungen), aber auch, um das einfache Kombinieren von Modulen zu ermöglichen.

Sie könnten mit etwas Kleinem wie der Hartigan & Wong-Variante mit k-Mitteln beginnen und dann mit sphärischen k-Mitteln fortfahren (die für spärliche Daten gedacht sind, bei denen verschiedene Leistungsoptimierungen erforderlich sein können) und mit einer besseren Unterstützung für kategoriale Daten fortfahren. oder Hinzufügen von Indizierungsfunktionen.

Ich würde auch gerne eine bessere Benutzeroberfläche für ELKI sehen , aber das ist eine große Anstrengung.


4

Wenn Sie plattformübergreifende visuelle Programmiertools mögen, ist Orange eine Option. Nachdem sie kürzlich zu Python 3 gewechselt sind, haben sie noch nicht alle Widgets portiert. Es bringt den PyData-Stack (NumPy, SciPy, SciKit Learn, ...) zu Python 3, PyQt, PyQtGraph und es ist auf GitHub GPL-fähig .

Orange Bildschirmshow


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.