Know any good c++ support vector machine (SVM) lib

2020-02-19 05:53发布

问题:

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 7 years ago.

Do you know of any good c++ svm libraries out there I tried libsvm http://www.csie.ntu.edu.tw/~cjlin/libsvm/ but so far I'm not flabbergasted.

I have also heard of SVMLight and TinySVM. Have you tried them ? Any new players ?

Thanks !

回答1:

  • SVMTorch (support vector machines for large-scale regression problems) implemented in the torch machine learning library.
  • mySVM - based on the optimization algorithm of SVM-Light.

A comprehensive list of SVM libraries can be found here.



回答2:

I've used SVMLight before and found it to be very stable and fast. I had a good experience using it and would recommend it.

However, I think there is probably less documentation on SVMLight than libSVM; just the papers by Thorsten Joachims and the comments in the source code. I didn't find the source too hard to follow in general, but you need to read the papers beforehand to understand the background. It's also written in pure C, not C++, if that matters to you.

As for 'new players', the new research is mostly into making the SVM optimisation algorithms more efficient. For example, using stochastic gradient descent as in svmsgd and pegasos. I haven't looked at the implementations of these algorithms, but it's research code so I wouldn't expect that they are particularly easy to follow, if that's your primary concern.



回答3:

Here's another monster list of SVM packages, libraries and SVM applications.



回答4:

There is also dlib, which is quiet complete.

In particular, there are algorithms for performing classification, regression, clustering, sequence labeling, anomaly detection, and feature ranking, as well as algorithms for doing more specialized computations.



回答5:

the best way to get started is to read the libsvm guide provided in the website, also, a good starting video tutorial on how to install libsvm, and do ur first trainig/classification task can be found here: http://www.youtube.com/watch?v=gePWtNAQcK8 good luck with that, i am also just starting it these days, pretty good results that i got, but still tuning it.



回答6:

shark

SHARK is a modular C++ library for the design and optimization of adaptive systems. It provides methods for linear and nonlinear optimization, in particular evolutionary and gradient-based algorithms, kernel-based learning algorithms and neural networks, and various other machine learning techniques. SHARK serves as a toolbox to support real world applications as well as research in different domains of computational intelligence and machine learning. The sources are compatible with the following platforms: Windows, Solaris, MacOS X, and Linux.