试图找到 FP、FN、TP、TN,但我遇到了一些错误

Trying to find FP,FN,TP,TN but i'm having some errors

我正在尝试查找 FP、FN、TP、TN 值,但出现此错误:

AttributeError: 'function' object has no attribute 'sum'

这是我的代码部分:

FP = confusion_matrix.sum(axis=0) - np.diag(confusion_matrix)   <-- Error in this line
FN = confusion_matrix.sum(axis=1) - np.diag(confusion_matrix)
TP = np.diag(confusion_matrix)
TN = confusion_matrix.sum() - (FP + FN + TP)

TPR = TP/(TP+FN)
TNR = TN/(TN+FP) 
PPV = TP/(TP+FP)
NPV = TN/(TN+FN)
FPR = FP/(FP+TN)
FNR = FN/(TP+FN)
FDR = FP/(TP+FP)

ACC = (TP+TN)/(TP+FP+FN+TN)

您收到此错误是因为 confusion_matrix 是一个函数,而您正试图对其调用 sum 函数。

如果您使用 scikit-learn 中的 confusion_matrix,在简单的二进制情况下,您可以像这样获得 FP、FN、TP 和 TN:

tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel()

否则,在计算正值和负值之前,您需要在实际和预测的 y 上调用它。

cm = confusion_matrix(y_true, y_pred)
# compute FP, FN, TP, & TN here on cm