【发布时间】:2020-05-16 00:59:09
【问题描述】:
如何在数据集不平衡的情况下计算平均 TPR、TNR、FPR、FNR?
FPR 示例:[3.54224720e-04 0.00000000e+00 1.59383505e-05 0.00000000e+00] 那么,我可以计算出 4 类的总和除以 4 吗?
TPR :[3.54224720e-04 + 0.00000000e+00 + 1.59383505e-05 + 0.00000000e+00]/4 = 0.99966 ?
以及如何计算 3.54224720e-04 等于 .000354224720 ?
谢谢
FP = np.sum(matrix, axis=0) - np.diag(matrix)
FN = np.sum(matrix, axis=1) - np.diag(matrix)
TP = np.diag(matrix)
TN = np.sum(matrix) - (FP + FN + TP)
# True Positive rate
TPR = TP/(TP+FN)
print("TPR:", TPR)
# True Negative Rate
TNR = TN/(TN+FP)
print("TNR:", TNR)
# False Positive Rate
FPR = FP/(FP+TN)
print("FPR:", FPR)
# False Negative Rate
FNR = FN/(TP+FN)
print("FNR:", FNR)
# Overall accuracy
ACC = (TP+TN)/(TP+FP+FN+TN)
print("ACC :", ACC)
【问题讨论】:
-
TPR 中的 R 代表召回 ??
-
R 表示率 - 真阳性率
-
1.您是否有来自不同运行的多个 TPR,并且您希望最终得到一个? 2. 不平衡数据集是什么意思?为什么它对计算很重要?
-
在我的数据中有 4 个类实例。如果您看到碎石镜头,则每个班级的 TPR 将分别出现。关于平衡和不平衡计算之间有什么区别,我有点困惑。我没有从这里考虑准确性,关于准确性,我确实将计算正确分类的实例与不正确的实例分开计算,因为不平衡数据集 print("Accuracy Score:" + str(accuracy_score(yTest.argmax(axis=1), yPred.argmax(axis =1))))。谢谢
标签: python machine-learning confusion-matrix multiclass-classification