2014-02-25 74 views
0

我正在用支持向量機(SVM)做一些分類任務。 我使用libSVM(與Matlab支持)來預測概率估計矩陣。但是,libSVM顯示消息: 模型不支持probabiliy估計 以下是我的示例代碼; (train_label包含標籤訓練數據和test_label包含標籤的測試數據)支持向量機模型不支持概率估計?

model = svmtrain(train_label, train_data, '-t 2 -g .01 -c 0.7 -b 1); 
    [y,accuracy,prob_estimates]=svmpredict(test_label,test_data,model,'-b 1'); 

有人能告訴我,如果有什麼問題我這樣做的方式嗎?任何幫助/建議將不勝感激。

回答

0

不知道有這個Matlab實現,但通常你必須設置這個option

-b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)

+0

謝謝你的回覆。但我已經爲訓練和預測設置了選項'-b 1'。 – user35919

+0

@ user35919對不起,忽略了。您是否使用'-t'選項嘗試了不同的SVM類型? (我只是猜測,不知道這是否會有所幫助)。 – qqilihq

+0

是的,我確實嘗試了'-t 1'和'-t 2'。沒有區別。 – user35919

0

我現在用同樣的方式LIBSVM沒有任何問題。

在您的代碼只有「在下面的行

model = svmtrain(train_label, train_data, '-t 2 -g .01 -c 0.7 -b 1); 

失蹤應該

model = svmtrain(train_label, train_data, '-t 2 -g .01 -c 0.7 -b 1'); 
+0

謝謝@Zahid Mahmood。 – user35919

0

我有同樣的問題,模型沒有得到它ProbAProbB。 之前,它是這樣的,並給予錯誤:

linear_model = svmtrain(trainClass, trainData, ['-t 0', cmd]); 

然後,我把它改成這樣,錯誤dissappared :) - 刪除CMD,並把精確值

linear_model = svmtrain(trainClass, trainData, ['-t 0 -c 1 -g 0.125 -b 1']); 

如果仍然提示錯誤嘗試改變cg參數。

希望這會有所幫助。

0

你可能只是訓練使用默認參數模型。 嘗試在訓練和測試程序時使用'-b 1'。

+1

這不提供問題的答案。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將可以在任何帖子上[評論](http://stackoverflow.com/help/privileges/comment)。還要檢查這個[我能做些什麼,而不是(https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an-i-do-instead )。 – thewaywewere