Biblioteca completa de aprendizaje automático para Java / Scala [cerrado]

8

Python es un montón de bibliotecas ML (como el gran scikit-learn). ¿Hay algo bueno para Java / Scala, que contiene muchos algos (regresión, clasificación, agrupación, validación cruzada, procesamiento de características), estable y mantenido y capaz de manejar un conjunto de datos masivo?

Acabo de encontrar a Mahout, Breeze / Nak y Weka, pero no se ven tan bien como los de Python.

Además, si no hay un equivalente, ¿cómo puedo conectar eficientemente el código Java con Python?

boskaiolo
fuente
Quizás considere agregar un pequeño detalle sobre lo que hace que scikit-learn sea excelente en comparación con Mahout & c.
Scortchi - Restablece a Monica
Gran cantidad de algoritmos para clasificación, regresión, selección de características, reducción de características, etc. Además, tiene una gran comunidad de contribuyentes y apoyo
boskaiolo
¿Podría ser un poco más específico sobre lo que está tratando de lograr? Una forma común de "conectar" Java y Python es usar jython, jython.org .
sandris
Echa un vistazo a mloss.org
Marc Claesen

Respuestas:

16

Puede encontrar útil esta extensa lista de bibliotecas, marcos y herramientas de software de ML . En particular, contiene los recursos que está buscando: listas ML para Java y Scala .

Aleksandr Blekh
fuente
77
Soy el propietario de esa lista. Me gustaría agregar que se actualiza regularmente, con solicitudes de extracción que llegan todas las semanas
Joseph Misiti
@JosephMisiti: Gracias por la actualización. Es bueno saberlo, sigue así.
Aleksandr Blekh
5

Apache Spark y específicamente su componente MLlib se ve exactamente como lo que estás buscando. MLlib contiene implementaciones para clasificación, regresión, reducción de dimensionalidad, etc. Puede programar en Scala, Java y Python.

Básicamente es un marco informático distribuido muy rápido que se puede ejecutar en un clúster Hadoop. Para fines de desarrollo, también puede ejecutarlo fácilmente en modo independiente (sin Hadoop) en su máquina local.

Consulte la guía MLlib aquí: https://spark.apache.org/docs/latest/mllib-guide.html

Suvir
fuente
1

Eche un vistazo a JavaML ( http://java-ml.sourceforge.net/ ) y Encog ( http://www.heatonresearch.com/encog ). Este último se centra más en redes neuronales que en muchos algoritmos.

Además, es posible que weka no tenga una API de Java muy amigable (porque, en primer lugar, es una aplicación GUI, no una biblioteca), pero cuando te acostumbras, comienzas a apreciar cuántas cosas se implementan allí.

Los he usado con éxito todos.

Alexey Grigorev
fuente