マルチクラス分類問題の混同マトリックスを使用して、精度を計算し、リコールする方法を疑問に思います。具体的には、観測値は最も可能性の高いクラス/ラベルにのみ割り当てることができます。計算したい:
- 精度= TP /(TP + FP)
- リコール= TP /(TP + FN)
クラスごとに、マイクロ平均Fメジャーを計算します。
マルチクラス分類問題の混同マトリックスを使用して、精度を計算し、リコールする方法を疑問に思います。具体的には、観測値は最も可能性の高いクラス/ラベルにのみ割り当てることができます。計算したい:
クラスごとに、マイクロ平均Fメジャーを計算します。
回答:
2仮説の場合、混同行列は通常次のとおりです。
| Declare H1 | Declare H0 |
|Is H1 | TP | FN |
|Is H0 | FP | TN |
あなたの表記に似たものを使用しました:
生データから、テーブルの値は通常、テストデータの各オカレンスのカウントになります。これから、必要な数量を計算できるはずです。
編集
マルチクラス問題への一般化は、混同行列の行/列を合計することです。マトリックスが上記のように方向付けられている場合、つまり、マトリックスの特定の行が「真」の特定の値に対応している場合、次のようになります。
つまり、精度は 、アルゴリズムが宣言したすべてのインスタンスのうち、正しくを宣言したイベントの割合です。逆に、リコールは、私たちが正しく宣言したイベントの一部である世界の状態の真がある例全てのうち、。
i
アルゴリズムが宣言するインスタンスがない場合、クラスの精度は未定義ですi
。i
テストセットにclassが含まれていない場合、classのリコールは未定義ですi
。
マルチクラスの問題に関するこれらのメトリックスを調べた優れた要約論文:
要約は次のとおりです。
このホワイトペーパーでは、機械学習の分類タスク、つまりバイナリ、マルチクラス、マルチラベル、および階層の完全なスペクトルで使用される24のパフォーマンス測定値の体系的な分析を示します。この研究では、分類タスクごとに、混同マトリックスの一連の変更をデータの特定の特性に関連付けています。次に、分析は、メジャーを変更しない混同マトリックスへの変更のタイプに集中するため、分類子の評価(メジャー不変性)が保持されます。結果は、分類問題のすべての関連するラベル分布の変更に関するメジャー不変性分類法です。この正式な分析は、メジャーの不変性プロパティが分類子のより信頼性の高い評価につながるアプリケーションの例によってサポートされています。
sklearnとnumpyの使用:
from sklearn.metrics import confusion_matrix
import numpy as np
labels = ...
predictions = ...
cm = confusion_matrix(labels, predictions)
recall = np.diag(cm) / np.sum(cm, axis = 1)
precision = np.diag(cm) / np.sum(cm, axis = 0)
精度とリコールの全体的な測定値を取得するには、thenを使用します
np.mean(recall)
np.mean(precision)