いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【その他】分類問題の評価指標を整理したい

・分類問題の評価指標がややこしいので、自分の言葉で整理することにした。

・分類問題では、いろいろな指標がモデル評価に用いられる。調べたいことは、「このモデルで、ちゃんと正しく分けられましたか?」ということだが、それぞれ何なのか?

・私のイメージを、犯罪捜査で犯人と関係ない人をきちんと分けて捕まえることができた否かで例える。

 

・True Positive RateとFalse Positive Rate

前者は、すべての犯人のうち捕まえることができた割合、後者は無関係な人のうち間違って捕まえてしまった(誤認逮捕)割合。前者は高い方が良いし、後者は低い方が良い。

数式的には、前者は捕まえることができた犯人÷すべての犯人の数、後者は捕まえてしまった無関係な人÷すべての無関係な人。

 

・sensitivity( = recall)

すべての犯人のうち、捕まえられた割合。True Positive Rateと同じ。1だと、犯人を逃さずみんな捕まえられたことになる。低いと、犯人を逃したことになる。

高いほど良いのだが、関係ない人も含めて片っ端からみんな捕まえてしまえば、犯人を逃すことはなく、1にすることができてしまう。

数式的には、捕まえることができた犯人÷すべての犯人の数

 

・specificity

すべての無関係な人のうち、ちゃんと無関係と判定された割合。1だと、誤認逮捕がゼロということになる。低いと、関係ない人も捕まえてしまっている。

sensitivityと同じように、これも片っ端から釈放してしまえば上がるのだが、犯人も逃してしまうことになる。

数式的には、解放された無関係な人÷すべての無関係な人

 

・accuracy

全員のうち、きちんと判断された人の割合。

パッと見ると、accuracyだけで指標としては十分に見えるが、犯人と関係ない人の割合が偏っていると、判断を誤ることになる。例えば、1000人人を集めてきて、10人程度が犯人、990人が関係ない人だとする。accuracyを99%にするなら、全員無関係だと言い切るだけのモデルにしてしまえば良い。

数式的には、(捕まえることができた犯人+解放された無関係な人)÷全人数

 

・precision

捕まえた人のうち、犯人の割合。

関係のない人を捕まえると下がる。presisionを上げたいなら、よっぽど自身がある場合だけ捕まえるというやり方になるが、やりすぎると犯人を逃してしまうことになる。一般的に、precisionを上げると、誤認逮捕が減る一方で取りこぼしが増える(sensitivity( = recall)が下がる)ことになるので、注意が必要。

数式的には、捕まえた犯人÷捕まえた人みんな(犯人と関係ない人ごっちゃ)

 

以降は、これらを使ったちょっとヒネた指標。

・F1値

sensitivity(=recall)とprecisionの調和平均。F1値の逆数がsensitivity(=recall)の逆数とprecisionの逆数の算術平均値になっている。sensitivity(=recall)とprecisionはいずれも高い方が良いのだが、同じモデルの中では相反する挙動をする傾向があるので、それらを加味した指標として扱われる。1に近い方が良い。

ちなみに、sensitivity(=recall)とprecisionに係数をかけることで、どちらかを重視したF値を設定することも可能(誤認逮捕をしてでも犯人を逃したくないとするか、犯人を逃してでも誤認逮捕を減らしたいとするか)。

 

ROC曲線

True Positive Rateを縦軸、False Positive Rateを横軸に取ったグラフ。

犯人と判断して捕まえる閾値を変化させたときに、これらがどう動くかを表現している。

Area Under Curve(AUC)も指標として用いられる。1に近いほど良いモデル。

ちなみに、ROC曲線はReceiver Operatorating Characteristic curve、受信者動作特性曲線の略らしい。なんだそれ。

 

・PR 曲線

Precisionを縦軸、Recallを横軸に取ったグラフ。

ROC曲線と同様に、犯人と判断して捕まえる閾値を変化させたときに、これらがどう動くかを表現している。

AUCが1に近いほど良いモデル。

 

ROC曲線とPR曲線

Trrue Positive RateとRecallが同じものなので、ROC曲線との違いは(軸の向きは置いておいて)Flase Positive Rateを使うかPrecisionを使うか、ということになる。

False Positive Rate:間違えて捕まえてしまった無関係な人÷すべての無関係な人

Precision:捕まえた犯人÷捕まえた人みんな(犯人と関係ない人ごっちゃ)

ROC曲線の方が、無関係な人をきちんと無関係と判定できたことも加味されている一方で、PR曲線の方は犯人を捕まえることができたことに重きを置いている指標に思える。そのため、基本的にROC曲線が指標としては広く用いられるらしい

一方で、PR曲線の方が捕まえた人に関しては細かいため、関係のない人の方が犯人に比べて、アンバランスに多く混ざっている場合、PR曲線が良いらしい

ややこしい。

 

終わり。