我正在使用支持向量机(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');
有人可以告诉我,我的方式是否有问题吗?任何帮助/建议将不胜感激。
答案 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)
我遇到了同样的问题,模型中没有ProbA
和ProbB
。
在它出现之前并给出错误:
linear_model = svmtrain(trainClass, trainData, ['-t 0', cmd]);
然后我将其更改为此,错误消息:) - 删除cmd并输入准确值
linear_model = svmtrain(trainClass, trainData, ['-t 0 -c 1 -g 0.125 -b 1']);
如果仍然出错,请尝试更改c
和g
参数。
希望这有帮助。
答案 3 :(得分:0)
答案 4 :(得分:0)
您可以使用默认参数训练模型。 在训练和测试程序时尝试使用'-b 1'。
答案 5 :(得分:0)
C:\setup\python36\Lib\site-packages\svm.py
的默认值self.probability
是0
。您可以将其设置为1
。