I'm trying to use a
Support Vector Machine for classification using
Scikit-Learn while understanding how to tune the hyperparameters.
My original dataset has ~4000 features and ~150 samples. I've tried a few transformation techniques to get the data into ~10000 samples and 5 features. My features range from 0 - 1 and are scaled per sample. My classification tasks has 5 different targets.
There are 3 options for classifiers:
I have been using the
SVC algorithm but only because I don't understand what is happening with the
When would you use one over the other (e.g. SVC over NuSVC?)
I also don't understand when a Linear kernel would be desirable. If the data was linearly separable, wouldn't a more simple algorithm be used like a LogisticRegression?
I understand the basis of how a Support Vector Machine works and creating hyperplanes that separate out the classes but there are lots of hyperparameters that are slightly esoteric.
For example, my hyperparameter confusion:
- What is
- How does
coef0affect the kernel?
- How does
gammaaffect the kernel?
- If I set
kernel="linear"for SVC, would that make it the same as
- What penalty is
Creferring to? Does it use
l2loss by default? What is the range for