准确率(Accuracy)查准率(Precision)、召回率(Recall)、F1-score

对于最简单的二分类任务:

(此图叫混淆矩阵)

  • TP:预测为Positive并且真实值也为Positive(样本为正类且预测为正类)
  • TN:预测为Negative并且真实值也为Negative(样本为负类且预测为负类)
  • FP:预测为Positive但真实值也为Negative(样本为负类但预测为正类)
  • FN:预测为Negative但真实值也为Positive(样本为正类但预测为负类)
  • TP+FP:预测为Positive的样本总数
  • TP+FN:实际为Positive的样本总数

Accuracy(准确率)

一般准确率不会作为标准(假设我们的数据集中,有990个负样本,而只有10个正样本,模型预测这1000个样本结果负样本,此时Accuracy仍然可以有99%,而此时其实并没有学习到数据中的特征分布。)
Accuracy=TP+TN/(TP+TN+FP+FN)
 

Precision(精确率/查准率)

精确率表示的是在所有预测结果为真中的准确率:

Precision=TP/(TP+FP)

 

Recall(召回率)

所有正类中被预测为正类的比例, 衡量的是模型对实际正类的提取能力:

Recall=TP/(TP+FN)   

 

F1-score

表示的是精确率和召回率的调和平均(类似于基于二者的一个综合水平),基于召回率和精确率计算的:

F1score=2∗Precision∗Recall/(Precision+Recall)

召回率和精确率是针对某一个类别说的,比如正类别的Recall,负类别的Recall等。如果你是多分类,那么可以有分类一这个类别的Precision,类别一的Precision,类别一的Recall等。而没有类似全部数据集的Recall或Precision这种说法。 通常对于二分类,我们说正类的recall和precision。

 

多分类任务

如上所说,某一个metrics是针对具体的一个类别,在多分类任务中,把某一类别视为正,其他所有的类别视为负。

例如有一混淆矩阵(行代表真实,列代表预测):

       a     b    c d  e   f    g
a [325, 32, 9, 0, 0, 2, 236],
b [57, 750, 454, 20, 0, 11, 23],
c [0, 128, 157, 71, 0, 11, 0],
d [8, 0, 160, 112, 0, 0, 0],
e [0, 321, 39, 2, 150, 0, 0],
f [0, 145, 52, 30, 0, 189, 0],
g [48, 35, 0, 0, 0, 0, 237]

行分析(RECALL)

第一行中的[325, 32, 9, 0, 0, 2, 316],表示有325个类别a被预测为类别a,有32个类别a被预测为类别b,有9个类别a被预测为类别c,有2个类别a被预测为类别f,有236个类别a被预测为g。
所以真实的正类共有325+32+9+2+236=604,其中FN=32+9+2+236=279,TP=325。

因此可以得出此类别a下的召回率为=TP/(TP+FN) =325/604=0.538

列分析(PRECISION)

同样的由于列代表的是预测结果,所以计算精确率的时候要关注列的结果。
第一列[325, 57, 0, 8, 0, 0, 48]表示的是在预测结果中,有325个类别a被预测为类别a, 有57个类别b预测成了类别a,有8个类别d预测成了类别a,有48个类别g预测成了类别a。所以此时仍然可以得出:
TP=325,FP=57+8+48=113,TP+FP=438
因此同样可以得出类别A下的Precision=TP/(TP+FP)=325/438=0.742

以此类推可以对每一类别计算其对应的Precision和Recall。这里要理解就是为什么Precision是计算的列和,Recall计算的是行和。因为列代表的是预测结果,行代表的是真实结果。

多分类下的F1

多分类的F1 score有两种常用的计算方式,一个是Micro,一个是Macro

micro的意思就是对所有类别求出总体的TP、FN、FP,然后再计算出总体的Precison、Recall最后再利用F1=2*P*R/(P+R)来计算出F1-score。简单说就是求出每一个类别的TP,FP,FN,然后汇总求解


而macro的意思就是先对每个类别求出对应的Precision、Recall、F1这些指标,然后进行平均来求出总体的F1-score

 
posted @ 2022-08-13 00:20  半度墨水  阅读(888)  评论(0编辑  收藏  举报
Live2D