【てきごうりつとさいげんりつ】
適合率と再現率(Precision/Recall) とは?
💡 見つけた中の正解率? それとも見逃さない力? 二つの視点でAIの実力を測る
📌 このページのポイント
- 適合率(Precision)は「陽性と判定した中で実際に陽性だった割合」で、誤検出の少なさを示す
- 再現率(Recall)は「実際の陽性のうち正しく陽性と判定できた割合」で、見逃しの少なさを示す
- 両者はトレードオフの関係にあり、片方を上げるともう片方が下がりやすい
- F1スコアは適合率と再現率の調和平均で、バランスの良さを1つの数値で表せる
適合率と再現率って何が違うの?
魚釣りで例えるとわかりやすいよ。適合率は「釣った魚のうち食べられる魚の割合」で、再現率は「池にいる食べられる魚のうち実際に釣り上げた割合」なんだ。どっちの視点で評価するかの違いだね。
両方高ければいいんじゃないの?
理想はそうなんだけど、実際にはトレードオフの関係にあるんだ。網を大きくすれば魚はたくさん捕れる(再現率が上がる)けど、ゴミも一緒に入ってくる(適合率が下がる)。逆に網を小さくすれば精度は上がるけど、取りこぼしが増えるんだよ。
どっちを重視すればいいの?
用途によるね。スパムメール検出なら適合率が大事で、大事なメールをスパム扱いしちゃ困るよね。でも病気の検査なら再現率が大事で、病気を見逃すほうが危険だから。「何を間違えたらマズいか」で決めるんだよ。
具体的にはどうやって計算するの?
混同行列の4つの値を使うよ。適合率 = TP / (TP + FP) で「陽性判定のうち本当の陽性」、再現率 = TP / (TP + FN) で「本当の陽性のうち見つけたもの」だね。TPは真陽性、FPは偽陽性、FNは偽陰性のことだよ。
バランスよく見たいときはどうするの?
現場だとどのくらいの数値を目指すの?
タスクによるけど、F1スコアが0.8以上なら優秀と言われることが多いよ。ただし、クラスの偏りが激しい場合(不正検知で不正が0.1%など)は、適合率・再現率を個別に見ないと実態がわからない。accuracyだけ見て99.9%と喜んでも、不正を1件も見つけてなかった、なんてことがあるんだ。
なるほど、数字の裏側をちゃんと見ないとダメなんだね!
まとめ:ざっくりこれだけ覚えればOK!
「適合率と再現率」って出てきたら「誤検出の少なさと見逃しの少なさを測る指標」と思えればだいたいOK!
📖 おまけ:英語の意味
「Precision and Recall」 = 精度と再現率
💬 precision は「正確さ」、recall は「思い出す・呼び戻す」で、正解をどれだけ呼び戻せたかというニュアンスだよ