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

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

💡 見つけた中の正解率? それとも見逃さない力? 二つの視点でAIの実力を測る
📌 このページのポイント
混同行列と適合率・再現率 予測 陽性 陰性 実際 陽性 陰性 TP 真陽性 FN 偽陰性(見逃し) FP 偽陽性(誤検出) TN 真陰性 適合率(Precision) TP / (TP + FP) 陽性判定のうち本当に陽性 再現率(Recall) TP / (TP + FN) 本当の陽性のうち見つけたもの トレードオフの関係 適合率を重視 誤検出を減らしたい 例: スパム判定 <--> 再現率を重視 見逃しを減らしたい 例: 病気の検査
適合率と再現率のイメージ
ひよこ ひよこ

適合率と再現率って何が違うの?

ペンギン先生 ペンギン先生

魚釣りで例えるとわかりやすいよ。適合率は「釣った魚のうち食べられる魚の割合」で、再現率は「池にいる食べられる魚のうち実際に釣り上げた割合」なんだ。どっちの視点で評価するかの違いだね。

ひよこ ひよこ

両方高ければいいんじゃないの?

ペンギン先生 ペンギン先生

理想はそうなんだけど、実際にはトレードオフの関係にあるんだ。網を大きくすれば魚はたくさん捕れる(再現率が上がる)けど、ゴミも一緒に入ってくる(適合率が下がる)。逆に網を小さくすれば精度は上がるけど、取りこぼしが増えるんだよ。

ひよこ ひよこ

どっちを重視すればいいの?

ペンギン先生 ペンギン先生

用途によるね。スパムメール検出なら適合率が大事で、大事なメールをスパム扱いしちゃ困るよね。でも病気の検査なら再現率が大事で、病気を見逃すほうが危険だから。「何を間違えたらマズいか」で決めるんだよ。

ひよこ ひよこ

具体的にはどうやって計算するの?

ペンギン先生 ペンギン先生

混同行列の4つの値を使うよ。適合率 = TP / (TP + FP) で「陽性判定のうち本当の陽性」、再現率 = TP / (TP + FN) で「本当の陽性のうち見つけたもの」だね。TPは真陽性、FPは偽陽性、FNは偽陰性のことだよ。

ひよこ ひよこ

バランスよく見たいときはどうするの?

ペンギン先生 ペンギン先生

F1スコアを使うといいよ。適合率と再現率の調和平均で、どちらかが極端に低いとF1スコアも下がるから、バランスの良さを1つの数値で把握できるんだ。コンペやモデル比較でもよく使われる指標だね。

ひよこ ひよこ

現場だとどのくらいの数値を目指すの?

ペンギン先生 ペンギン先生

タスクによるけど、F1スコアが0.8以上なら優秀と言われることが多いよ。ただし、クラスの偏りが激しい場合(不正検知で不正が0.1%など)は、適合率・再現率を個別に見ないと実態がわからない。accuracyだけ見て99.9%と喜んでも、不正を1件も見つけてなかった、なんてことがあるんだ。

ひよこ ひよこ

なるほど、数字の裏側をちゃんと見ないとダメなんだね!

ペンギン先生 ペンギン先生

そのとおり。だからモデル評価では必ず混同行列を確認して、適合率・再現率・F1を総合的に見るのが鉄則だよ。ビジネス要件に応じてどちらを重視するか判断できるエンジニアは、現場でとても頼りにされるんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「適合率と再現率」って出てきたら「誤検出の少なさと見逃しの少なさを測る指標」と思えればだいたいOK!
📖 おまけ:英語の意味
「Precision and Recall」 = 精度と再現率
💬 precision は「正確さ」、recall は「思い出す・呼び戻す」で、正解をどれだけ呼び戻せたかというニュアンスだよ
← 用語集にもどる