簡體   English   中英

用於MATLAB的LibSVM中多類分類的概率估計解釋

[英]Interpretation of Probability Estimate for Multi-class classification in LibSVM for MATLAB

問題:帶有標簽1,2,3的3級分類。

工具:用於MATLAB的LibSVM

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類的精度(預測的項目數量較少,因此在決策邊界中更為保守),我應該處理哪些類概率以及如何處理?

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

例如,如果第一數據點的標簽是4,則后概率矢量的第一條目與標記為4的數據點相關。

存儲在模型中的標簽的順序可能與我們認為應該的順序不同。 您可以使用svmModel.Label進行檢查。 並且根據該順序輸出概率估計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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