SVM模型不支持概率估计?

时间:2014-02-25 16:57:34

标签: svm libsvm

我正在使用支持向量机(SVM)进行一些分类任务。 我使用libSVM(使用Matlab支持)来预测概率估计矩阵。但是,libSVM会显示消息; 模型不支持概率估计 以下是我的示例代码; (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');

有人可以告诉我,我的方式是否有问题吗?任何帮助/建议将不胜感激。

6 个答案:

答案 0 :(得分:0)

不了解Matlab的实现,但通常你必须设置这个option

  

-b probability_estimates:是否训练SVC或SVR模型进行概率估计,0或1(默认为0)

答案 1 :(得分: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');

答案 2 :(得分:0)

我遇到了同样的问题,模型中没有ProbAProbB。 在它出现之前并给出错误:

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

然后我将其更改为此,错误消息:) - 删除cmd并输入准确值

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

如果仍然出错,请尝试更改cg参数。

希望这有帮助。

答案 3 :(得分:0)

这是因为您的模型不支持概率估计。

你应该使用' -b 1'选择培训和测试过程。

另请参阅:https://stackoverflow.com/a/43509667/7893127

答案 4 :(得分:0)

您可以使用默认参数训练模型。 在训练和测试程序时尝试使用'-b 1'。

答案 5 :(得分:0)

C:\setup\python36\Lib\site-packages\svm.py的默认值self.probability0。您可以将其设置为1

enter image description here