I am in search of open source classification algorithms. I am working on a computer vision project that uses classification for scene recognition. I wish to bench test a range of machine learning algorithms for the classification stage. The implementations must be on open source licenses and preferably written in C++. All and any help would be highly appreciated. Thanks in advance.
4 Answers
dlib
http://dlib.net/
Machine Learning (including classification) http://dlib.net/ml.html
Examples: http://dlib.net/multiclass_classification_ex.cpp.htmlShark
http://image.diku.dk/shark/sphinx_pages/build/html/
http://image.diku.dk/shark/sphinx_pages/build/html/rest_sources/tutorials/tutorials.htmlShogun - A Large Scale Machine Learning Toolbox
http://shogun-toolbox.org/
http://shogun-toolbox.org/doc/en/current/methods.html
http://shogun-toolbox.org/doc/en/current/libshogun_examples.html
// Note: the aforementioned example has me rather worried in that it seems this library is not following best practices of modern C++: in particular, raw pointers and manualnew
/delete
are usually a bad practice without a specific, well-motivated need (that I find lacking in the context of the presented examples). See: http://herbsutter.com/elements-of-modern-c-style/Vowpal Wabbit
https://en.wikipedia.org/wiki/Vowpal_Wabbit
https://github.com/JohnLangford/vowpal_wabbit/wiki
Written in C++, can be used as a library; examples:
https://github.com/JohnLangford/vowpal_wabbit/tree/master/library
// Note: manual invocations ofVW::initialize
andVW::finish
operating on a raw pointervw*
raise concerns similar to the ones above; example: https://github.com/JohnLangford/vowpal_wabbit/blob/master/library/library_example.cc
For more, see also Machine Learning Open Source Software:
http://mloss.org/software/language/c__/
You may also find the following of use:
- https://stackoverflow.com/questions/3167024/fastest-general-machine-learning-library
- https://stackoverflow.com/questions/2915341/which-machine-learning-library-to-use
What you really need is OpenCV . OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. It has C++, C, Python and Java interfaces and supports Windows, Linux, Android and Mac OS.
You may find there lots of solutions for computer vision recognition problems.

- 591
- 1
- 3
- 12
LIBSVM, de facto standard for SVM learning (BSD license):
- home page
- implemented in
C
, so trivial to use inC++
- interfaces in various languages available, including R (kernlab), Python (scikit-learn), ...
Shameless self advertisement: EnsembleSVM
EnsembleSVM is a toolbox for fast nonlinear learning with SVMs. Licensed under LGPL v3. Some basic info is available in our paper.

- 17,399
- 1
- 49
- 70