title: libsvm output prediction probability for multi-label classification
body: <p>I am trying to use libsvm (with Matlab interface) to run some multi-label classification problem. Here is some toy problem using IRIS data:</p>
  
  <pre><code>load fisheriris;
  
  featuresTraining                        = [meas(1:30,:); meas(51:80,:); meas(101:130,:)];
  featureSelectedTraining                 = featuresTraining(:,1:3);
  
  groundTruthGroupTraining                = [species(1:30,:); species(51:80,:); species(101:130,:)];
  [~, ~, groundTruthGroupNumTraining]     = unique(groundTruthGroupTraining);
  
  featuresTesting                         = [meas(31:50,:); meas(81:100,:); meas(131:150,:)];
  featureSelectedTesting                  = featuresTesting(:,1:3);
  
  groundTruthGroupTesting                 = [species(31:50,:); species(81:100,:); species(131:150,:)];
  [~, ~, groundTruthGroupNumTesting]      = unique(groundTruthGroupTesting);
  
  % Train the classifier
  optsStruct                              = ['-c ', num2str(2), ' -g ', num2str(4), '-b ', 1];
  SVMClassifierObject                     = svmtrain(groundTruthGroupNumTraining, featureSelectedTraining, optsStruct);
  
  optsStruct                              = ['-b ', 1];
  [predLabelTesting, predictAccuracyTesting, ...
      predictScoresTesting]               = svmpredict(groundTruthGroupNumTesting, featureSelectedTesting, SVMClassifierObject, optsStruct);
  </code></pre>
  
  <p>However, for the predict probabilities I have got (the first 12 rows of results showed here)</p>
  
  <pre><code>1.08812899093155    1.09025554950852    -0.0140009056912001
  0.948911671379753   0.947899227815959   -0.0140009056926024
  0.521486301840914   0.509673405799383   -0.0140009056926027
  0.914684487894784   0.912534150299246   -0.0140009056926027
  1.17426551505833    1.17855350325579    -0.0140009056925103
  0.567801459258613   0.557077025701113   -0.0140009056926027
  0.506405203427106   0.494342606399178   -0.0140009056926027
  0.930191457490471   0.928343421250020   -0.0140009056926027
  1.16990617214906    1.17412523596840    -0.0140009056926026
  1.16558843984163    1.16986137054312    -0.0140009056926015
  0.879648874624610   0.876614924593740   -0.0140009056926027
  -0.151223818963057  -0.179682730685229  -0.0140009056925999
  </code></pre>
  
  <p>I am confused that how some of the probabilities are larger than 1 and some of them are negative? </p>
  
  <p>However, the predicted label seems quite accurate:</p>
  
  <pre><code>1
  1
  1
  1
  1
  1
  1
  1
  1
  1
  1
  3
  </code></pre>
  
  <p>with final output of</p>
  
  <pre><code>Accuracy = 93.3333% (56/60) (classification)
  </code></pre>
  
  <p>Then how to interpret the results of the predicted probabilities? Thanks a lot. A.</p>