minminの備忘録

フルスタックになりたいエンジニアの備忘録 → https://zuminblog.com/ へ引越し中

recall?precision?機械学習モデルの評価尺度についてまとめる

recall, precision, accuracy F値など機械学習モデルの評価尺度はいろいろあるのですが、どれがどれだかよくわからなくなってしまうのでまとめてみました

今回は1か0を予測する問題について考えたいと思います
※正例は1とします

はじめに

これからの説明に使用するので、以下に混同行列を書いておきます
混同行列(confusion matrix)とは予測結果と実際のデータを比較するときに使用する表のことです

f:id:minmin_21:20190323151512p:plain
confusion_matrix

これもどれがFPでどれがFNだか分からなくなってしまうのですが、

  • 予測結果と実際のデータがあっているものがT, そうでないものがF
  • 予測結果が正例である場合はP, 負例である場合はN

と覚えておけば大丈夫です

各評価指標の解説

accuracy

accuracyは以下の式で表されます


accuracy=\frac{TP+TN}{TP+FP+FN+TN}

accuracyは、すべてのデータにおいて正解したものの割合はどのくらいかを表した指標になります

これはイメージしやすいと思います

recall

続いてrecallです

recallは以下の式で表されます


recall=\frac{TP}{TP+FN}

recallは実際の正例の中(TP+FN)から、モデルがどれだけ拾えているかをあらわした指標です

つまり、どれだけ正例を見逃していないかということになります

モデルの予測結果をすべて正例にしてしまえば、必然的にrecallは1となります

precision

precisionは以下の式で表されます


precision=\frac{TP}{TP+FP}

precisionは正例と予測したもの(TP+FP)の中に、どれだけ実際の正例があるかを表した指標です

つまり、正例をどれだけ命中させたかということになります

絶対に正例だと思うものだけ正例にしてしまえば、precisionは高くなります

F値

F値は以下の式で表されます


F_{score} = \frac{2recall*precision}{recall+precision}

上のrecall, precisionでも説明したように

  • recallを高くするようにモデルを極端に学習させた場合->全て正例と判断し、precisionが低くなる
  • precisionを高くするようにモデルを極端に学習させた場合->正例と予測されるものが少なくなり、recallが低くなる

とrecallとprecisionはトレードオフの関係にあることがわかります

そこで、極端にモデルを学習させることなくrecallとprecisionを良い感じにするための指標としてF値があります

まとめ

  • accuracy
    • 純粋な正解率
  • recall
    • どれだけ正例を見逃していないか
  • precision
    • 正例をどれだけ命中させたか
  • F値
    • 極端にモデルを学習させることなくrecallとprecisionを良い感じにするための指標

参考