我正在尝试在混淆矩阵中找到True负数,我已经从头开始成功计算出精度和召回率/敏感性,现在我需要计算准确性和特异性。 这是我的困惑矩阵:
计算0级的精度
Precision= TP*100/(TP+FP)
precision = 66*100/(66+2+0)
precision = 97.0588
计算1类的精度
Precision= TP*100/(TP+FP)
precision = 81*100/(81+1+1)
precision = 97.5903
计算2类的精度
Precision= TP*100/(TP+FP)
precision = 56*100/(56+3+0)
precision = 94.9152
使用我得到的Pycm库:
PPV(Precision or positive predictive value) 0.97059 0.9759 0.94915
其中0.97059是0类的精度,下一个是1类,最后一个是2类。
计算0级召回率
recall = TP*100/(TP+FN)
recall = 66/(66+2+0)
recall = 97.0588
计算1类的召回率
recall = TP*100/(TP+FN)
recall = 81/(81+2+3)
recall = 94.1860
计算2类的召回率
recall = TP*100/(TP+FN)
recall = 56/(56+0+1)
recall = 94.1860
使用我得到的Pycm库:
TPR(recall or true positive rate) 0.98507 0.94186 0.98246
其中0.98507是0类的精度,下一个是1类,最后一个是2类精度。
如果我想计算精度,现在会发生什么? 方程: 精度=(TP + TN)* 100 /(TP + TN + FP + FN) 等式还好吗?我使用常数100来获取百分比,而不是0.x或0.00xx,而是90.x等。
我想知道如何获得真阴性(TN)来计算准确性和特异性,目前正在使用Pycm库,我正在为3个类获取此值:
ACC(Accuracy) 0.98571 0.96667 0.98095
答案 0 :(得分:0)
您从哪里获得此精度函数?
acc很容易计算,将所有样本总和(矩阵中的所有num)乘以真正的pre,61、81、56 div来求和
考虑召回率和精度时,TP,TN,FP,FN是不同的数字:
精度
真阳性+假阳性=总预测阳性 立刻,您可以看到Precision在谈论模型的预测准确度超出了您的模型的精确度/准确度,其中有多少是实际的正向预测。
当误报的成本很高时,精度是确定的好方法。例如,电子邮件垃圾邮件检测。在电子邮件垃圾邮件检测中,误报是指非垃圾邮件(实际为否定)已被识别为垃圾邮件(预测的垃圾邮件)。如果垃圾邮件检测模型的准确性不高,则电子邮件用户可能会丢失重要的电子邮件。
召回
真正+假负=实际正 你去!因此,Recall实际上通过将模型标记为正(True Positive)来计算模型捕获的实际正值。运用相同的理解,我们知道当误报率较高时,召回率将是我们用来选择最佳模型的模型指标。