code shown here 我試圖實現SVM進行分類。目標是輸出電源信號的原始正確網格(.wav文件)。網格標題爲A-I,訓練集合共有93個信號,49個練習信號。我有一個93x10x36的特徵向量矩陣。有誰知道我爲什麼會顯示錯誤? TrainCorrectGrid和Training_Cepstrum1都有93行,所以我不明白問題是什麼。任何幫助是極大的讚賞。支持向量機matlab示例
的multisvm功能如下所示:
function [result] = multisvm(TrainingSet,GroupTrain,TestSet)
%Models a given training set with a corresponding group vector and
%classifies a given test set using an SVM classifier according to a
%one vs. all relation.
%
%This code was written by Cody Neuburger [email protected]
%Florida Atlantic University, Florida USA
%This code was adapted and cleaned from Anand Mishra's multisvm function
%found at http://www.mathworks.com/matlabcentral/fileexchange/33170-multi-class-support-vector-machine/
u=unique(GroupTrain);
numClasses=length(u);
result = zeros(length(TestSet(:,1)),1);
%build models
for k=1:numClasses
%Vectorized statement that binarizes Group
%where 1 is the current class and 0 is all other classes
G1vAll=(GroupTrain==u(k));
models(k) = svmtrain(TrainingSet,G1vAll);
end
%classify test cases
for j=1:size(TestSet,1)
for k=1:numClasses
if(svmclassify(models(k),TestSet(j,:)))
break;
end
end
result(j) = k;
end
如果有兩個以上的班,你應該閱讀有關[一個對一個,一個對所有(HTTPS://en.wikipedia。 org/wiki/Multiclass_classification)用於多類分類的SVM。 –
@ ParagS.Chandakkar我已經看過,但它是相當混亂的..我不知道如何實現SVM超過兩個類的代碼。我有類A到I. Matlab的例子只顯示了兩個類的例子 – user6132277
你爲什麼不看看[libSVM](http://www.csie.ntu.edu.tw/~cjlin/libsvm/)?.它在內部使用「一對一」的方法,所以你不必關心這一點。您只需提供您的數據和多類標籤。它也與MATLAB兼容。 –