Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

number of support vectors libsvm

The prediction time depends on number of support vector, but I want to do prediction faster.

How can I set number of support vectors in libsvm to const value?

Maybe I can find N support vectors and then reduce it to K (K< N) by some approximation?

like image 409
mrgloom Avatar asked Dec 20 '22 07:12

mrgloom


2 Answers

As stated in other answers, the easier way to control the number of support vectors is by playing with C and kernel parameters. However, there are a few interesting papers on that topic:

Building Support Vector Machines with Reduced Classifier Complexity PDF

An Efficient Method for Simplifying Support Vector Machines PDF

A Study on Reduced Support Vector Machines PDF

And unfortunately I couldn't find a public source for this one:

An Algorithm for Reducing the Number of Support Vectors (http://link.springer.com/chapter/10.1007%2F1-4020-3432-6_12?LI=true#page-1)

like image 168
Pedrom Avatar answered Apr 20 '23 10:04

Pedrom


Number of support vectors depends on training data and parameters c, and chosen kernel parameters (e.g. gaussian has Gamma).

As far as I know there is no explicit way how to define number of support vectors. Just a clue: maybe some extreme values like c=0 would make some extreme number of support vectors - but supposedly it is not what you are looking for ...

Likely, better approach would be to find parameters setting that would give you number of support vectors you need and results are still reasonable.

like image 23
xhudik Avatar answered Apr 20 '23 08:04

xhudik