用于MATLAB的LibSVM中多类分类的概率估计解释

Vin*_*wal 4 matlab classification probability libsvm

问题:带有标签1,2,3的3级分类.

工具:用于MATLAB的LibSVM

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

在这一步之后,我得到了前十行的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
Run Code Online (Sandbox Code Playgroud)

但前十个预测的标签是:

 2
 2
 2
 2
 2
 2
 2
 2
 2
 2
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 我的理解是概率估计是特定项目属于特定类的概率,给定其特征向量.但是,如果这是真的,那么这些项目应属于1类,而不是等级2是否LIBSVM改变类的顺序还是我失去了一些东西?如果我错了,有人可以解释一下概率估计的真正解释是什么?

  2. 如果我必须移动决策边界以提高第1类的精度(预测的项目数量较少,因此在决策边界中更为保守),我应该处理哪些类概率以及如何处理?

fei*_*iny 7

我最近遇到了同样的问题.原因与训练数据的顺序有关.如果您希望概率后矢量的索引对应于训练数据的标签,则应根据标签对训练数据进行排序.

例如,如果第一数据点的标签是4,则后概率矢量的第一条目与标记为4的数据点相关.