【发布时间】:2018-12-04 21:47:52
【问题描述】:
我必须实现一个识别标签的 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.
一般来说,我不太了解在 Matlab 中运行 SVM 的最佳方法是什么。有人可以帮我吗?
【问题讨论】: