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?
machine-learning
python
software
java
Boskaiolo
quelle
quelle
Antworten:
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 .
quelle
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
quelle
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.
quelle