Komplette Bibliothek für maschinelles Lernen für Java / Scala [geschlossen]

8

Python ist eine Menge ML-Bibliotheken (wie das großartige Scikit-Lernen). Gibt es etwas Gutes für Java / Scala, das viele Algen enthält (Regression, Klassifizierung, Clustering, Kreuzvalidierung, Feature-Verarbeitung), stabil und gepflegt ist und mit massiven Datenmengen umgehen kann?

Ich habe gerade Mahout, Breeze / Nak und Weka gefunden, aber sie sehen nicht so gut aus wie Python.

Wenn es kein Äquivalent gibt, wie kann ich Java-Code effizient mit Python verbinden?

Boskaiolo
quelle
Vielleicht sollten Sie ein kleines Detail darüber hinzufügen, was Scikit-Lernen im Vergleich zu Mahout & c großartig macht.
Scortchi - Monica wieder einsetzen
Viele Algorithmen für Klassifizierung, Regression, Merkmalsauswahl, Merkmalsreduzierung usw. Darüber hinaus hat es eine große Community von Mitwirkenden und Support
Boskaiolo
Könnten Sie etwas genauer sagen, was Sie erreichen möchten? Ein üblicher Weg, um Java und Python zu "verbinden", ist die Verwendung von jython, jython.org .
Sandris
Check out mloss.org
Marc Claesen

Antworten:

16

Diese umfangreiche kuratierte Liste von ML-Bibliotheken, Frameworks und Softwaretools kann hilfreich sein . Insbesondere enthält es Ressourcen, nach denen Sie suchen - ML-Listen für Java und für Scala .

Aleksandr Blekh
quelle
7
Ich bin der Besitzer dieser Liste - ich möchte hinzufügen, dass sie regelmäßig aktualisiert wird - mit Pull-Anfragen, die jede Woche
eingehen
@ JosephMisiti: Danke für das Update. Es ist gut zu wissen - weiter so.
Aleksandr Blekh
5

Apache Spark und speziell seine Komponente MLlib sehen genau so aus, wie Sie es suchen. MLlib enthält Implementierungen für Klassifizierung, Regression, Dimensionsreduktion usw. Sie können in Scala, Java und Python programmieren.

Es ist im Grunde ein sehr schnelles verteiltes Computer-Framework, das in einem Hadoop-Cluster ausgeführt werden kann. Zu Entwicklungszwecken können Sie es auch im Standalone-Modus (ohne Hadoop) auf Ihrem lokalen Computer ausführen.

Lesen Sie hier den MLlib-Leitfaden: https://spark.apache.org/docs/latest/mllib-guide.html

Suvir
quelle
1

Schauen Sie sich JavaML ( http://java-ml.sourceforge.net/ ) und Encog ( http://www.heatonresearch.com/encog ) an. Letzteres konzentriert sich eher auf neuronale Netze als auf viele Algorithmen.

Außerdem verfügt weka möglicherweise nicht über eine sehr benutzerfreundliche Java-API (da es sich zunächst um eine GUI-Anwendung und nicht um eine Bibliothek handelt). Wenn Sie sich jedoch daran gewöhnen, werden Sie feststellen, wie viele Dinge dort implementiert sind.

Ich habe sie alle erfolgreich eingesetzt.

Alexey Grigorev
quelle