Мое понимание точности классификации всегда было «# корректно классифицированными экземплярами, деленными на #instances». Используя Java-ML и применяя LibSVM к проблеме с несколькими метками, я получаю точность (и другие измерения) для каждого класса. Я не могу понять, как они связаны и какова общая точность.Интерпретация результатов Java-ML для классификации нескольких классов
Например, для моей проблемы 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());
}