2012-12-18 35 views
4

問題:帶有標籤的1,2,3類分類1,2,3。用於MATLAB的LibSVM中的多類分類的概率估計的解釋

工具:LIBSVM的MATLAB

svmModel = svmtrain(<Trainfeatures>, <TrainclassLabels>, '-b 1 -c <someCValue> -g <someGammaValue>'); 
[predLabels, classAccuracy, **probEstimates**] = svmpredict(<TestFeatures>, <TestClassLabels>, '-b 1'); 

這一步後,我得到的前十行probEstimates的是,

0.9129 0.0749 0.0122 
0.9059 0.0552 0.0389 
0.8231 0.0183 0.1586 
0.9077 0.0098 0.0825 
0.9074 0.0668 0.0257 
0.8685 0.0146 0.1169 
0.8962 0.0664 0.0374 
0.9074 0.0548 0.0377 
0.9474 0.0054 0.0472 
0.9178 0.0642 0.0180 

但前十位預測的標籤是:

2 
2 
2 
2 
2 
2 
2 
2 
2 
2 

問題:

  1. 我的理解是概率估計是特定項目屬於特定類別的概率,因爲它的特徵向量。但是,如果這是真的,那麼這些項目應該屬於第1類而不是第2類。libsvm是否會改變類的順序,或者我在這裏丟失了什麼?如果我錯了,有人能解釋一下對概率估計的真實解釋是什麼嗎?

  2. 如果我必須移動決策邊界來提高類別1的精度(有更少的項目被預測爲類別1,因此在決策邊界上更保守),我應該選擇哪些類別概率處理和如何?

+0

我想你可能會更好的在http://stats.stackexchange.com/上提問這個問題。 – Mathias

回答

6

最近我遇到了同樣的問題。 原因與訓練數據的順序有關。 如果您希望後概率向量的索引與訓練數據的標籤相對應,則應根據標籤對訓練數據進行排序。

例如,如果所述第一數據點的標記是4,則概率後向量的第一條目涉及標記4.

0

在存儲在模型的標籤的順序數據點可能與我們認爲應該有所不同。您可以使用svmModel.Label進行檢查。概率估計按照這個順序輸出。

相關問題