C++ machine learning framework
Solution 1
Ok, so after a few days of on and off searching, I think I can pretty safely say that there is no such thing. None of the existing libs provide anything even close to the level of sophistication of Encog, and since one of the main reasons I wanted it in C++ was the fact that I kind of need QT integration, I suppose I'll just end up using Encog and Jambi.
Anyway, to those who stumble upon this somewhat later on / from Google, there's basically three frameworks/libraries that do offer somewhat reasonable features, and they should really be enough if you don't want LMA, PSO, annealing or any of that more exotic stuff:
- Shark
- dlib, also mentioned by ffh
- OpenCV's ML library mentioned by rics
That's pretty much it. The rest is immature/dead or just really too lacking functionality-wise to mention. If I ever decide to roll my own project (quite possible, as I pretty much need it for work), I'll be sure to update this place with a link.
Solution 2
The mloss repository has a number of C++ based open source machine learning frameworks. Personally, I find dlib quite useful.
Solution 3
Encog is in the process of being ported to C/C++.
https://github.com/encog/encog-c
Solution 4
This is the best one I have ever seen for Neural Networks: EBLearn
Solution 5
Although OpenCV is primarily used for computer vision its machine learning library (ml) contains classes that handle decision trees, Bayes classifier, multi-layer perceptron, boosting etc.
Comments
-
TC1 almost 2 years
I can't seem to find a C++ based ML/AI framework that implements a wide variety of neural network algorithms. I've used Encog for these purposes when working in Java, but I don't see anything that's similar, functionality-wise, in C++. The closest I've seen is FANN, but it lacks some stuff, LMA & annealing for example.
EDIT: The best alternative I've found is Shark, but as I said, it's still lacking and has only the more commonly used features, no LMA, annealing or PSO or anything of that level.
-
TC1 over 12 yearsPretty neat, better than anything I'd found, but still, the MLP section only supports RProp...
-
Rohit Vipin Mathews over 11 yearsBetter provide some details. Like how and why you think its the best.
-
mtall over 10 yearsYou may also want to look at the MLPACK C++ library, which has many machine learning algorithms