java - 如何使用 libsvm 计算多类预测的概率?

标签 java machine-learning probability svm libsvm

我正在使用 libsvm并且文档使我相信有一种方法可以输出输出分类准确性的可信概率。是这样吗?如果是这样,谁能提供一个清楚的例子说明如何在代码中做到这一点?

目前,我正在以下列方式使用 Java 库

    SvmModel model = Svm.svm_train(problem, parameters);
    SvmNode x[] = getAnArrayOfSvmNodesForProblem();
    double predictedValue = Svm.svm_predict(model, x);

最佳答案

鉴于您的代码片段,我假设您想要使用与 libSVM 打包在一起的 Java API ,而不是 jlibsvm 提供的更详细的.

要启用概率估计预测,请使用svm_parameter 字段 训练模型 probability 设置为 1。然后,只需更改您的代码,使其调用 svm 方法 svm_predict_probability 而不是 svm_predict

修改您的代码段,我们有:

parameters.probability = 1;
svm_model model = svm.svm_train(problem, parameters);

svm_node x[] = problem.x[0]; // let's try the first data pt in problem
double[] prob_estimates = new double[NUM_LABEL_CLASSES]; 
svm.svm_predict_probability(model, x, prob_estimates);

值得一提的是,使用多类别概率估计进行训练可以改变分类器做出的预测。有关更多信息,请参阅问题 Calculating Nearest Match to Mean/Stddev Pair With LibSVM .

关于java - 如何使用 libsvm 计算多类预测的概率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2761590/

相关文章:

java - 方法过滤数组中的偶数值并将它们返回到新数组中

machine-learning - 使用 Theano 进行卷积时出现内存不足错误

python - scikit learn 的 train_test_split( ) 方法

java - 如何在java中根据概率生成随机字母?

python - 根据概率密度函数 p(x,y,z) 随机填充 3D 网格

java - 除非展开窗口,否则 JSlider 不会显示

java - 谁能推荐一个好的java lib来内省(introspection)视频?

matlab - 不使用矩阵计算具有一个变量的线性回归的成本函数

algorithm - 如何只用 Random(0,1) 实现 Random(a,b)?

java - Hibernate 是否检测到 id 何时被使用?