views:

179

answers:

4

I want to use SMO (Sequential Minimal Optimization) in order to train an SVM (Support Vector Machine). Can anyone suggest existing C++ libraries which implement SMO?

I plan to use this to train an SVM to find an object in a picture (probably a human).

+4  A: 
  1. Visit this CiteSeer page.
  2. Click "view or download."
  3. Copy/paste or otherwise extract C++ code from implementation section (pages 15 onward).

I suspect more careful searching might find an already built copy. I admit this code is a raw implementation and will probably need some fiddling to make it suitable for incorporation into your own software. Also, I don't know what kind of licensing applies here.

Brian
+2  A: 

I would suggest you try svmlight. I am not sure that it implements SMO, though. I do know that Weka has a java implementation of an SVM classifier using SMO, which may also be helpful to you. It also includes many other kinds of classifiers, and it is fairly easy to use.

Удачи!

Dima
weka does everything. It's a bit complex, but insanely full featured.
caspin
+1  A: 

You might consider Numenta http://www.vitamindinc.com They have an AI image recognition project that looks pretty good.

Jay
+1  A: 

Check out LIBSVM (http://www.csie.ntu.edu.tw/~cjlin/libsvm/). I have never used it with C++, but its MATLAB hooks worked flawlessly. In addition, a few papers that I came across used the library as a baseline comparison for their algorithmic improvements to SMO.

John