混同行列からベイズの定理へ:適合率と再現率の裏にある確率の考え方

こんにちは。ゆうせいです。

機械学習モデルの評価指標を学ぶとき、多くの人は混同行列、適合率、再現率という言葉を、それぞれ独立した公式として暗記します。しかし、この三つは、実はベイズの定理という一つの確率の枠組みでつながっています。この関係を理解すると、なぜ適合率と再現率がトレードオフの関係になるのか、なぜ「精度が99パーセントのモデル」が実務では役に立たないことがあるのか、といった疑問が、公式の暗記ではなく、確率の構造として腑に落ちるようになります。本記事では、混同行列の基本から出発し、条件付き確率を経て、ベイズの定理へとつなげて解説します。

混同行列とは何か

まず、混同行列(Confusion Matrix)を確認します。

二値分類問題、たとえば「病気にかかっているか、いないか」を予測するモデルを考えます。モデルの予測結果と、実際の正解を、次の四つに分類したものが混同行列です。

予測が陽性予測が陰性
実際に陽性真陽性(TP)偽陰性(FN)
実際に陰性偽陽性(FP)真陰性(TN)

真陽性(TP)は、実際に病気であり、モデルも陽性と予測した件数です。

偽陰性(FN)は、実際には病気であるのに、モデルが誤って陰性と予測した件数です。

偽陽性(FP)は、実際には病気でないのに、モデルが誤って陽性と予測した件数です。

真陰性(TN)は、実際に病気でなく、モデルも陰性と予測した件数です。

行を実際のクラス、列を予測したクラスとする並べ方は、scikit-learnのconfusion_matrix関数が採用している形式でもあります。どちらの並べ方を使うかは資料によって異なるため、報告書や研修資料で混同行列を扱うときは、行と列がそれぞれ何を表しているかを、必ず明記してください。

適合率と再現率の定義を確認する

混同行列から、代表的な二つの評価指標が計算されます。

適合率(Precision)は、モデルが陽性と予測したもののうち、実際に陽性だった割合です。

適合率 = \frac{TP}{TP + FP}

再現率(Recall)は、実際に陽性であるもののうち、モデルが正しく陽性と予測できた割合です。

再現率 = \frac{TP}{TP + FN}

この二つの式を、暗記した公式としてではなく、確率の記号で書き直すところから、ベイズの定理への道が開けます。

適合率と再現率を条件付き確率として書き直す

条件付き確率とは、「ある事象Bが起きたという条件のもとで、事象Aが起きる確率」を表すものであり、次のように書きます。

P(A \mid B)

これを使って、適合率と再現率を書き直します。

モデルが陽性と予測することを「予測陽性」、実際に病気であることを「実際陽性」と呼ぶことにします。

再現率は、実際陽性という条件のもとで、モデルが予測陽性を出す確率です。

再現率 = P(予測陽性 \mid 実際陽性)

一方、適合率は、予測陽性という条件のもとで、実際陽性である確率です。

適合率 = P(実際陽性 \mid 予測陽性)

ここで重要な点に気づきます。再現率は「実際陽性→予測陽性」という向きの条件付き確率であり、適合率は「予測陽性→実際陽性」という、向きが逆の条件付き確率です。

同じ二つの事象(実際陽性、予測陽性)を扱っているのに、条件とする側が入れ替わると、まったく別の指標になるのです。この「向きが逆の条件付き確率どうしを、どう関係づけるか」という問題こそが、ベイズの定理が扱うテーマです。

ベイズの定理の確認

ベイズの定理は、次の式で表されます。

P(A \mid B) = \frac{P(B \mid A) \cdot P(A)}{P(B)}

この式は、「Bが起きたという条件でAが起きる確率」を、「Aが起きたという条件でBが起きる確率」から計算する方法を示しています。つまり、条件付き確率の向きを、逆転させるための公式です。

これを、適合率と再現率の記号に当てはめます。

P(実際陽性 \mid 予測陽性) = \frac{P(予測陽性 \mid 実際陽性) \cdot P(実際陽性)}{P(予測陽性)}

左辺は、適合率そのものです。右辺の分子にある P(予測陽性 \mid 実際陽性) は、再現率そのものです。

つまり、適合率は、再現率に、いくつかの確率をかけたり割ったりすることで導かれる関係にあるのです。適合率と再現率は、無関係な二つの指標ではなく、ベイズの定理によって橋渡しされた、一つの確率構造の異なる側面だということが分かります。

なぜこの関係が重要なのか:有病率という隠れた変数

ベイズの定理の式に含まれる P(実際陽性) という項に注目してください。これは、病気にかかっている人が、全体のうちどれくらいの割合を占めるかという確率であり、医療の文脈では有病率と呼ばれます。

この項の存在が、実務上、非常に重要な意味を持ちます。

同じ再現率、同じ検査精度のモデルであっても、有病率が低い集団に適用すると、適合率が大きく下がるという現象が起きるのです。

具体的な数値で確認する

100000人のうち、実際に病気にかかっている人が100人(有病率0.1パーセント)という、非常にまれな病気を考えます。

検査の性能は、次の通りとします。

病気の人を正しく陽性と判定する確率(再現率):99パーセント

病気でない人を正しく陰性と判定する確率:99パーセント

一見すると、非常に優秀な検査に思えます。混同行列を、行を実際のクラス、列を予測したクラスとして、実際に計算してみます。

予測が陽性予測が陰性
実際に陽性TP = 99FN = 1
実際に陰性FP = 999TN = 98901

実際に病気の100人のうち、99人が正しく陽性と判定されます(TP=99)。1人は見逃されます(FN=1)。

実際には病気でない99900人のうち、99パーセントにあたる98901人が正しく陰性と判定されます(TN=98901)。残りの1パーセントにあたる999人が、誤って陽性と判定されてしまいます(FP=999)。

このとき、適合率を計算すると、次のようになります。

適合率 = \frac{TP}{TP + FP} = \frac{99}{99 + 999} = \frac{99}{1098} \approx 9.0パーセント

再現率は99パーセントという高い値であるにもかかわらず、適合率はわずか9パーセント程度にしかなりません。つまり、この検査で陽性と判定された人のうち、実際に病気である人は、10人に1人程度しかいないということです。

ベイズの定理が教えてくれること

この現象は、偶然でも計算ミスでもありません。ベイズの定理の構造そのものから、必然的に導かれる結果です。

P(実際陽性 \mid 予測陽性) = \frac{P(予測陽性 \mid 実際陽性) \cdot P(実際陽性)}{P(予測陽性)}

右辺の P(実際陽性) 、つまり有病率が極めて小さい値(0.001)であるため、分子全体が小さく抑えられてしまいます。検査自体の性能(再現率)がどれだけ高くても、もともとの母集団における陽性の割合が低ければ、予測が当たったときにそれが本当に陽性である確率は、大きく下がってしまうのです。

これは、医療診断だけの話ではありません。不正取引の検知、スパムメールの判定、まれな設備故障の予測など、実際に起きる事象の割合が低い(不均衡なデータの)問題すべてに共通する構造です。

新人エンジニアが「再現率も適合率も高いモデルを作った」と報告してきたとき、その評価が、有病率に相当する「実際の陽性の割合」を踏まえたものであるかどうかを、必ず確認する必要があります。

実務での対策との関連

この構造を理解していると、実務上の対策の意味も理解しやすくなります。

対策の一つは、検査を二段階にすることです。一段階目の検査で陽性となった人だけに、二段階目のより精密な検査を行います。これにより、二段階目の検査を受ける母集団における有病率(実際陽性の割合)が引き上げられ、最終的な適合率が改善します。

対策のもう一つは、モデルの判定基準(閾値)を調整することです。陽性と判定するための基準を厳しくすれば、偽陽性(FP)が減り、適合率が上がります。ただし、その代わりに、本来陽性であるものを見逃す偽陰性(FN)が増え、再現率が下がります。これが、適合率と再現率のトレードオフと呼ばれる現象であり、その理由も、ベイズの定理の分母と分子の関係から説明できます。

混同行列の各指標とベイズの定理の対応関係

ここまでの内容を、整理します。

指標条件付き確率としての表現ベイズの定理での役割
再現率P(予測陽性 | 実際陽性)ベイズの定理の右辺の分子の一部(尤度に相当)
適合率P(実際陽性 | 予測陽性)ベイズの定理の左辺(事後確率に相当)
有病率P(実際陽性)ベイズの定理の右辺の分子の一部(事前確率に相当)
予測陽性の全体割合P(予測陽性)ベイズの定理の右辺の分母(周辺確率に相当)

このように対応づけると、ベイズの定理でよく使われる「事前確率」「尤度」「事後確率」という言葉が、そのまま混同行列の指標に対応していることが分かります。

事前確率とは、データを見る前に、あらかじめ分かっている陽性の割合(有病率)です。

尤度とは、実際に陽性である場合に、検査が陽性と出る確率(再現率に相当する部分)です。

事後確率とは、検査結果(陽性という予測)を踏まえたうえで、実際に陽性である確率(適合率)です。

つまり、適合率とは、ベイズの定理によって「検査結果を踏まえて確率を更新した後の、実際に陽性である確率」だと言い換えることができるのです。

理解度を確認する問い

ここまでの内容を、次の問いで確認してみてください。

再現率が99パーセントと高くても、適合率が低くなる場合があるのはなぜでしょうか。有病率という言葉を使って説明してみてください。

不正取引の検知モデルにおいて、不正取引の発生割合が全体の0.01パーセントしかない場合、モデルの再現率だけを見て性能を評価することの問題点は何でしょうか。

適合率と再現率がトレードオフの関係になるのは、判定基準(閾値)をどちらの方向に動かしたときに、それぞれどう変化するからでしょうか。

まとめ

混同行列から導かれる適合率と再現率は、それぞれ、実際陽性と予測陽性という二つの事象に関する、向きの異なる条件付き確率として表せます。

再現率は「実際陽性を条件とした予測陽性の確率」であり、適合率は「予測陽性を条件とした実際陽性の確率」です。この二つを結びつけるのが、条件付き確率の向きを逆転させるベイズの定理です。

ベイズの定理の式には、有病率に相当する事前確率が含まれており、この値が小さいと、検査の性能(再現率)が高くても、適合率が大きく下がるという現象が起こります。これは、まれな事象を検出するあらゆる問題に共通する構造です。

適合率と再現率を単なる暗記した公式として扱うのではなく、ベイズの定理という一つの確率の枠組みの中に位置づけて理解することで、モデルの評価指標が実務でどのような意味を持つのか、より深く判断できるようになります。

次のステップとして、実際に有病率を変えながら、適合率がどう変化するかを表計算ソフトで試算してみたり、自分が扱っているデータにおける「実際陽性の割合」がどれくらいかを確認してみたり、判定基準(閾値)を動かしたときに適合率と再現率がどうトレードオフするかを、ROC曲線やPR曲線を描いて確認してみたりすることをお勧めします。その体験を通じて、評価指標の裏にある確率の構造が、より実感を伴って理解できるようになるでしょう。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。