0
0

1. 一言で表すと?

偽陽性と偽陰性の両方をどれだけ抑えられたか評価する指標

以降、Average PrecisionをAPと呼びます。

2. 何に使われる?

異常検知・発病リスク予測など、正例が極端に少ない予測を行うモデルの評価に役立ちます。

2.1 ちなみに他の評価指標は?

最も単純なものの一つとしてAccuracy(正答率)を挙げます。学校の試験の点数と一緒で、予測データのうち教師データと合致している割合を計算します。正例と負例のバランスが良いデータなら評価指標として機能します。

2.2 APとAccuracyとの比較

Accuracyは正例と負例の分布が片方に偏っていると機能しません。例えば異常検知タスクの場合、ほとんどのデータが負例と分かりきっています(=故障は頻繁に起こらない)。予測なんてせずに当てずっぽうで全部負例にしてもそこそこ当たるでしょう。
きちんと学習したモデルと当てずっぽうで予測したモデルとの差がつかないので、評価指標として機能していません。

3. APの定義をきちんと理解する

まずPrecision, Recall, Precision-Recall曲線を理解します。

3.1 Precision

・定義:正と予測したもののうち、実際に正だった割合
・計算式:

スクリーンショット 2024-06-21 20.44.52.png
・つまり
これが高い=偽陽性が少ない

3.2 Recall

・定義:実際に正であるもののうち、正と予測できた割合
・計算式:
スクリーンショット 2024-06-21 20.50.45.png
・つまり
これが高い=偽陰性が少ない

3.3 Precision-Recall(PR)曲線

偽陽性を減らしたいなら多めに陰性と判断すればよいですし、偽陰性を減らしたいなら多めに陽性と判断すればよいです。つまりPrecisionとRecallはトレードオフの関係にあります。
PR曲線を使うとPrecisionとRecallの関係を表すことができます。
例えば発病予測タスクで、発病予測データと正解データがあるとします。
スクリーンショット 2024-06-21 21.25.48.png

もし確率が0.9以上の場合に正例として検知するなら、PとRはそれぞれ下記の通りです。

スクリーンショット 2024-06-22 9.29.11.png

この0.9を閾値と呼びます。
閾値を変えていくと、サンプル6つに対してPとRの組み合わせが合計6通り求められます。

・閾値0.8
スクリーンショット 2024-06-22 9.32.04.png

・閾値0.75
スクリーンショット 2024-06-22 9.32.49.png

・閾値0.60
スクリーンショット 2024-06-22 9.33.13.png

・閾値0.55
スクリーンショット 2024-06-22 9.33.39.png

・閾値0.40
スクリーンショット 2024-06-22 9.34.10.png

上記PとRの組み合わせを二次元平面にプロットしたものがPrecision-Recall曲線です。

スクリーンショット 2024-06-21 21.22.49.png

4. じゃあAPの正体は?

PR曲線の下側の面積(AUC:Area Under the Curve)です。

4.1 APが最大

正例と負例を寸分の狂いなく当てているパターン。負例のものを全て確率0、正例のものを全て確率1と予測したことになります。このとき偽陽性=偽陰性=0個です。全てのプロットがP=1かR=1上に存在することになり、AUCは最大値=1になります。

4.2 APが0.5

予測結果に偽陽性or偽陰性合わせて50%含まれているパターン。一般的にモデルが当てずっぽうに予測しているとAPは0.5となります。

終わりに

間違いがあれば教えてください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0