[英]MultiClass using LIBSVM
我有一個多類svm分類(6類)。 我想使用LIBSVM對它進行分類。 以下是我嘗試過的內容,對此我有一些疑問。
方法1(一對一):
model = svmtrain(TrainLabel, TrainVec, '-c 1 -g 0.00154 -b 0.9');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);
關於此方法的兩個問題:1)對於多類問題,我所要做的只是2)'-b n'中的n應該是什么值。 我不確定
方法2(一個vs休息):
u=unique(TrainLabel);
N=length(u);
if(N>2)
itr=1;
classes=0;
while((classes~=1)&&(itr<=length(u)))
c1=(TrainLabel==u(itr));
newClass=double(c1);
tst = double((TestLabel == itr));
model = svmtrain(newClass, TrainVec, '-c 1 -g 0.00154');
[predict_label, accuracy, dec_values] = svmpredict(tst, TestVec, model);
itr=itr+1;
end
itr=itr-1;
end
對於第二種方法,如何附加分類分數。 我無法投票。
除此之外,這是我嘗試過的兩種方法。 哪種方法更好?
想聽聽一些意見。 如果我錯了,請糾正我。
關於“ -b”參數,在LIBSVM README中它說:
-b density_estimates:是否為概率估計訓練SVC或SVR模型,0或1(默認0)
因此,如果希望訓練后的模型返回類概率,則應指定“ -b 1”,否則,則應指定“ -b 0”。 您只需要調用一次svmtrain
。 另外,如果為訓練指定“ -b 1”,則還必須為預測指定它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.