0

我对分类准确性的理解始终是“#正确分类的实例除以#instances”。使用 Java-ML 并将 LibSVM 应用于多标签问题,我得到每个 CLASS 的准确度(和其他测量值)。我无法弄清楚它们是如何相关的以及整体准确性是多少。

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

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());
}
4

1 回答 1

0

如果类的分布不均匀,则整体准确性不会提供太多信息,这在您的情况下可能是正确的。如果您愿意,您仍然可以计算一个,请参阅: http ://spokenlanguageprocessing.blogspot.com/2011/12/evaluate-multi-class-classification.html

为了回答您关于它们如何相关的其他问题,结果是按类计算的。因此,对于中性(情绪?),尽管您没有预测单个中性示例(您的数据集中可能没有任何示例,因此为 NaN),但您具有很高的准确性(超过 99%)。您的准确性正在提高,因为您将其他所有内容都称为“不中立”并且有很多这样的情况。其他情况更容易理解,因为它们有正面和负面的例子和更合理的数字。希望这可以帮助。

于 2015-06-09T15:55:32.800 回答