K_DM Book
用語集
対象者 高校生
対象者別の入口 →

対象者の設定はこのブラウザの中にだけ保存されます。

言語 JA

適合率・再現率(高校生向け)

入門高校生

03.3.3 高校生向け

適合率・再現率(高校生向け)

最終更新 2026-11-01 読了時間 1 分
まとめ
適合率(Precision)は「陽性と判定したもののうち、本当に陽性だった割合」で、誤報の少なさを表します。再現率(Recall)は「本当に陽性のもののうち、見つけられた割合」で、見逃しの少なさを表します。どちらも分子は同じ「正しく見つけた数(真陽性)」で、分母がちがうだけです。しきい値(判定の線)を動かすと片方が上がればもう片方が下がり、その関係を全部の線について描いた曲線が PR 曲線です。

こんな場面を想像してみよう #

砂浜に 20 枚のコインが埋まっていて、金属探知機で探すゲームをします。探知機が「ピッ」と鳴った場所を掘ると、本物のコインのこともあれば、くぎや空きかんのこともあります。

1 回目の結果は次のとおりでした。鳴った場所は 25 か所、掘ってみたら本物が 15 枚、はずれが 10 か所。埋まっている 20 枚のうち 5 枚は鳴らずに見つけられませんでした。

鳴った鳴らなかった合計
本物のコイン15(真陽性)5(見逃し)20
コインではない10(誤報)——

この探知機の「腕前」を 2 つの見方で採点します。

$$ \text{適合率} = \frac{15}{15 + 10} = 0.60, \qquad \text{再現率} = \frac{15}{15 + 5} = 0.75 $$

適合率 0.60 は鳴った 25 か所を全体として、6 割が本物だったという「掘り損の少なさ」です。再現率 0.75 は埋まっている 20 枚を全体として、75% を回収したという「取りこぼしの少なさ」です。分子はどちらも本物を掘り当てた 15 で、何を分母にするかだけがちがいます。

仕組み:ダイヤルを回すと 2 つの数が逆に動く #

探知機には感度のダイヤルがあります。機械学習でいうしきい値は、このダイヤルの位置のことです。

まず、探知機(モデル)は各地点に「コインらしさ」の点数をつけます。次に、ダイヤルの位置がしきい値になり、点数が線を超えた地点だけ「鳴る」(陽性判定)と決まります。ここで感度を上げる(しきい値を下げる)と、鳴る場所が 25 か所から 40 か所に増え、本物 19 枚・はずれ 21 か所になったとします。再現率は 19/20 = 0.95 に上がり、適合率は 19/40 ≒ 0.48 に下がります。見逃しは 5 枚から 1 枚に減ったが、掘り損は 10 か所から 21 か所に増えた、というわけです。逆に感度を下げる(しきい値を上げる)と、鳴る場所が 10 か所、本物 9 枚・はずれ 1 か所のようになり、適合率は 0.90 に上がって再現率は 9/20 = 0.45 に下がります。最後に、横軸に再現率、縦軸に適合率をとって 3 つの設定を打つと (0.45, 0.90)・(0.75, 0.60)・(0.95, 0.48) と右下がりに並び、ダイヤルを細かく回しながら全部つなぐと下の図のような PR 曲線になります。

PR 曲線。横軸が再現率、縦軸が適合率。しきい値を下げて右へ進むほど再現率は上がるが適合率は下がり、右端では陽性の割合(約 5%)まで落ちる

この図は、陽性が全体の 5% しかないデータでの PR 曲線です。曲線上の 1 点が 1 つのしきい値に対応します。右端(再現率 1.0)は「全部を陽性と言った」状態で、適合率は陽性の割合 0.05 まで落ちています。曲線が右上に張り出すほど良いモデルで、曲線の下の面積(平均適合率 AP)はそのまとめの数字です。

動かして見てみよう #

下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。

気をつけたいこと #

最初の注意は、「適合率」か「再現率」の片方だけ見ると簡単にだまされることです。全部を陽性と言えば再現率は 1.0 になり、いちばん自信のある 1 件だけ陽性と言えば適合率はほぼ 1.0 になるので、必ず 2 つセットで見ます。二つ目は、データの偏りが適合率の「床」を決めることです。陽性が 5% なら、しきい値を下げ切ったときの適合率は 0.05 で、同じモデルでも陽性の多いデータでは適合率が高く出ます。三つ目は、2 つを 1 つにまとめるなら足して 2 で割るのではなく F1 スコア(調和平均)を使うことです。片方が 0.1 のように極端に低いと F1 も低くなる性質があるので、「どちらかを捨てた」モデルを高く評価しません。

やってみよう #

最初の課題は、上の探知機で感度を「中」にしたら鳴る場所 30 か所・本物 17 枚になったとして、適合率と再現率を計算し、PR 曲線の 3 点 (0.45, 0.90)・(0.75, 0.60)・(0.95, 0.48) の間のどこに入るか確かめることです。二つ目は、「見逃しが困る場面」と「誤報が困る場面」を身の回りから 1 つずつ探し、それぞれ再現率と適合率のどちらを優先すべきか説明することです。三つ目は、再現率 1.0 なのに役に立たないモデルを作る方法を考え、そのとき適合率が陽性の割合(上の砂浜なら 20/全地点)まで落ちることを確かめることです。

つぎに読む #

数式、PR 曲線を描く Python コード、しきい値を 0.5 から 0.3 に下げる実例は 標準版の適合率・再現率 で扱っています。2 つを 1 つにまとめる F1 の計算は F1 スコア(高校生向け)、4 マスの表のおさらいは 混同行列(高校生向け) へ。指標の一覧は 分類の評価指標 にまとめています。