Java-ML(LibSVM) 如何获取类别概率?

我们使用 Java-ML(LibSVM) 来对多类别问题执行 SVM 算法

        Classifier clas = new LibSVM();        clas.buildClassifier(data);        Dataset dataForClassification= FileHandler.loadDataset(new File(.), 0, ",");        /* 正确和错误预测的计数器 */        int correct = 0, wrong = 0;        /* 对所有实例进行分类并与正确类别值进行检查 */        for (Instance inst : dataForClassification) {            Object predictedClassValue = clas.classify(inst);            Map<Object,Double> map = clas.classDistribution(inst);            Object realClassValue = inst.classValue();            if (predictedClassValue.equals(realClassValue))                correct++;            else                wrong++;        }

classDistribution() 返回一个标准向量(意味着所有值都是0,只有一个值等于1)

java-ml – http://java-ml.sourceforge.net/


回答:

尽管有其他回答,但 SVM 和 LibSVM 确实可以输出概率估计。然而,我相当确定你无法从 Java-ML 中使用这一功能。文件 LibSVM.java 始终只引用函数 svm_predict_values,而从不引用 svm_predict_probabilities。如果你确实需要这个功能,将其添加到 Java-ML 中应该不会太难。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注