Error using svm classifier

1 view (last 30 days)
Basavaraja V
Basavaraja V on 12 Jul 2018
Commented: Walter Roberson on 12 Jul 2018
Error using svmtrain (line 274) SVMTRAIN only supports classification into two groups. GROUP contains 4 groups.
Error in Classifier_10_fold (line 15) svmModel = svmtrain(FM(trainIdx,:), groups(trainIdx), ...

Answers (1)

KSSV
KSSV on 12 Jul 2018
Edited: KSSV on 12 Jul 2018
svm will work on only two classes or groups. You need to send only two groups data to train it. Check the below example:
load fisheriris
% the data has three classes, pick only two classes out of it.
inds = ~strcmp(species,'setosa'); % don't consider this class
X = meas(inds,3:4);
y = species(inds);
%
SVMStruct = svmtrain(X,y)
Where as if I use all the classes, it will throw the same error as you got .
SVMStruct = svmtrain(meas,species) ; % this will give error as three classes are present
Also check that svmtrain is outdated, you need to use fitcsvm.
  3 Comments
KSSV
KSSV on 12 Jul 2018
YOu select any two groups and run the model. You can select the group using:
load fisheriris
% the data has three classes, pick only two classes out of it.
inds = strcmp(species,'setosa') | strcmp(species,'virginica'); % select these two out of all groups
X = meas(inds,3:4);
y = species(inds);
%
SVMStruct = svmtrain(X,y) ;

Sign in to comment.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!