Я должен реализовать классификатор SVM, который распознает метки.Код таков:
function[Y_SVM_test] = getSVM(x,y,z, labels)
%matrix that contain x,y,z
X = [];
%vector of labels
Y = [];
X = [X; x y z];
Y = [Y; labels];
cv = cvpartition(length(X),'holdout',0.2);
% Training set
Xtrain = X(training(cv),:);
Ytrain = Y(training(cv));
% Test set
Xtest = X(test(cv),:);
Ytest = Y(test(cv));
tic
mySVM = fitcecoc(Xtrain,Ytrain);
toc
Y_SVM_test = predict(mySVM,Xtest);
end
С функцией fitcecoc
выполнение никогда не заканчивается, я использовал его неправильно?Я попытался использовать также функцию fitcsvm
, которая кажется более конкретной из документации, но я получаю следующую ошибку: Error using ClassificationSVM.prepareData (line 686) You can not train an SVM model for more than 2 classes.
В общем, я не совсем понял, как лучше всего запустить SVM в Matlab.Кто-нибудь может мне помочь?