谁能告诉我如何从 Python 中的 ROC 曲线计算等错误率(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)
所以这里的一个值是错误率,另一个值是准确度。
可能有人可以帮助我验证。