Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 混淆矩阵中的假阳性率_Python_Pandas - Fatal编程技术网

Python 混淆矩阵中的假阳性率

Python 混淆矩阵中的假阳性率,python,pandas,Python,Pandas,我试图手动计算给定数据的TPR和FPR。但不幸的是,我的数据集中没有任何假阳性病例,甚至没有真阳性病例。 所以我得到的是零误差除以熊猫。所以我有一个直觉,fpr=1-tpr。请让我知道我的直觉是正确的,如果不让我知道如何解决这个问题 谢谢你如果你的预测总是积极的,那么无论你的输入是什么,FPR=1和TPR=1都是可能的 TPR=1意味着我们能正确预测所有积极因素。FPR=1相当于在条件为负时预测始终为正 提醒大家: FPR=1-TNR=[假阳性]/[阴性] TPR=1-FNR=[真阳性]/[阳

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


谢谢你

如果你的预测总是积极的,那么无论你的输入是什么,FPR=1和TPR=1都是可能的

TPR=1意味着我们能正确预测所有积极因素。FPR=1相当于在条件为负时预测始终为正

提醒大家:

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

如果无论您的输入是什么,您的预测总是积极的,则FPR=1和TPR=1是可能的

TPR=1意味着我们能正确预测所有积极因素。FPR=1相当于在条件为负时预测始终为正

提醒大家:

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

这是您获得混淆矩阵后可以做的事情的完整列表

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)

以下是获得混淆矩阵后可以执行的全部操作列表

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)

你可能想问这个你可能想问这个