2
$\begingroup$

I try to classify a brainstate (binary problem) on fMRI-data using a SVM (scikit-learn, which wrapps libsvm). Also I use clusters arround local maxima in group-level TMaps as mask for the subject scanns, leading to roughly p=1500 features. Given between 85 and 90 examples, using a 5 fold cross validation I have a trainingset size arround n=70. I would now expect the SVM to overfit, and to have nearly 100% accuracy on the training set, and basically nothing on the test set (at least when unregulated). But what actually happens is that in the training set, as well as in the test set, the classifier just always predicts the label that was more likely in the training set. I tried a linear SVM, a gaussian SVM, l1 and l2 regularization, and to provoke the overfitting a C of $1^{-25}$. But everything lead to the same result. Except for one case. To test for errors, and the capeablity of the SVM to extract extremly sparse solutions i replaced the first entry of the Featurevector with the target class, which led to 100% classification accuracy for the linear-kernel with l1 and l2, but not for the Gaussian kernel, for which the SVM reached perfect classification in 10% of cases, and in the other 90% it behaved like above.

So now my 3 questions:

  1. Why does the SVM not overfit, not even with a C of $1^{-25}$?
  2. Why does the Gaussian-kernel find the correct solution only in 10% of cases while the linear-kernel does it every time? (My understanding is, that the linear-kernel implies no Feature-space transformation, while the gaussian one does. And as far as I understand it, that means, that the linear SVM works in a 1500-dimensional space, while the gaussian one should work in one whichs dimension is at most equal to the number of training-examples (70 in this case) so it should be (a lot) easier for the gaussian-kernel to find the solution than for the linear-kernel
  3. Do I have to conclude now, that my Feature vectors simply do not contain the Information, that allows to predict the labels?
$\endgroup$
5
  • $\begingroup$ Doesn't the penalty to counter overfitting in SVMs increase with larger C? In which case, to provoke overfitting, you'd actually have to set C to 0 (or at least a small number) rather than something large like $10^{25}$. $\endgroup$ Commented Jun 15, 2017 at 12:40
  • $\begingroup$ As far as I understand it, C is a factor on the "Error-tollerance" and behaves inversely to classical regularization-parameters. But just to be sure I also had a test with a C of $1^{-10} $ which led to the same results $\endgroup$
    – Uzaku
    Commented Jun 15, 2017 at 12:46
  • $\begingroup$ I don't think that's quite right. Compare e.g. this question and answer: stats.stackexchange.com/questions/270187/… $\endgroup$ Commented Jun 15, 2017 at 12:52
  • $\begingroup$ Yeah it seems i missunderstood this. I also just reran the classification with C=1^{-25} just to be sure. But nothing changed, I will edit the question. Thanks for bringing this to my attention $\endgroup$
    – Uzaku
    Commented Jun 15, 2017 at 13:03
  • 1
    $\begingroup$ I've found the meaning of C to be implementation dependent. Sometimes C applies to the primal problem, and sometimes to the dual problem. It's important to check the documentation for the solver you are using on this point. $\endgroup$ Commented Jun 15, 2017 at 13:48

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.