![](/img/trans.png)
[英]Probability estimate for multi class classification in libsvm for matlab
[英]Using LIBSVM in MatLab for Multi Class image classification
我在MatLab中使用LIBSVM來嘗試對圖像進行分類。
我知道SVM是一個二進制分類模型,但是我想知道如何將它用作多類分類模型。
是否可以訓練成對的數據(即汽車和非汽車,馬和非馬,人和非人),然后通過將圖像與所有三個模型進行比較來預測圖像所屬的類別? 如果是這樣,我怎么能實現這個目標? 我的測試標簽矢量是什么?
是的,你的建議是一個很好的方法。 它被稱為一對一戰略 。
您需要為每個班級訓練單獨的SVM。 如果在該類中,則輸出數據將是等於1的二進制變量,否則為0。 然后,為了對新項目進行分類,請在每個SVM中運行它,並選擇輸出最高的項目(輸出最接近1)。
作為@ Dan的補充答案,以下是我之前帖子中的相關代碼:
model = cell(NumofClass,1); % NumofClass = 3 in your case
for k = 1:NumofClass
model{k} = svmtrain(double(trainingLabel==k), trainingData, '-c 1 -g 0.2 -b 1');
end
%% calculate the probability of different labels
pr = zeros(1,NumofClass);
for k = 1:NumofClass
[~,~,p] = svmpredict(double(testLabel==k), testData, model{k}, '-b 1');
pr(:,k) = p(:,model{k}.Label==1); %# probability of class==k
end
%% your label prediction will be the one with highest probability:
[~,predctedLabel] = max(pr,[],2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.