簡體   English   中英

使用LIBSVM的MultiClass

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM