マルチクラスのマルチラベル分類、つまり、2 つ以上のラベルがあり、各インスタンスが複数のラベルを持つことができる分類の精度と再現率の測定方法を計算する方法を考えています。
5 に答える
マルチラベル分類の場合、2 つの方法があります。まず、次のことを検討してください。
例ベース
メトリックは、データポイントごとに計算されます。予測されたラベルごとに、そのスコアのみが計算され、これらのスコアがすべてのデータポイントで集計されます。
- 精度 =
、予測のどれだけが正しいかの比率。分子は、予測されたベクトル内のいくつのラベルがグラウンド トゥルースと共通であるかを検出し、比率は、予測された真のラベルのうち実際にグラウンド トゥルースに含まれるラベルの数を計算します。
- Recall =
、予測された実際のラベル数の比率。分子は、予測されたベクトル内のいくつのラベルがグラウンド トゥルースと共通であるかを見つけ (上記のように)、次に実際のラベルの数に対する比率を見つけ、実際のラベルのどの部分が予測されたかを取得します。
他の指標もあります。
ラベルベース
ここでは、ラベルごとに処理が行われます。ラベルごとにメトリック (例: 適合率、再現率) が計算され、これらのラベルごとのメトリックが集計されます。したがって、この場合、二項分類の場合と同様に (各ラベルには二項割り当てがあるため)、データセット全体の各ラベルの適合率/再現率を計算し、それを集計します。
簡単な方法は、一般的な形式を提示することです。
これは、標準のマルチクラスの同等物を単に拡張したものです。
ここでは、ラベルのみの真陽性、偽陽性、真陰性、偽陰性のカウントをそれぞれ示しています。
ここで、$B$ は混同行列ベースのメトリックを表します。あなたの場合、標準の精度と再現率の式をプラグインします。マクロ平均では、ラベルごとのカウントを渡してから合計し、ミクロ平均では、最初にカウントを平均してからメトリック関数を適用します。
Rのパッケージmldrの一部であるマルチラベル メトリクスhereのコードを調べることに興味があるかもしれません。また、Java マルチラベル ライブラリMULANにも興味があるかもしれません。
これは、さまざまなメトリクスを理解するための優れた論文です: A Review on Multi-Label Learning Algorithms
答えは、クラスごとに適合率と再現率を計算し、それらを平均化する必要があるということです。たとえば、A、B、および C を分類する場合、精度は次のようになります。
(precision(A) + precision(B) + precision(C)) / 3
リコールも同様。
私は専門家ではありませんが、これは次の情報源に基づいて判断したものです。
https://list.scms.waikato.ac.nz/pipermail/wekalist/2011-March/051575.html http://stats.stackexchange.com/questions/21551/how-to-compute-precision-recall-for -multiclass-multilabel-classification
- ラベル A、B、C を持つ 3 クラスの多分類問題があるとします。
- 最初に行うことは、混同行列を生成することです。対角線の値は常に真陽性 (TP) であることに注意してください。
ここで、ラベル A の再現率を計算するために、混同行列から値を読み取り、次のように計算できます。
= TP_A/(TP_A+FN_A) = TP_A/(Total gold labels for A)
ここで、ラベル A の精度を計算してみましょう。混同行列から値を読み取り、次のように計算できます。
= TP_A/(TP_A+FP_A) = TP_A/(Total predicted as A)
残りのラベル B と C についても同じことを行う必要があります。これは、マルチクラス分類の問題に適用されます。
これは、例を含む、マルチクラス分類問題の精度と再現率を計算する方法について説明している完全な記事です。