混淆矩阵中的误报率

时间:2019-12-21 17:16:30

标签: python pandas

我试图手动计算给定数据的TPR和FPR。但不幸的是,我的数据集中没有任何假阳性案例,甚至没有真正的阳性案例。 所以我被熊猫的零错误除以。所以我有一个直觉,即fpr = 1-tpr。如果不让我知道如何解决此问题,请让我知道我的直觉是正确的。

谢谢

2 个答案:

答案 0 :(得分:1)

这是获得混乱矩阵后可以做的所有事情的清单。

import numpy as np

print(cnf_matrix)

array([[13,  0,  0],
       [ 0, 10,  6],
       [ 0,  0,  9]])

FP = cnf_matrix.sum(axis=0) - np.diag(cnf_matrix)  
FN = cnf_matrix.sum(axis=1) - np.diag(cnf_matrix)
TP = np.diag(cnf_matrix)
TN = cnf_matrix.sum() - (FP + FN + TP)

FP = FP.astype(float)
FN = FN.astype(float)
TP = TP.astype(float)
TN = TN.astype(float)


# Sensitivity, hit rate, recall, or true positive rate
TPR = TP/(TP+FN)
# Specificity or true negative rate
TNR = TN/(TN+FP) 
# Precision or positive predictive value
PPV = TP/(TP+FP)
# Negative predictive value
NPV = TN/(TN+FN)
# Fall out or false positive rate
FPR = FP/(FP+TN)
# False negative rate
FNR = FN/(TP+FN)
# False discovery rate
FDR = FP/(TP+FP)

# Overall accuracy
ACC = (TP+TN)/(TP+FP+FN+TN)

答案 1 :(得分:0)

如果您的预测始终为正,那么无论您输入什么内容,都可以使FPR = 1且TPR = 1。

TPR = 1意味着我们正确预测了所有阳性结果。 FPR = 1等于当条件为负时总是总是积极预测。

提醒一下:

  • FPR = 1-TNR = [假阳性] / [阴性]
  • TPR = 1-FNR = [真阳性] / [阳性]