Python で ROC 曲線から Equal Error Rate(EER) を計算する方法を教えてください。scikit-learn には、roc 曲線と auc を計算する方法がありますが、EER を計算する方法が見つかりませんでした。
from sklearn.metrics import roc_curve, auc
答え:
自分で実装したと思います。
ROC EER の考え方は、(1,0) と (0,1) を結ぶ直線と roc 曲線の間の交点です。唯一交わる点です。a=1 および b=1 の直線の場合、式は になります x+y =1 (x/a +y/b =1.0)
。したがって、交点は真陽性率 (tpr) と偽陽性率 (fpr) の値になり、次の式が成り立ちます。
x + y - 1.0 = 0.0
したがって、メソッドを次のように実装します。
def compute_roc_EER(fpr, tpr):
roc_EER = []
cords = zip(fpr, tpr)
for item in cords:
item_fpr, item_tpr = item
if item_tpr + item_fpr == 1.0:
roc_EER.append((item_fpr, item_tpr))
assert(len(roc_EER) == 1.0)
return np.array(roc_EER)
したがって、ここで 1 つの値はエラー率であり、別の値は精度です。
誰かが私を確認するのを手伝ってくれるかもしれません。