在混淆矩阵中找到真实的底片

时间:2019-06-02 00:26:38

标签: math machine-learning computer-science metrics confusion-matrix

我正在尝试在混淆矩阵中找到True负数,我已经从头开始成功计算出精度和召回率/敏感性,现在我需要计算准确性和特异性。 这是我的困惑矩阵: cm

这就是我获得TP,FN和TP的方式 cm method

计算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等。

Accuracy equation

我想知道如何获得真阴性(TN)来计算准确性和特异性,目前正在使用Pycm库,我正在为3个类获取此值:

ACC(Accuracy) 0.98571       0.96667       0.98095

1 个答案:

答案 0 :(得分:0)

您从哪里获得此精度函数?

acc很容易计算,将所有样本总和(矩阵中的所有num)乘以真正的pre,61、81、56 div来求和

考虑召回率和精度时,TP,TN,FP,FN是不同的数字:

精度

enter image description here 真阳性+假阳性=总预测阳性 enter image description here 立刻,您可以看到Precision在谈论模型的预测准确度超出了您的模型的精确度/准确度,其中有多少是实际的正向预测。

当误报的成本很高时,精度是确定的好方法。例如,电子邮件垃圾邮件检测。在电子邮件垃圾邮件检测中,误报是指非垃圾邮件(实际为否定)已被识别为垃圾邮件(预测的垃圾邮件)。如果垃圾邮件检测模型的准确性不高,则电子邮件用户可能会丢失重要的电子邮件。

召回

因此,让我们对召回应用相同的逻辑。调用率是如何计算的。 enter image description here

真正+假负=实际正 enter image description here 你去!因此,Recall实际上通过将模型标记为正(True Positive)来计算模型捕获的实际正值。运用相同的理解,我们知道当误报率较高时,召回率将是我们用来选择最佳模型的模型指标。