recall?precision?機械学習モデルの評価尺度についてまとめる
recall, precision, accuracy F値など機械学習モデルの評価尺度はいろいろあるのですが、どれがどれだかよくわからなくなってしまうのでまとめてみました
今回は1か0を予測する問題について考えたいと思います
※正例は1とします
はじめに
これからの説明に使用するので、以下に混同行列を書いておきます
混同行列(confusion matrix)とは予測結果と実際のデータを比較するときに使用する表のことです
これもどれがFPでどれがFNだか分からなくなってしまうのですが、
- 予測結果と実際のデータがあっているものがT, そうでないものがF
- 予測結果が正例である場合はP, 負例である場合はN
と覚えておけば大丈夫です
各評価指標の解説
accuracy
accuracyは以下の式で表されます
accuracyは、すべてのデータにおいて正解したものの割合はどのくらいかを表した指標になります
これはイメージしやすいと思います
recall
続いてrecallです
recallは以下の式で表されます
recallは実際の正例の中(TP+FN)から、モデルがどれだけ拾えているかをあらわした指標です
つまり、どれだけ正例を見逃していないかということになります
モデルの予測結果をすべて正例にしてしまえば、必然的にrecallは1となります
precision
precisionは以下の式で表されます
precisionは正例と予測したもの(TP+FP)の中に、どれだけ実際の正例があるかを表した指標です
つまり、正例をどれだけ命中させたかということになります
絶対に正例だと思うものだけ正例にしてしまえば、precisionは高くなります
F値
F値は以下の式で表されます
上のrecall, precisionでも説明したように
- recallを高くするようにモデルを極端に学習させた場合->全て正例と判断し、precisionが低くなる
- precisionを高くするようにモデルを極端に学習させた場合->正例と予測されるものが少なくなり、recallが低くなる
とrecallとprecisionはトレードオフの関係にあることがわかります
そこで、極端にモデルを学習させることなくrecallとprecisionを良い感じにするための指標としてF値があります
まとめ
- accuracy
- 純粋な正解率
- recall
- どれだけ正例を見逃していないか
- precision
- 正例をどれだけ命中させたか
- F値
- 極端にモデルを学習させることなくrecallとprecisionを良い感じにするための指標