Accuracyの欠点
Accuracy = 正しく分類された数 / 予測の総数
- データセットの不均衡な状況には適さない
- トレーニングデータセットの中で、特定のクラスのデータが異常に多い場合、モデルは入力データをそのクラスと判断する傾向がある
- その結果、Accuracyスコアが高くても意味がない
- 偽陽性と偽陰性の区別がつかない
- モデルが正しくない予測を行った場合、どのような間違いが発生したかを理解するのに役立たない
- 偽陽性(False Positive)と偽陰性(False Negative)は異なる意味を持ち、異なる対策が必要だが、Accuracyはこれらを区別しない
二クラス分類
二分類タスクはデータを二つの相互排他的なカテゴリに分類することを含みます。例えば、医療診断では患者が特定の病気にかかっているかどうかを判断するために使用され、金融分野では取引が詐欺かどうかを検出するために使用されます。また、電子メールシステムでは、スパムメールと通常のメールを区別するために使用されます。
1. 予測は以下のConfusion Matrixによって表される
Actual/Predicted | Positive | Negative |
---|---|---|
Positive | TP | FN |
Negative | FP | TN |
- True Positive (TP):正のサンプルを正しく予測したもの
- True Negative (TN):負のサンプルを正しく予測したもの
- False Positive (FP):負のサンプルを誤って正と予測したもの
- False Negative (FN):正のサンプルを誤って負と予測したもの
2. 二分類タスクの評価指標
- $\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}$
- $\text{Precision} = \frac{TP}{TP + FP}$
- $\text{Recall} = \frac{TP}{TP + FN}$
- $F1\text{-score} = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$
Precisionは、Positiveと予測されたすべてのデータの中で、実際にPositiveであるデータがどれだけ占めているかを評価する。Recallは、すべてのPositiveデータの中で、どれだけのデータが成功裏にPositiveと予測されたかを評価する。
2.1 例
ある会社が新しいスパムメールフィルタリングシステムを開発し、その性能を評価しようとしています。スパムメールをPositive、スパムでないメールをNegativeと定義します。では、どの指標を使って評価すればよいでしょうか?
- Precision:スパムメールと判断されたすべてのメールの中で、実際にスパムであるメールがどれだけ占めているかを評価する
- Recall:すべてのスパムメールの中で、どれだけのメールが正しくスパムと検出されたかを評価する
- Acc:検出されたすべてのメールの中で、どれだけ正しい結果が得られたかを評価する
2.2 結論
- Recall:False Negative (FN)のコストが非常に高い(結果が非常に深刻な)場合、FNをできるだけ避けたいときには、Recall指標を重視する必要がある
- Precision:False Positive (FP)のコストが非常に高い(結果が非常に深刻な)場合、FPをできるだけ避けたいときには、Precision指標を重視する必要がある
- 例えば、金融詐欺検出システムにおいて、詐欺をPositiveと定義する場合、FPの発生をできるだけ少なくしたい。誤って正当な取引を詐欺と判断することで、顧客の信頼を損ない、不必要な調査コストが発生するためである
- F1-score:PrecisionとRecallの両方を統合した指標
多クラス分類
多クラス分類はデータを三つ以上のカテゴリに分類することを含みます。例えば、画像認識では異なる物体の種類を識別するために使われ、テキスト分類では文書を異なるテーマカテゴリに振り分けるため使用されます。
多クラス分類の場合も同様に、出力に基づいてConfusion Matrixを埋めることができ、それぞれのカテゴリに対応するPrecision、Recall、F1-Scoreがあります。しかし、Accuracyはすべてのカテゴリに対して計算される結果です。
Actual/Predicted | A | B | C |
---|---|---|---|
A | 10 | 20 | 25 |
B | 2 | 35 | 15 |
C | 0 | 2 | 30 |
評価指標
1. Macro-average方法
異なるカテゴリの評価指標(Precision/ Recall/ F1-score)を直接合計して平均を求め、すべてのカテゴリに同じ重みを与える。この方法はすべてのカテゴリを平等に扱うが、稀少なカテゴリに影響を受けやすい
2. Weighted-average方法
- この方法では、異なるカテゴリに異なる重みを与える(重みはそのカテゴリの実際の分布割合に基づいて決定される)。各カテゴリを重みで乗算してから合計する。この方法はカテゴリの不均衡を考慮し、その値は多数派のカテゴリ(majority class)の影響を受けやすい
- トレーニングサンプルの分布に基づいて重みを追加する
3. Micro-average方法
- この方法では、各カテゴリのTP、FP、FNを先に合計し、その後、二分類の公式に基づいてPrecision/ Recall/ F1-scoreを計算する
例
1. Precision, Recall, F1-scoreの計算(カテゴリA)
- Precision = TP / (TP + FP) = 10 / (10 + 2) = 10 / 12 ≈ 0.833
- Recall = TP / (TP + FN) = 10 / (10 + 45) = 10 / 55 ≈ 0.182
- F1-score = 2 * (Precision * Recall) / (Precision + Recall) ≈ 0.3
2. Macro-average方法
- Precision (macro) = (0.833 + 0.614 + 0.429) / 3 ≈ 0.625
- Recall (macro) = (0.182 + 0.486 + 0.638) / 3 ≈ 0.435
- F1-score (macro) = (0.3 + 0.543 + 0.514) / 3 ≈ 0.452