问题:标签为 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 类而不是 2 类。 libsvm 是否会更改类的顺序,或者我在这里遗漏了什么?如果我错了,有人可以解释一下概率估计的真正解释是什么吗?
如果我必须移动决策边界以提高第 1 类的精度(预测为第 1 类的项目更少,因此在决策边界上更加保守),我应该处理哪些类概率以及如何处理?