データサイエンスにおける再現性とは?
定義
陽性positive $P$ と陰性negative $N$ を区別する分類問題において、陽性と陰性を判断するモデルが与えられたとする。陽を陽と判断した数を真陽性true Positive $TP$、陰を陰と判断した数を真陰性true Negative $TN$、陽を陰と誤って判断した数を偽陰性false Negative $FN$、陰を陽と誤って判断した数を偽陽性false Positive $FP$ とする。
数式的な定義
以下の数値をモデルの再現率recallとする。 $$ \textrm{Recall} := {{ TP } \over { P }} $$
説明
再現率は、陽性をどれだけ漏れなく見つけ出すかを示す尺度であり、モデルが陽性を見つけ出す能力の再現性を数値化したものである。再現率の別名は感度sensitivityである。細かく言えば、統計学では感度という表現が好まれ、コンピュータ科学や機械学習では再現率という表現が比較的好まれる。
再現率が重要な状況
- まずはこの記事を読んでみよう: データ科学において精度が過大評価される状況
上記の考察から、分類問題のモデルを評価する指標として精度だけが全てではないことが理解できるだろう。「私の再現率が高い」とモデルが言うことは、「私が見つけられなかった陽性はない」と主張することと同じである。再現率は、第二種の誤りがより重大な状況でパフォーマンスの尺度として考慮される:
- 情報検索: インターネットは情報の海であり、その中で自分が関心を持つ文書の量は、分野が何であれ全体に比べて極めて一部分であると確信できる。ある文書が自分のクエリqueryと関連がある場合に陽性とするならば、検索エンジンの重要な能力の一つは、数多くの文書の中から自分の関心事に合った陽性文書をできるだけ多く見つけ出すことにある。
- がん診断: 最近は医学の進歩により、ある程度がんを治療できるとはいえ、それも初期に発見するか末期に賭けるかで多くの部分が異なる。特に初期のがんの場合、多くは痛みや障害を引き起こさないため、症状があろうとなかろうと警戒し、小さな証拠でも感じやすくsensitively捉える必要がある。もし偽陽性であれば、早期に精密診断をすればいいが、症状のないがん患者を見逃すと、次のがん診断は「症状が出るほど」がんが進行した後になるだろう。
再現率が過大評価される状況
精度が全てではないように、再現率も万能ではない。再現率の式を見れば、偽陽性$FP$に対するペナルティが存在しないことがわかり、理論的にはどんなデータにも必ず100%の再現率を持つモデルの存在を示唆している。どれだけ間違えても、陽性だけを全て見つけ出すことが目標なら、どんなサンプルもとりあえず陽性としてしまえばいいわけだ。
例えば、モデルAが1000個のサンプル中の10個の陽性サンプルがあるデータで、9個を陽性と判断し91個を誤検出した場合、その再現率は $$ {{ 9 } \over { 10 }} = 90 \% $$ となる。91個の偽陽性が存在したにもかかわらず、このモデルはとにかく10個の陽性のうち9個を検出したので、再現率の観点から見れば優れた性能を持っていると言える。一方、別のモデルBが9個の陽性サンプルを見つけ出し、たった1個の偽陽性を起こしたとすると、その再現率は $$ {{ 9 } \over { 10 }} = 90 \% $$ とする。AとBは再現率の観点から同等のパフォーマンスを示したと評価されるが、これはBにとって不公平に思えるかもしれない。しかし、厳密に言えば、これらの再現率は誤解されていない。陽性を見つけ出した数は正確に測定されたものであり、その解釈自体に間違いはない。
それでも「Bの方がAより良い」と感じるなら、再現率がどう過大評価されているかを理解したことになる。Aが行う判定は信頼できないため、陽性として見つけたものの中から本当の陽性を再び見つけなければならない滑稽な事態が発生している。ある意味で、これと反対の概念が精度であり、両方の弱点を同時に考慮したのが$F_{1}$スコアだ。
参照
- 誤り行列と感度、特異度
- $F_{1}$スコア
- データ科学において精度が過大評価される状況
- 精度precision
- 再現率recall