svm_predict_probability返回零数组

时间:2014-11-30 23:46:09

标签: java libsvm

我正在尝试对libsvm使用java绑定,它会对我的分类的大多数测试实例进行所有训练并给出校正标签,但是当我尝试使用svm_predict_probability()方法来获取概率以及预测的标签,它给我的概率数组都是零。 (尽管在大多数情况下仍然预测/返回值是正确的!)。 这是我的代码调用方法的部分:

double[] prob_estimates= new double[26];
double label=svm.svm_predict_probability(model, nodes, prob_estimates);
for(int i=0;i<prob_estimates.length;i++)
      System.out.print("\t"+i+":"+prob_estimates[i]);

,输出为: 0:0.0 1:0.0 2:0.0 ... 25:0.0 任何人都可以告诉我这有什么问题,我怎样才能获得概率?

1 个答案:

答案 0 :(得分:2)

我想出为了使用svm_predict_probability你应该设置&#34;概率&#34;的值。在训练之前将其属性设置为1。 (model.param.probability = 1)。这将在模型中生成probA和probB,它们将用于svm_predict_probability。如果模型中没有probA和probB,那么svm_predict_probability将只调用svm_predict,它不会给你概率估计!