Do we have Machine learning libraries in C++ or JAVA?




Do we have any libraries for machine learning techniques and algorithms in programming languages like C++ or JAVA? If yes, then are they uncommon because of the complexity of these languages as compared to R or SAS or any other tool OR some other reason?




Below are list of most common libraries in C++ or JAVA.


Spark: It is almost hundred times faster than Hadoop, now it has MLLib, which contains a good selection of machine learning algorithms, including classification, clustering and recommendation generation.

Mahout: Apache’s machine learning framework built on top of Hadoop, this looks promising, but comes with all the baggage and overhead of Hadoop.

Weka: this is a Java based library with a graphical user interface that allows you to run experiments on small datasets. This is great if you restrict yourself to playing around to get a feel for what is possible with machine learning.

Mallet: another Java based library with an emphasis on document classification. I’m not so familiar with this one, but if you have to use Java this is bound to be better than Weka.

JSAT: stands for “Java Statistical Analysis Tool”


Vowpal Wabbit: designed for very fast learning and released under a BSD license, this comes recommended by terath on Reddit.

MultiBoost: a fast C++ framework implementing some boosting algorithms as well as some cascades (like the Viola-Jones cascades). It’s mainly focused on AdaBoost.MH so it is multi-class/multi-label.

Shogun: large machine learning library with a focus on kernel methods and support vector machines.

For more detail on other language machine learning libraries you can refer below link: machin