0

分類精度についての私の理解は、常に「#正しく分類されたインスタンスを #インスタンスで割ったもの」でした。Java-ML を使用し、LibSVM をマルチラベル問題に適用すると、すべてのクラスの精度 (およびその他の測定値) が得られます。それらがどのように関連しているか、全体的な精度がどの程度かはわかりません。

たとえば、私の 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

クラスが均等に分布していない場合、全体的な精度はそれほど有益ではありません。これは、あなたの場合に当てはまる可能性があります。ただし、必要に応じて計算することもできます。次を参照して ください。

それらがどのように関連しているかについての他の質問に答えるために、結果はクラスごとに計算されています。したがって、ニュートラル (センチメント?) の場合、単一のニュートラルな例を予測しませんでしたが (データセットに何もない可能性があるため、NaN)、優れた精度 (99% 以上) が得られます。他のすべてを「中立的ではない」と呼んでおり、そのようなケースがたくさんあるため、精度が向上しています。他のケースは、正と負の例とより妥当な数があるため、理解しやすいです。お役に立てれば。

于 2015-06-09T15:55:32.800 に答える