How do I determine the optimal C / Gamma settings in libsvm?

I am using libsvm for multi-class classification of datasets with a lot of features / attributes (about 5800 per item). I would like to choose better parameters for C and Gamma than the default that I am currently using.

I've already tried easy.py running, but for the datasets I use, the estimated time is almost forever (runs easy.py on 20, 50, 100, and 200 sample data and got a superlinear regression that projected my required runtime to take years).

Is there a way to achieve higher C and Gamma values ​​faster than the default? I am using Java Libraries if it matters.

+2


a source to share


1 answer


It is possible to accomplish this without looking for a grid, which I suppose easy.py

does.

Take a look at this article from Trevor Hastie et al: A Whole Regularization Path for a Vector Support Machine (PDF). One "SVM run" will calculate the loss for all "C" values ​​in one snapshot, so you can see how this affects SVM performance.



They have an implementation of this algorithm that you can use in R via svmpath .

I believe the core of the algorithm is written in fortran but wrapped in R.

+3


a source







All Articles