Python é uma abundância de bibliotecas ML (como o ótimo scikit-learn). Existe algo bom para java / scala, contendo muitos algos (regressão, classificação, clustering, validação cruzada, processamento de recursos), estáveis e mantidos e capazes de lidar com um conjunto de dados massivo?
Acabei de encontrar o Mahout, o Breeze / Nak e o Weka, mas eles não parecem tão bons quanto os do Python.
Além disso, se não houver equivalente, como posso conectar eficientemente o código java ao Python?
machine-learning
python
software
java
boskaiolo
fonte
fonte
Respostas:
Você pode achar útil esta extensa lista com curadoria de bibliotecas, estruturas e ferramentas de software ML . Em particular, ele contém os recursos que você procura - listas ML para Java e Scala .
fonte
O Apache Spark e especificamente seu componente MLlib se parecem exatamente com o que você está procurando. O MLlib contém implementações para classificação, regressão, redução de dimensionalidade, etc. Você pode programar em Scala, Java e Python.
É basicamente uma estrutura de computação distribuída muito rápida que pode ser executada em um cluster Hadoop. Para fins de desenvolvimento, você também pode executá-lo facilmente no modo independente (sem o Hadoop) em sua máquina local.
Confira o guia do MLlib aqui: https://spark.apache.org/docs/latest/mllib-guide.html
fonte
Veja o JavaML ( http://java-ml.sourceforge.net/ ) e o Encog ( http://www.heatonresearch.com/encog ). O último se concentra mais nas redes neurais do que em muitos algoritmos.
Além disso, o weka pode não ter uma API java muito amigável (porque, antes de tudo, é um aplicativo GUI, não uma biblioteca), mas quando você se acostuma, começa a avaliar quantas coisas são implementadas lá.
Eu usei com sucesso todos eles.
fonte