logo

データサイエンスにおける精度とは? 📂データサイエンス

データサイエンスにおける精度とは?

定義

分類問題で陽性positive $P$ と陰性negative $N$ を分けるモデルがあるとする。陽を陽として判断した数を真陽性true Positive $TP$、陰を陰として判断した数を真陰性true Negative $TN$、陽を誤って陰と判定した数を偽陰性false Negative $FN$、陰を誤って陽と判定した数を偽陽性false Positive $FP$ としよう。

数式的な定義

以下の値をモデルの精度precisionという。 $$ \textrm{Precision} := {{ TP } \over { TP + FP }} $$

説明

精度は、陽性を陽性と判断した時、どれだけ確かなのかを指す尺度だ。 正確さaccuracyと言葉が似ており、辞書的な意味もほぼ同じだが、混同するよりは英語の発音そのままのアキュラシー(正確さ)とプレシジョン(精度)を覚えた方がいい。

精度が重要な状況

上記から、分類問題のモデルを評価する指標が正確さだけでないことを理解できるはずだ。モデルが自ら「私の精度は高い」と言うのは、「私が陽性と言ったら、それは確かだ」と主張するのと同じだ。精度は特に第一種のエラーがより深刻な状況で、パフォーマンスの尺度として考慮される:

  • スパムメール:精度が重要な状況でよく言及される例。メールがスパムと判断されるなら、かなりの確信が必要。スパムメールがたまるのは大した問題ではないが、誤分類によりユーザーに届けられるべき重要な情報が届かないのは深刻な問題を引き起こすかもしれない。
  • 法的判決:法による判決はまだ完全に機械モデルに置き換えられていないが、有罪を陽性とする場合、判事は二項分類問題を解く人と見なしても構わない。ある判事Aの精度が100%だとすると、その判事がこの社会に解き放った凶悪犯が何人かはわからないが、無実の人を閉じ込めたことはない、ということと同じだ。法において「ほとんどの判決が正確なこと」が「無実の犠牲者を出さないこと」より価値があると言いにくい。

精度が過大評価される状況

正確さが万能でないように、精度も万能ではない。精度の分母を見ると、$(TP + FP)$ であり、「陽性と判断した回数」が分母になる。これはデータと関係なく、分母が小さくなることがあり、実際に陽性のサンプルがいくつあるかにかかわらず、陽性判定自体を保守的に行なうことで数値が操作される可能性がある。

例えば、モデルAが100個の陽性サンプルのうち9個を陽性と判断し、一つを誤判断した場合、その精度は $$ {{ 9 } \over { 9 + 1 }} = 90 \% $$ となる。$90 \%$はまあまあ尊敬できるが、残りの91個の陽性サンプルは無視されてしまう。一方で、別のモデルBが90個の陽性サンプルを陽性と判断し、残りの10個を誤判断したとすると、その精度は $$ {{ 90 } \over { 90 + 10 }} = 90 \% $$ となる。AとBは精度の面で同等のパフォーマンスを発揮したと評価されるが、これはBにとって不公平に見えるかもしれない。しかし、厳密に言えば、彼らの精度は誤解されていない。とにかく陽性と判断した時の信頼度は等しく測定されたのだし、その解釈自体に間違いはない。

それでも、「Bの方がAより良い」と感じるなら、精度がどう過大評価されたかを理解したことになる。簡単に言えば、Aは臆病で、慎重だが少しもどかしい。ある意味で、これの反対が再現率であり、二つの欠点を同時に考慮したものが$F_{1}$スコアだ。

併せて見る