予測モデルの評価（混同行列と評価指標）


# 混同行列（confusion matrix） is 何?
- シンプルに言う
	- 2値分類問題に対する予測モデルの評価で使用する行列
- ちょっと詳しく
	- 機械学習分野（特に統計的分類）の問題において、アルゴリズムの性能を可視化するための表現方法
	- 通常は教師あり学習で利用される
	- `2つの次元(「実際」と「予測」)` x `2つ以上のクラスのセット`で構成される
- 別名
	- 誤差行列（error matrix）

- こんなやつ
	
	|               |          | Predicted Values   |                   |
	| ------------- | -------- | ------------------ | ----------------- |
	|               |          | Positive           | Negative          |
	| Actual Values | Positive | True Positive: TP  | False Negative:FN |
	|               | Negative | False Positive: FP | True Negative:TN  |

	- (True|False) (Positive/Negative)の覚え方：`予測結果をベースに考える`
		- True Positive：「**予測結果がPositive**と出て、実際の値もPositive」
		- False Positive：「**予測結果がPositive**と出たが、実際の値はNegative」
		- False Negative：「**予測結果がNegative**と出たが、実際の値はPositive」
		- True Negative：「**予測結果がNegative**と出て、実際の値もNegative」


- 具体的な例
	- 状況
		- 10枚の画像のうち、犬が写っているものを判定する
		- 実際に犬が写っているのは、10枚のうち5枚のみ
	- 実際の状態と予測の結果は下記のようになった
		
		| #        | 実際 | 予測 |
		| -------- | ---- | ---- |
		| 0001.jpg |      |      |
		| 0002.jpg |      | ◯    |
		| 0003.jpg | ◯    | ◯    |
		| 0004.jpg |      | ◯    |
		| 0005.jpg | ◯    | ◯    |
		| 0006.jpg |      |      |
		| 0007.jpg | ◯    | ◯    |
		| 0008.jpg | ◯    |      |
		| 0009.jpg |      |      |
		| 0010.jpg | ◯    | ◯    |

		- まとめると
			- 予測：◯、実際：◯ = 4
			- 予測：◯、実際：× = 2
			- 予測：×、実際：◯ = 1
			- 予測：×、実際：× = 3

	- 上記の結果を混合行列で表す

		|               |          | Predicted Values |          |
		| ------------- | -------- | ---------------- | -------- |
		|               |          | Positive         | Negative |
		| Actual Values | Positive | 4                | 1        |
		|               | Negative | 2                | 3        |


# 評価指標
- confusion matrixから導かれる指標が色々ある
	- 正解率（Binary Accuracy）
	- 精度・適合率（Precision） / 陽性反応適中度（positive predictive value）
	- 再現率（Recall） / 感度（Sensitivity）
	- 陰性的中率（Negative predictive value）
	- 特異度（Specificity）
	- F1値（F-measure/F-Score）
	- F-βスコア（F-beta Score）
	- マシューズ相関係数（Matthews Correlation Coefficient）
	- ファイ係数（Phi coefficient）
	- バランス正解率（Balanced Accuracy）

## 正解率（Binary Accuracy）
- すべてのデータのうち、正しく予測できたものの割合
- 算出方法
	- 正解率 = $\frac{TP + TN}{TP + TN + FP + FN}$
- 問題点
	- データがPositive/Negativeのどちらかに偏っている場合、機能しなくなってしまう

## 精度・適合率（Precision） / 陽性反応適中度（positive predictive value）
- Positiveと予測したものが、実際にPositiveであった割合
- 算出方法
	- 適合率 = $\frac{TP}{TP + FP}$
- 問題点
	- Positiveと判定する基準を厳しくすれば、数値が高く出てしまう

## 再現率（Recall） / 感度（Sensitivity）
- 実際にPositiveであるものを、Positiveと予測できた割合
- 算出方法
	- 再現率 = $\frac{TP}{TP + FN}$
- 問題点
	- Positiveと判定する基準を緩くすれば、数値が高く出てしまう
		- つまり、適合率と再現率はトレードオフの関係にある。
		- 理想は、適合率も再現率も高いモデル 
			- 後述の「F1値（F-measure/F-Score）」参照

```
精度と再現率、どっちがどっち？？

医療：再現率を重視
マーケ：精度を重視 

医療
	実際に重病である患者を、もれなく「重病かもしれない」と予測できるモデルが良い
		その後、精密検査が実施される、といった運用

マーケ
	購買に至るだろうと予測された顧客が、実際に購買に至っているモデルが良い
		購買に至ると予測された顧客へ、ダイレクトメールを送る、といった運用
		施策効率、オプトアウトリスク回避
```

## 陰性的中率（Negative predictive value）
- Negativeと予測したものが、実際にNegativeであった割合
- 算出方法
	- 適合率 = $\frac{TN}{TN + FN}$
- 問題点
	- Positiveと判定する基準を緩くすれば、数値が高く出てしまう

## 特異度（Specificity）
- 実際にNegativeであるものを、Negativeと予測できた割合
- 算出方法
	- 再現率 = $\frac{TN}{TN + FP}$
- 問題点
	- Positiveと判定する基準を厳しくすれば、数値が高く出てしまう
		- つまり、陰性的中率と特異度はトレードオフの関係にある。

## F1値（F-measure/F-Score）
- 精度と感度の2つの評価指標を考慮した指標 
- 算出式
	- F1値 = $2 \times \frac {Presition \times Sensitivity}{Presition + Sensitivity}$
- 説明
	- 精度、感度がともに1の場合、F1値は1（最大）になる
	- 精度、感度のどちらかが0の場合、F1値は0（最小）になる
- 別名
	- F値
	- F1スコア

## F-βスコア（F-beta Score）
- F1値について、精度と感度のどちらを重視するのかを調整できるようにした指標
- βの値を調整することで
	- $β = 1$ :  F1スコア
	- $β > 1$ :  感度を重視
	- $β < 1$ :  精度を重視
	- $β = 0$ :  感度のみを考慮
- 算出式 
	- F-βスコア = $(1 + β^{2}) \times \frac{Presiont \times Sensitivity }{β^{2} \times Presition + Sensitivity }$
- 解説
	- F1値の「1」は、β = 1であることを表している
		- β = 2であれば、F2値。

## マシューズ相関係数（Matthews Correlation Coefficient）
- 算出式 
	- マシューズ相関係数 = $\frac{(TP \times TN) - (FP \times FN)}{\sqrt{(TP + FP)(TP + FN)(TN + FP)(TN + FN)}}$
	- 先のConfusionMatrixを、ピアソンの積率相関係数に当てはめたもの

## ファイ係数（Phi coefficient）
- 勉強中（未着手）
  
## バランス正解率（Balanced Accuracy）
- 勉強中（未着手）

# 参考
- confusion matrix
	- [混同行列 - Wikipedia](https://ja.wikipedia.org/wiki/%E6%B7%B7%E5%90%8C%E8%A1%8C%E5%88%97#:~:text=%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AE%E5%88%86%E9%87%8E%E3%80%81%E7%89%B9%E3%81%AB,%E3%80%81%E3%83%9E%E3%83%83%E3%83%81%E3%83%B3%E3%82%B0%E8%A1%8C%E5%88%97%E3%81%A8%E5%91%BC%E3%81%B0%E3%82%8C%E3%82%8B%EF%BC%89%E3%80%82)
	- [第312話｜統計的機械学習でよく使用される混同行列（Confusion Matrix）と評価指標 – セールスアナリティクス](https://www.salesanalytics.co.jp/column/no00312/)
	- [［評価指標］F値（F-measure、F-score）／F1スコア（F1-score）とは？：AI・機械学習の用語辞典 - ＠IT](https://atmarkit.itmedia.co.jp/ait/articles/2210/24/news034.html)
- LaTeX
	- [LaTeX/LaTeXによる文書整形の応用/数式を記述する](https://cns-guide.sfc.keio.ac.jp/2001/11/4/1.html)