再現率/適合率とは?違い/覚え方【わかりやすく】

こちらもおすすめ

【2022年1月最新:全部受講】Udemyのおすすめ31選をカテゴリ別に紹介【データサイエンス/機械学習,Python/R/SQLプログラミング】 | Quant College

【初心者から上級者まで】Pythonプログラミング独学におすすめの本6選 (難易度順)【感想あり】 | Quant College

【感想あり】C++プログラミングの独学におすすめの本4選【金融工学徒向け】 | Quant College

具体例

ここでは「患者がウイルス感染しているかどうかを機械学習モデルが判定する」という状況を考えて説明してみる。

機械学習モデルとして3つを考える。
・ある程度は優秀なモデル
・厳し過ぎモデル(ほとんどの患者を感染していると判定する)
・ゆる過ぎモデル(ほとんどの患者を健康であると判定する)

〇が感染している
×が健康である

を示すとする。

       優秀な  厳し過ぎ ゆる過ぎ
    真実 モデル  モデル  モデル

患者1: 〇         
患者2: 〇         ×
患者3: 〇         ×
患者4: ×    〇   〇   ×
患者5: ×    ×   〇   ×
患者6: ×    ×   〇   ×

正解率:     5/6   3/6   4/6
再現率:     3/3   3/3   1/3
適合率:     3/4   3/6   1/1

TrueとFalse

再現率や適合率の計算式には、TP (True Positive) やFN (False Negative) という用語が出てくるので、これらについて知っておかないといけない。

True/Falseというのは、機械学習モデルによる分類が正解かどうかを表している。

Trueに該当するのは2つの場合があり、
・感染している患者を感染していると判定する
・健康な患者を健康と判定する
の2つである。

逆にFalseに該当するのも2つの場合があり、
・感染している患者を健康と判定する
・健康な患者を感染していると判定する
の2つ。

PositiveとNegative

次にPositive/Negativeというのは、機械学習モデルが正例(陽性などとも言う)と判定したか負例(陰性などとも言う)と判定したかを表す。重要なのは、真実がどうかは関係なく、あくまで機械学習モデルがどっちと判定したか、を表していること。とにかく機械学習モデルの目線で見ている、と覚えておく。

何が正例で何が負例かはケースバイケースだが、今の例では、
感染しているケースが正例
健康であるケースが負例
となる。

一般的には、
モデルを使って見つけ出したい異常サンプルが正例(例:スパムメール)
その他の通常サンプルが負例(例:スパムではないメール)
となる。

TP, TN, FP, FNとは

以上を踏まえて、
・TP (True Positive) とは、正例と判定されてかつ、本当に正例である場合
・TN (True Negative) とは、負例と判定されてかつ、本当に負例である場合
・FP (False Positive) とは、正例と判定されたが、本当は負例である場合
(つまり間違って正例と判定されてしまった場合。偽陽性などとも言う。)
・FN (False Negative) とは、負例と判定されたが、本当は正例である場合
(つまり間違って負例と判定されてしまった場合。偽陰性などとも言う。)

イメージとしては、
FP (False Positive) は、ちょっと疑わしいというだけで犯人にされてしまった場合や、ちょっと体調が悪いというだけでウイルス感染していると判定されてしまった場合のこと。
FN (False Negative) は、本当は犯人なのにまんまとバレずに捕まらなかった場合や、本当はウイルス感染しているのに検査が甘くて見つからなかった場合のこと。

再現率 (Recall) の計算

再現率 (Recall) とは、正解が正例であるもののうち、正例だと判定したものの割合である。

計算式は
$$
Recall = \frac{TP}{TP + FN}
$$
となる。
TP (True Positive) は正しく正例と判定されたもの、
FN (False Negative) は本当は正例なのに負例と判定されてしまったものである。

例えば患者6人のうち感染者が3人いて、その3人のうち2人を正例と判定できていれば、再現率は2/3 = 66.7%ということになる。

再現率の覚え方、問題点

再現率の覚え方としては、本当の正例のうち、モデルがどれくらいを「再現」できたか(正例のうちどれくらいを正例として出力したか)、というイメージになる。

再現率の特徴は、分母の主体が(モデルではなく)真実のほうだということ。つまり、計算式の分母に来るのは、モデルが正例と判定したものではなく、正解が正例だったもの、である。

再現率の問題点としては、機械学習モデルがなんでもかんでも正例と判定すれば、再現率が100%になってしまうことである。

例えば患者6人のうち感染者が3人しかいないのに、何も考えずに6人全員を感染者と判定した場合を考えよう。このとき、感染者3人のうち3人全員が正例と判定できているから、再現率は100%となる(見かけ上あたかも良いモデルかのように見えてしまう)。

したがって再現率が高いだけでは良いモデルとはいえない

適合率 (Precision) の計算

適合率 (Precision) とは、正例だと判定されたもののうち、本当に正例だったものの割合である。

計算式は
$$
Precision = \frac{TP}{TP + FP}
$$
となる。
TP (True Positive) は正しく正例と判定されたもの、
FP (False Positive) は本当は負例なのに正例と判定されてしまったものである。

例えば患者6人のうち4人を感染者と判定し、その4人のうち3人が本当に感染者であれば、適合率は3/4 = 75.0%ということになる。

適合率の覚え方、問題点

適合率の覚え方としては、モデルが正例と判定したもののうち、どれくらいが合っていたか(「適合」していたか)、というイメージになる。適合率の元の英語はPrecisionで、「精度」という意味なので、モデルの正例判定がどれくらいの「精度」で正解だったか、と覚えてもいいだろう。

適合率の特徴は、分母の主体が(真実ではなく)モデルのほうだということ。つまり、計算式の分母に来るのは、真実がどうだったかとは関係なく、機械学習モデルが正例と判定したもの、である。

適合率の問題点としては、機械学習モデルが慎重すぎて、負例の判定ばかりを出し、めったに正例の判定を出さないようにすれば、適合率が高く出やすいことである。

例えば感染者が3人のうち、わざわざ機械学習モデルを使わなくても明らかに感染者だとわかる1人の患者しか、正例と判定しなかった場合を考えよう。このとき、感染者と判定したのは1人だけで、本当にその1人が正例だから、適合率は100%となる(見かけ上あたかも良いモデルかのように見えてしまう)。

したがって適合率が高いだけでは良いモデルとはいえない

再現率と適合率の違い

以上から、再現率と適合率の違いをまとめると次の通り。

  • 分母の主体が、再現率は真実のほうだが、適合率はモデルのほう
  • 再現率は本物の正例のうちモデルがどれくらいを再現したか(実際に正例と判定できたか)を表し、適合率はモデルが正例と判定したもののうち、どれくらいの精度で正解だったかを表す
  • 再現率はモデルがアグレッシブに正例判定ばかりを出せば高くなるが、適合率はモデルがコンサバティブに負例判定ばかりを出せば高くなりやすい

再現率と適合率のトレードオフ

再現率と適合率はトレードオフの関係にある。つまり、

  • 再現率を上げようとすれば適合率が下がってしまう
  • 反対に、適合率を上げようとすれば再現率が下がってしまう

これはなぜかというと、機械学習モデルが、

  • アグレッシブに正例判定ばかりを出せば、再現率は高くなるが適合率は低くなる
  • コンサバティブに負例判定ばかりを出せば、適合率は高くなりやすいが再現率は低くなりやすい

というのが理由である。

このトレードオフを解決しようとする一つの方法がF値を使うことである。F値は再現率と適合率の両方を考慮し、2つの指標のバランスをとってモデルの性能を評価するための指標である。

あわせて読みたい

【簡単にわかりやすく】棄却サンプリングとは【乱数生成方法】 | Quant College

【簡単にわかりやすく解説】統計や機械学習にも出てくるコピュラとは?Copulaの日本語は?【コピュラ入門】 | Quant College

【ファイナンス機械学習の勉強メモ】MDA (Mean Decrease Accuracy) とは | Quant College

【ファイナンス機械学習の勉強メモ】組合せパージング交差検証 (Combinatorial Purged Cross-Validation; CPCV) とは【簡単にわかりやすく】 | Quant College

【ファイナンス機械学習 解説】著者の解説スライドを日本語でまとめてみる(1/10) | Quant College

【ファイナンス機械学習】著者によるNumerai解説スライドを日本語でまとめてみる | Quant College

クオンツとデータサイエンティストや機械学習エンジニアの違い | Quant College

プログラミングの勉強法 | Quant College

ライブラリの効率的な勉強法 | Quant College

こちらもおすすめ

【2022年1月最新:全部受講】Udemyのおすすめ31選をカテゴリ別に紹介【データサイエンス/機械学習,Python/R/SQLプログラミング】 | Quant College

【初心者から上級者まで】Pythonプログラミング独学におすすめの本6選 (難易度順)【感想あり】 | Quant College

【感想あり】C++プログラミングの独学におすすめの本4選【金融工学徒向け】 | Quant College