【機械学習】分類器の評価(1)


#はじめに
分類器の評価に関する内容を整理します。

#分類器の概念

二項分類において、下記の図のように陽性Positiveと陰性Negativeのデータがあるとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/0d7d1a77-aa5e-0339-a280-3175587cd5f9.png)



もし、この分類器の正確度が100%であれば、下記の図のように陽性と陰性データを完璧に分類が可能です。分類器が、陽性として予測した領域をPositive Prediction, 陰性として予測した領域をNegative Predictionと言います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/ac9face6-de6a-8d54-22ab-8ed843b32ec3.png)

しかしながら、実世界では正確度100%の分類器は珍しく、下記の図のように分類するケースが多いです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/726c772e-2355-79af-02bc-7dbd0e66e1d3.png)

ここで、用語を整理しましょう。

1. データが陽性で、分類器が陽性として正しく予測した場合　→　True Positive (TP)
2. データが陰性で、分類器が陰性として正しく予測した場合　→　True Negative (TN)
3. データが陽性で、分類器が陰性として間違って予測した場合　→　False Negative (FN)
4. データが陰性で、分類器が陽性として間違って予測した場合　→　False Positive (FP)

これらの用語を図として表現すると、下記の図になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/72a52858-1eb8-2415-db00-c1ce47121116.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/d090655a-db09-4560-14dc-463c85ba0e01.png)

普段、これらの用語をテーブルとして表すと、下記のようになります。あるいは、混合行列(Confusion Matrix)とも言います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/35bf8a1a-3feb-c2c3-f3ad-c6c3a129b7da.png)

そして、実際(Observed)に陽性Positive, 陰性Negativeは、下記の式が成立します。

```math
P = TP + FN\\
N = FP + TN
```
この表を用いて、次の指標を計算して、分類器の評価に使います。

##Accuracy（正確度）
全データの中（赤い枠）、正しく分類されたデータ（緑色）の割合を示します。

```math
Accuracy = \frac{TP+TN}{TP+FN+FP+TN} = \frac{TP+TN}{P+N} 
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/549a8f62-7e6b-0b67-6617-67218014fed8.png)


## Sensitivity（Recall, 敏感度）
陽性データの中（赤い枠）、正しく陽性として分類されたデータ（緑色）の割合を示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/64b96388-4197-19bc-235f-c2bf3ba6b153.png)

```math
Sensitivity = \frac{TP}{TP+FN} = \frac{TP}{P} 
```

## Precision(精密度）
陽性として予測したデータの中（赤い枠）、実際に陽性のデータ（緑色）の割合を示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/61b63558-6133-d7b6-8891-b61e5159ecb4.png)

```math
Precision = \frac{TP}{TP+FP} 
```
## Specificity(特異度 True Negative Rate)
陰性データの中（赤い枠）、正しく陰性として分類されたデータ（緑色）の割合を示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/e899ab32-d6b0-972a-8e74-5617a3050b4b.png)


```math
Specificity = \frac{TN}{FP+TN} = \frac{TN}{N}  
```

##False Positive Rate (1-Specificity)
陰性データの中（赤い枠）、間違って陽性として分類されたデータ（緑色）の割合を示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/2f88bd39-2fbc-94ef-b8ed-81e3718eaf92.png)

```math
False Positive Rate = \frac{FP}{FP+TN} = \frac{FP}{N}　= 1- Specificity  
```

#まだピンとこない方のために

分類器の評価に関するいくつの用語を整理しました。しかしながら、まだピンとこない方もいると思います。
特にSensitivityとSpecificityがなかなな覚えられない意見が多いと聞いています。

例えば、貴方が海軍のためにレーダーを開発しているエンジニアだとしましょう。
貴方の任務は、友軍機(Positive)と敵機(Negative)を正しく捕捉するレーダーを設計することです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/087f5860-ddfd-ff5f-39ef-34381385863a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/9630524f-ffe2-a9aa-e841-28de29ee677a.png)


| 用語      |       定義 |  海軍のレーダー    |
|:-----------------:|:------------------:|:------------------:|
|Accuracy|全データの中、正しく分類されたデータの割合　|　レーダーが友軍機、敵機問わず正しく捕捉された割合|
|**Sensitivity, Recall**|陽性データの中、正しく陽性として分類されたデータの割合　|**友軍機の中、友軍機として正しく判断された割合**|
|Precision|陽性として予測したデータの中、実際に陽性のデータの割合　|友軍機と判断した中、実際に友軍機であった割合|
|**Specificity**|陰性データの中、正しく陰性として分類されたデータの割合|**敵機の中で、正しく敵機と判断した割合**|
|False positive rate|陰性データの中、間違って陽性として分類されたデータの割合|敵機を間違って友軍機と判断した割合　|

海軍のレーダーの目的を考えますと、

1. 友軍機をいかに正しく検知するか　→　**Sensitivity**の指標で判断。
2. 敵機をいかに正しく検知するか　→　**Specificity**の指標で判断。

とう感じでいかがですか？



#参考資料

https://classeval.wordpress.com/introduction/basic-evaluation-measures/
https://bit.ly/3dCX3R8