[英]Using feature vector .mat file for LIBSVM in matlab
我是matlab和LIBSVM的新手。 我為每個點計算了特征向量,並在單個向量.mat
r,g,b值,並將其存儲在.mat
文件中。 目前,我大約有420分和4個班級,即紅色/綠色/藍色/其他。 現在,我想傳遞此.mat文件來訓練libsvm,並根據該文件對新到達的測試點進行分類,無論它是紅色,藍色還是綠色或其他。 不用說,它是一個多類分類,我什至都不知道該如何處理? svmtrain(TrainingSet,Groups,'kernel_function','rbf');
其中TrainingSet
是我的420*4
特征向量集,而Groups
是類名。 在此先感謝您的幫助。
您可以嘗試使用libsvm的“一對多”方法。
model = cell(4,1);
for k=1:4
model{k} = svmtrain(double(TrainingSet==k), Groups, '-c 1 -g 0.2 -b 1');
end
然后在測試過程中,只需計算不同標簽的概率即可:
pr = zeros(numTest,4);
for k=1:4
[~,~,p] = svmpredict(double(testLabel==k), TestSet, model{k}, '-b 1');
pr(:,k) = p(:,model{k}.Label==1); %# probability of class==k
end
您的標簽預測將是最有可能的預測:
[~,predctedLabel] = max(pr,[],2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.