マシューズ相関係数は直感的ではなかったが保守的説。
どうも、すみません、まだまだ素人です。
いきなりのカミングアウトすみません!
マシューズ相関係数は直感的ではなかったが保守的説。
マシューズ相関係数;Matthews Correlation Coefficient (MCC)
まず、この指標はなんやねんと思った方も多いでしょう。私もそのうちの一人です。w
ただ、最近の論文ではよく使用されています。
MCCは、混同行列のすべてのフィールドを評価して、分類器の偏りのない比較に適した尺度と見なされています。
MCCの参考文献はこちら↓
混同行列の話や予測精度(F値)についてはこちら↓
F値は2つある?F statistics and F measure! - 人工知能・リハビリ・日記・理学療法
MCCは1から-1までの相関係数です。
1だと完璧な分類性能、0は完全にランダムな分類性能、-1は完全に逆の分類性能
計算して見ましょう。
MCCの計算式はこちら↓
さっそく、実際に計算。
まずは、インポート
import numpy as np
import pandas as pd
混同行列の各要素
N_TP = 15
N_FP = 1
N_FN = 2
N_TN = 10
混同行列
conf_MX = pd.DataFrame({"Positive":[N_TP,N_FN], "Negative":[N_FP,N_TN]},
index=["Positive","Negative"])
print(conf_MX)
TP = [[1,1] for i in range(N_TP)]
FP = [[1,0] for i in range(N_FP)]
FN = [[0,1] for i in range(N_FN)]
TN = [[0,0] for i in range(N_TN)]
df = pd.DataFrame(TP + FP + FN + TN, columns=["pred", "truth"])
print(df.head(5))
MCCを出して行きましょう!!!(一部、編集してください)
出力
print("MCC:" + str(mcc))
混同行列の結果
上記の数値だと、直感的にMCCも高くなりそうですよね。
マシューズ相関係数の結果
少し、混同行列の数字を変えてみましょう!!
こちらで計算↓
ちなみに感度は、非常に高いですよね。
MCCはどうでしょうか?
大分、下がりましたね。
感度が高くても、混同行列全体の分類能が悪くなればMCCは低下しますね。
感度の方が直感的ですが、MCCは分類能力は反映しそうです。
私の中では直感的ではないですが、保守的に考えてMCCが高いと、予測・分類精度が高いのかなという感じですね。
F値ですと、偏りがあった場合に、精度が高く見積もられたりすることがあります。
(例えば、感度は高いけど特異度が低い場合など)
医学的には、F値や感度・特異度の方が直感的でわかりやすいです。
MCCが高い場合は、ある意味安全なので、保守的な指標になりそうです。
(ちなみに、MCCは、ほぼピアソンの相関係数と同じです。)