机器学习中的评价指标——Precision、 Recall 、AP and F1 score

  • Post author:
  • Post category:其他




Accuracy(精度)和Error Rate(错误率)

是分类模型中最常见的两种性能度量指标,既适用于二分类任务,也适用于多分类任务。

对于分类模型 f 和大小为 n测试集 D,Accuracy的定义为:





A

c

c

u

r

a

c

y

(

f

;

D

)

=

1

n

i

=

1

n

(

f

(

x

i

)

=

l

a

b

e

l

i

)

Accuracy(f;D)=\frac{1}{n}\sum_{i=1}^n(f(x_i)=label_i)






A


c


c


u


r


a


c


y


(


f


;




D


)




=



















n














1































i


=


1


















n

















(


f


(



x










i


















)




=








l


a


b


e



l










i


















)







Error Rate的定义为:





E

r

r

o

r

R

a

t

e

(

f

;

D

)

=

1

n

i

=

1

n

(

f

(

x

i

)

l

a

b

e

l

i

)

ErrorRate(f;D)=\frac{1}{n}\sum_{i=1}^n(f(x_i)\not=label_i)






E


r


r


o


r


R


a


t


e


(


f


;




D


)




=



















n














1































i


=


1


















n

















(


f


(



x










i


















)










































=








l


a


b


e



l










i


















)







两者之间存在这样的关系:





A

c

c

u

r

a

c

y

(

f

;

D

)

=

1

E

r

r

o

r

R

a

t

e

(

f

;

D

)

Accuracy(f;D)=1-ErrorRate(f;D)






A


c


c


u


r


a


c


y


(


f


;




D


)




=








1













E


r


r


o


r


R


a


t


e


(


f


;




D


)







Precision and Recall


Precision(精准度)



Recall(召回率)

,它们

仅适用于二分类问题

在这里插入图片描述

Precision的定义为:





P

r

e

c

i

s

i

o

n

=

T

P

T

P

+

F

P

Precision=\frac {TP}{TP+FP}






P


r


e


c


i


s


i


o


n




=



















T


P




+




F


P














T


P

























Recall的定义为:





R

e

c

a

l

l

=

T

P

T

P

+

F

N

Recall=\frac {TP}{TP+FN}






R


e


c


a


l


l




=



















T


P




+




F


N














T


P


























recision从预测结果角度出发,描述了二分类器预测出来的正例结果中有多少是真实正例,即该二分类器预测的正例有多少是准确的;Recall从真实结果角度出发,描述了测试集中的真实正例有多少被二分类器挑选了出来,即真实的正例有多少被该二分类器召回。

Precision和Recall通常是一对矛盾的性能度量指标。一般来说,Precision越高时,Recall往往越低。原因是,如果我们希望提高Precision,即二分类器预测的正例尽可能是真实正例,那么就要提高二分类器预测正例的门槛,例如,之前预测正例只要是概率大于等于0.5的样例我们就标注为正例,那么现在要提高到概率大于等于0.7我们才标注为正例,这样才能保证二分类器挑选出来的正例更有可能是真实正例;而这个目标恰恰与提高Recall相反,如果我们希望提高Recall,即二分类器尽可能地将真实正例挑选出来,那么势必要降低二分类器预测正例的门槛,例如之前预测正例只要概率大于等于0.5的样例我们就标注为真实正例,那么现在要降低到大于等于0.3我们就将其标注为正例,这样才能保证二分类器挑选出尽可能多的真实正例。



AP and mAP

那么有没有一种指标表征了二分类器在Precision和Recall两方面的综合性能呢?答案是肯定的。一个比较合理的指标是P-R曲线下面的面的大小,它在一定程度上表征了二分类器在Precision和Recall这两方面的综合性能。


AP

就是

Precision-recall 曲线下面的面积

,通常来说一个越好的分类器,AP值越高


mAP

是多个类别AP的平均值

在这里插入图片描述

从上面可以看出:

  • Precision和Recall往往是一对矛盾的性能度量指标;
  • 提高Precision == 提高二分类器预测正例门槛 == 使得二分类器预测的正例尽可能是真实正例;
  • 提高Recall == 降低二分类器预测正例门槛 == 使得二分类器尽可能将真实的正例挑选出来;
  • P-R曲线下面的面积表征了二分类器在Precision和Recall这两方面的综合性能;



F1 score and F1 MACRO


F1 score

Precision和Recall是一对矛盾的度量,一般来说,Precision高时,Recall值往往偏低;而Precision值低时,Recall值往往偏高。当分类置信度高时,Precision偏高;分类置信度低时,Recall偏高。为了能够综合考虑这两个指标,F-measure被提出(Precision和Recall的加权调和平均),即:





F

1

=

2

×

P

×

R

P

+

R

F1=2\times\frac {P\times R}{P+R}






F


1




=








2




×



















P




+




R














P




×




R























F1的核心思想在于,在尽可能的提高Precision和Recall的同时,也希望两者之间的差异尽可能小。F1-score适用于二分类问题,对于多分类问题,将二分类的F1-score推广,有Micro-F1和Macro-F1两种度量。


Micro-F1

统计各个类别的TP、FP、FN、TN,加和构成新的TP、FP、FN、TN,然后计算Micro-Precision和Micro-Recall,得到Micro-F1。具体的说,统计出来各个类别的混淆矩阵,然后把混淆矩阵“相加”起来,得到一个多类别的混淆矩阵,然后再计算F1score


Macro-F1

我感觉更常用的是Macro-F1。统计各个类别的TP、FP、FN、TN,分别计算各自的Precision和Recall,得到各自的F1值,然后取平均值得到Macro-F1

从上面二者计算方式上可以看出,Macro-F1平等地看待各个类别,它的值会受到稀有类别的影响;而Micro-F1则更容易受到常见类别的影响。

参考:

1.https://zhuanlan.zhihu.com/p/78204581

2.https://cloud.tencent.com/developer/article/1673601



版权声明:本文为coldLight1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。