【てきごうりつとさいげんりつ】

適合率と再現率(Precision/Recall) とは?

最終更新:
💡 見つけた中の正解率? それとも見逃さない力? 二つの視点でAIの実力を測る

適合率は「対象と判定した中で、本当に対象だった割合」、再現率は「本当の対象を見つけられた割合」です。分母の違い、計算例、正解率だけでは見えない見逃しを説明します。

📌 このページのポイント
同じ「見つけた8件」、分母が違う対象を見つける、分類の例適合率:見つけた中の正確さ本当に対象:8件TP対象でない:2件FP(誤検出)8 ÷(8+2)= 80%再現率:本当の対象を拾えた割合見つけた:8件TP見逃した:4件FN8 ÷(8+4)≒ 67%
同じ対象クラスでの計算例です。何を対象としたかと、分母に何を数えたかを確認しましょう。
ひよこ ひよこ
適合率と再現率って何が違うの?
ペンギン先生 ペンギン先生
魚釣りで例えるとわかりやすいよ。適合率は「釣った魚のうち食べられる魚の割合」で、再現率は「池にいる食べられる魚のうち実際に釣り上げた割合」なんだ。どっちの視点で評価するかの違いだね。
ひよこ ひよこ
両方高ければいいんじゃないの?
ペンギン先生 ペンギン先生
理想はそうなんだけど、判定のしきい値を動かすと片方を上げたときにもう片方が下がりやすいんだ。網を大きくすれば食べられる魚をたくさん捕れる(再現率が上がる)けど、ゴミも一緒に入りやすい(適合率が下がりやすい)。逆に網を小さくすれば適合率は上がりやすいけど、取りこぼしが増えるんだよ。ただ、いつも同時に逆へ動くとは限らないよ。
ひよこ ひよこ
どっちを重視すればいいの?
ペンギン先生 ペンギン先生
何を間違えると困るかで決めよう。たとえば迷惑メールの検出で、必要なメールを迷惑扱いする誤検出を減らしたいなら適合率に注目する。迷惑メールを取り逃すのを減らしたいなら再現率に注目するよ。片方だけで十分とは限らず、両方と実際の間違いを確かめるんだ。
ひよこ ひよこ
具体的にはどうやって計算するの?
ペンギン先生 ペンギン先生
混同行列の値を使うよ。適合率 = TP / (TP + FP)、再現率 = TP / (TP + FN) だね。TPは真陽性、FPは偽陽性、FNは偽陰性のこと。たとえばTP=8、FP=2、FN=4なら、適合率は8/10=0.8、再現率は8/12≒0.67。F1スコアは2×0.8×0.67÷(0.8+0.67)≒0.73になるよ。
ひよこ ひよこ
accuracy(正解率)だけ見ればよくないの?
ペンギン先生 ペンギン先生
たとえば1000件中1件だけが不正で、全件を「正常」と判定した場合、正解率は99.9%なのに不正の再現率は0だよ。不正と判定した件数も0なので、不正の適合率は分母が0で、そのまま計算できない。混同行列や、対象にしたクラス、計算できない値の扱いも確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「適合率と再現率」って出てきたら「見つけた中の正確さと、対象を拾えた割合」と思えばだいたいOK!
📖 おまけ:英語の意味
「Precision and Recall」 = 適合率と再現率
💬 precision は「正確さ」、recall は「思い出す・呼び戻す」で、正解をどれだけ呼び戻せたかというニュアンスだよ

参考資料

← 用語集にもどる