您可以根据精度、召回率和真/假阳性数量或案例支持来计算准确性(即使由于分子或分母为 0,精度或召回率为 0)。
TruePositive+FalseNegative=Support_True
TrueNegative+FalsePositive=Support_False
Precision=TruePositive/(TruePositive+FalsePositive) if TruePositive+FalsePositive!=0 else 0
Recall=TruePositive/(TruePositive+FalseNegative) if TruePositive+FalseNegative!=0 else 0
Accuracy=(TruePositive+TrueNegative)/(TruePositive+TrueNegative+FalsePositive+FalseNegative)
-或者-
例如,给定 TruePositive/TrueNegative 计数:
TPP=TruePositive/Precision=TruePositive+FalsePositive if Precision!=0 and TruePositive!=0 else TPP=0
TPR=TruePositive/Recall=TruePositive+FalseNegative if Recall!=0 and TruePositive!=0 else TPR=0
在上面,当 TruePositive==0 时,如果没有有关 FalseNegative/FalsePositive 的更多信息,则无法进行计算。因此支持效果更好。
Accuracy=(TruePositive+TrueNegative)/(TPP+TPR-TruePositive+TrueNegative)
但在你的情况下,给出的是支持,所以我们使用召回:
Recall=TruePositive/Support_True if Support_True!=0 else 0
TruePositive=Recall*Support_True, likewise TrueNegative=Recall_False*Support_False in all cases
Accuracy=(Recall*Support_True+Recall_False*Support_False)/(Support_True + Support_False)
在你的情况下(0*1259+1*1261)/(1259+1261)=0.500397
当只预测一类时,这正是您所期望的。在这种情况下,相应的精度分数即为准确度。
正如另一位海报所说,最好使用图书馆。但由于这听起来也可能是一个数学问题,因此可以使用它。