多类分类的javaml结果解释

多类分类的javaml结果解释,java,libsvm,multilabel-classification,Java,Libsvm,Multilabel Classification,我对分类准确性的理解一直是“正确分类的实例除以实例”。 使用JavaML并将LibSVM应用于多标签问题,我可以获得每个类的准确度(和其他度量)。我不知道它们之间有什么联系,总体准确度是多少 例如,对于我的三级问题,我得到以下结果: Anger: Accuracy = 0.48148148148148145 | F = 0.35 | Precision = 0.310126582278481 | Error rate = 0.5185185185185185 Neutral: Accuracy

我对分类准确性的理解一直是“正确分类的实例除以实例”。 使用JavaML并将LibSVM应用于多标签问题,我可以获得每个类的准确度(和其他度量)。我不知道它们之间有什么联系,总体准确度是多少

例如,对于我的三级问题,我得到以下结果:

Anger: Accuracy = 0.48148148148148145 | F = 0.35 | Precision = 0.310126582278481 | Error rate = 0.5185185185185185
Neutral: Accuracy = 0.9971509971509972 | F = 0.0 | Precision = NaN | Error rate = 0.002849002849002849
Surprise: Accuracy = 0.47863247863247865 | F = 0.5653206650831354 | Precision = 0.616580310880829 | Error rate = 0.5213675213675214
我的代码如下所示:

Map<Object, PerformanceMeasure> pm = cv.crossValidation(data, 5);
for (Object o : pm.keySet()) {
                System.out.println(o + ": Accuracy = " + pm.get(o).getAccuracy()
                        + " | F = " + pm.get(o).getFMeasure()
                        + " | Precision = " + pm.get(o).getPrecision()
                        + " | Error rate = " + pm.get(o).getErrorRate());
}
Map pm=cv.crossValidation(数据,5);
对于(对象o:pm.keySet()){
System.out.println(o+”:accurity=“+pm.get(o).getaccurity()
+“| F=“+pm.get(o).getFMeasure()
+“| Precision=“+pm.get(o).getPrecision()
+“|错误率=“+pm.get(o.getErrorRate());
}

如果类的分布不均匀,那么总体准确度就没有那么高,这在您的案例中可能是正确的。如果需要,您仍然可以计算一个,请参见:

为了回答你关于它们之间关系的另一个问题,我们将按班级计算结果。因此,对于中性(情绪?)来说,尽管你没有预测一个中性的例子(你的数据集中可能没有),但你的准确率很高(超过99%)。你的准确度正在提高,因为你把其他一切都称为“非中立”,而且有很多这样的情况。其他案例更容易理解,因为它们有正面和负面的例子以及更合理的数字。希望这有帮助