准确率 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