java - svm_predict_probability 返回零数组

标签 java libsvm

我正在尝试使用 libsvm 的 java 绑定(bind),它会完成所有训练并为我的分类的大多数测试实例提供正确的标签,但是当我尝试使用 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 谁能告诉我这有什么问题以及如何获得概率?

最佳答案

我发现为了使用 svm_predict_probability 你应该在训练之前将模型中的“概率”属性值设置为 1。 (模型.参数.概率=1)。这将在模型中生成 probA 和 probB,它们将在 svm_predict_probability 中使用。如果模型中没有 probA 和 probB,那么 svm_predict_probability 将简单地调用 svm_predict,它不会为您提供概率估计!

关于java - svm_predict_probability 返回零数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219709/

相关文章:

java - java中字符流有什么用?

python - Python 中的内核方法

compiler-errors - 无法将libsvm与OCaml一起使用

python - 为 SVM 库 LIBSVM 使用 python 绑定(bind)的示例

java - ArrayList在自定义列表类Java中实现

java - 我可以更改连接的最大池大小吗?是什么决定了我应该将其设置为什么?

java - 合并同一个表中的两列并将结果保存到mysql中同一个表中的其他列中

java - Jdbcrowset 错误?返回空指针异常!

c++ - 编译错误: Conversion from CSV to Libsvm format

windows - 帮助处理 LibSVM 输入数据