187
114

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Accuracy/Recall/Precisionってややこしくない??

Last updated at Posted at 2020-02-08
**2020/12/3更新**
コメントでも指摘いただいている通り、FPとFNを誤って記載しておりました。
関連箇所については修正をしました。
誤った情報を掲載してしまい、大変申し訳ございませんでした。

はじめに

Accuracy/Recall/Precisionといった機械学習の評価指標がややこしいです。
参考書などを見ると、

陽性 陰性
陽性 TP FN
陰性 FP TN

という感じの表(混同行列というらしい)が出てきて、いろいろ説明されていますが
陽性/陰性とかPositive/Negativeとか言われても、いまいちピント来きません!!!

ということでいろいろ調べていたら、以下のブログにとてもわかりやすく説明されていた。
https://towardsdatascience.com/data-science-performance-metrics-for-everyone-4d68f4859eef

備忘もかねて、この記事にまとめます!

ケース

ある医者が透析している患者が来週中に入院するか/しないかを予測する

医者の予測結果をベン図にすると以下のようになります。

image.png

  • 入院すると予測
    • True Positives(TP) : 本当に入院した      => 予測は正解
    • False Positives(FP) : 入院はしなかった     => 予測は不正解
  • 入院しないと予測
    • False Negatives(FN) : 入院した          => 予測は不正解
    • True Negatives(TN) : 本当に入院しなかった   => 予測は正解

実際の入院率(Prevalance)は以下の通り表せます。
image.png

今回のユースケースにおける入院率は2%程とのことです。

それではこちらのユースケースを元に機械学習の性能指標について説明します。

機械学習における性能指標

Accuracy(精度・正解率)

4つの中で最もよく使われる指標でありどれだけ正確に予測できているかを表します。

image.png

(TP + TN ) / (TP + FP + TN + FN)

Accuracyだとやぶ医者を見抜けない

もし予測した医者がやぶ医者で以下のように予測したらどうなるでしょうか?

「よくわからないので、誰も入院しないってことで!」

これだと実際に入院すると予測されるべき患者を一人も予測できてません。
しかしこの場合でもAccuracyは約98%という高い数値を示します。
(TP = 0 , TN ≒ 98)
つまりこのケースにおいて、Accuracyは適切な指標にならないことが言えます。

Recall(再現性)

Recallは実際に入院した患者を予測の時点でどれだけ当てることができたかという指標です。
つまりどれだけ取りこぼしなく予測することができたかを表します。

image.png

TP / (TP + FN)

Recallを用いるとやぶ医者を見抜ける

やぶ医者は一人も入院する患者を予測することができなかったため、Recallは0になります。(TP = 0)
そのため、このケースにおいてはRecallが適切な性能指標であることがわかります。

※Sensitivity(感度)と言う場合もあります。

Specificity(特異性)

Recallの反対。入院しなかった患者を予測の時点でどれだけ当てることができたかという指標です。
こちらはあまり使わないですね。

image.png

Precision(適合率)

Precisionは入院すると予測した患者のうち、本当に入院した患者の割合を表します。
つまり入院すると予測したものがどれだけ正しかったかを示します。

image.png

TP / (TP + FP)

Precisionは患者が知りたい指標

ある患者が医者から「あなたこのままだと来週から入院するぐらい病状が悪化しますよ、今のうちから入院しておくと大分マシになりますよ」と言われたとします。
そんなときに患者が知りたいのがPrecisionです。このPrecisionが高かければ医師の言ったことを正しそうだと判断できるし、低ければ医者が言ったことはあまり気にしなくてよさそうだと判断できるわけです。

まとめ

指標 何を表すか
Accuracy どれだけ正確に予測できているか
Recall どれだけ取りこぼしなく予測することができたか
Precision 正と予測したものがどれだけ正しかったか

なんとなくそれぞれの違いがイメージできたでしょうか?

特にRecallとPrecisionの違いがいまいちイメージしにくいと思います。
理解のポイントとして
 医者目線 => Recall
 患者目線 => Precision
というように視点によって何を求められるか考えると、イメージしやすくなるかと思います。

以上です~

187
114
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
187
114

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?