模型评估:Accuracy、Precision、Recall、F1、ROC曲线、AUC、PR曲线-Accuracy & Precision & Recall & F

时间:2024-10-27 21:31:22

准确率 Accuracy

A c c u r a c y = T T + T F A L L Accuracy = \frac{TT + TF}{ALL} Accuracy=ALLTT+TF

1.分类器到底分对了多少?
在这里插入图片描述

精确率 Precision

2.返回的图片中正确的有多少?
在这里插入图片描述

召回率 / 查全率 Recall

3.有多少张应该返回的图片没有找到?
这个问题可以通过Recall值来体现(因为Recall值 = 1 - 有多少张应该返回的图片没有找到 / 应该返回的图片总数,该公式中除了"有多少张应该返回的图片没有找到"的值是变量以外,其它均为常数)

召回率代表“本应返回的照片中,实际返回了多少”

Recall为返回的图片中汉堡的图片的数目 / 测试集样本中所有汉堡的图片的数目。
在这里插入图片描述

F1值

在这里插入图片描述
由上图可以看出(召回率100%的情况下精确率非常低):不能一味地要求召回率高,也不能一味地要求精确率高。否则会导致另一个值相对较低。因此此时我们就提出了一个新的值——F1值
在这里插入图片描述

总结

二分类:
在这里插入图片描述

多分类

在这里插入图片描述

  • 准确率 A c c u r a c y = 所有的绿色求和 A L L Accuracy = \frac{所有的绿色求和}{ALL} Accuracy=ALL所有的绿色求和
  • 精确率往往单独看每一类,比如C6, P r e c i s i o n = C 6 的这个绿色 C 6 整一行样本总数 Precision = \frac{C6的这个绿色}{C6整一行样本总数} Precision=C6整一行样本总数C6的这个绿色
  • 召回率同上, R e c a l l = C 6 的这个绿色 C 6 整一列样本总数 Recall = \frac{C6的这个绿色}{C6整一列样本总数} Recall=C6整一列样本总数C6的这个绿色
  • F1值是精确率和召回率的调和平均

如上,可以求出每一类的Precision、Recall、F1
如果想知道整体的Precision、Recall、F1,可以直接求平均或者求加权平均
实际上刚才求的是宏观macro的Precision、Recall、F1,相应地,我们也可以求微观micro的Precision、Recall、F1:
针对每一类,都有TP、FP、TN、FN。若要求整个模型的TP,可以把每一类的TP都加起来。这样就得到了针对整个模型的TP、FP、TN、FN。再套入公式,就可以得到微观micro的Precision、Recall、F1
注意如果模型针对一个输入只返回一个label,也就是说一个输入只能对应一个类别的话,这样求出的微观micro的Precision、Recall、F1都会是相等的,且都等于Accuracy