模型评价指标

一、TP、TN、FP、FN

P(Positive)\ N(Negative):模型预测的结果
T(True)\F(False):模型预测的结果是正确还是错误
TP:真正例,预测为正样本,预测正确(实际为正样本,模型判断也为正样本)
TN:真负例,预测为负样本,预测正确(实际为负样本,模型判断也为负样本)
FP:假正例,预测为正样本,预测错误(实际为负样本,模型判断为正样本)
FN:假负例,预测为负样本,预测错误(实际为正样本,模型预测为负样本)
不难看出,总样本中正样本的数目为 TP+FN,负样本的数目为 FP+TN,模型认为的正样本数目为 TP+FP,模型认为的负样本数目为 TN+FN

二、准确率、精准率、召回率

准确率(Accuracy):模型判断正确的样本数占总样本数的比例

A

C

C

=

T

P

+

T

N

T

P

+

T

N

+

F

P

+

F

N

ACC =\frac{TP+TN}{TP+TN+FP+FN}

ACC=TP+TN+FP+FNTP+TN

精准率\查准率(Precision):模型认为的正样本中实际为正样本的比例
精准率越高表示模型检测出的目标中大部分确实是目标,目标检测的准不准

P

r

e

c

i

s

i

o

n

=

T

P

T

P

+

F

P

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

Precision=TP+FPTP

召回率\查全率(Recall):模型判断出正确的样本数占所有正样本数目的比例
召回率越高表示能检测出的目标越多,目标检测的越全

R

e

c

a

l

l

=

T

P

T

P

+

F

N

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

Recall=TP+FNTP

不能简单通过准确率衡量样本性能,在样本极度不平衡的情况下,准确率并不能衡量样本的性能,比如有 90%的正样本,10%的负样本,在这种情况下,只需要将所有样本预测为正样本就可以获得 90%的准确率

所以我们需要精准率和召回率

精准率与召回率计算的都是预测正确的正样本(所要检测的目标)所占的比例,不同的是,精准率的分母是模型认为的正样本(可能有预测错误),召回率的分母是所有样本中的正样本

三、P-R 图、F-Score

我们希望精准率和召回率越高越好,从下面 PR 曲线可以看出这是不可能的

Figure 1. P-R 图

我们为模型设置一个阙值,大于阙值则将数据分类为正样本,小于阙值则分类为负样本,这样当有 n 个阙值,在每一个阙值下都能获取到对应的精准率和召回率(P,R)。将 n 个(P,R)按照阙值从高到底排列,并且连起来就得到了该模型的 P-R 图。
在靠近原点的地方阙值最高,此时查准率最高,随着阙值降低,查全率(精准率)升高,精准率(查全率)降低
根据模型的用途不同,我们可以选择保证精准率还是召回率
当有多个模型时,可以选择在同一精准率(召回率)下召回率(精准率)最高的模型
大多时候,我们需要同时保证精准率和召回率,F1 分数是一个综合精准率和召回率后得到的指标,F1 分数最高的地方,就是 P-R 图中的平衡点

F1 Score:精准率和召回率的调和平均数

F

1

S

c

o

r

e

=

2

1

R

e

c

a

l

l

+

1

P

r

e

c

i

s

i

o

n

=

2

×

R

e

c

a

l

l

×

P

r

e

c

i

s

i

o

n

R

e

c

a

l

l

+

P

r

e

c

i

s

i

o

n

F1 Score=\frac{2}{\frac{1}{Recall}+\frac{1}{Precision}}=\frac{2\times Recall\times Precision}{Recall+Precision}

F1Score=Recall1+Precision12=Recall+Precision2×Recall×Precision
当精准率=召回率时,即平衡点,F1 分数最高

很明显,上面的公式用来计算某一个类的 F1 分数,对于多分类任务,我们需要考虑各个类的 F1 分数,于是产生了两种策略:Micro-F1、Macro-F1

Micro-F1:将所有类别的 TP、TN、FP、FN 加在一起,构成新的 TP、TN、FP、FN,计算 Micro-Precision 和 Micro-Recall 得到 Micro-F1
Macro-F1:单独计算每个类别的 F1,求平均数
Macro-F1 比 Micro-F1 更加常用

四、AP、mAP

AP(Average Percision):召回率从 0 到 1 对应的精确率的平均值
例如,Recall=0.1 时,Precision=y1;Recall=0.2 时,Precision=y2;… ;Recall=1.0 时,Precision=yn,则

A

P

=

1

n

i

=

0

n

y

i

AP=\frac{1}{n}\sum^n_{i=0}{y_i}

AP=n1i=0nyi
以上各点可以连起来构成 P-R 曲线,则利用以下公式计算 AP

A

P

=

0

1

P

(

R

)

d

R

AP=\int^1_0{P(R)}{dR}

AP=01P(R)dR
公式

1

b

a

a

b

f

(

x

)

d

x

\frac{1}{b-a}\int^b_a{f(x)}{dx}

ba1abf(x)dx可以用来计算 f(x)在[a,b]内的平均值

实际的 P-R 曲线时波动的,并不像上面展示的那样平滑,在实际情况下会对 P-R 曲线进行处理来计算 AP,不同的数据集,不同的比赛有不同的调整策略,这里不详细讲了

像 F1 分数一样,AP 适应于二分类,当有多个类时,需要考虑各个类的 AP,于是有 mAP

mAP(mean average precision):各个类 AP 的平均值

m

A

P

=

1

n

i

=

0

n

A

P

i

mAP=\frac{1}{n}\sum^n_{i=0}{AP_i}

mAP=n1i=0nAPi

在实际应用 map 时,经常看到mAP@.5和mAP@.5:.95,mAP@.5表时在 IoU 的阙值为 0.5,mAP@.5:.95 表示 IoU 的阙值为 0.5-0.95,每 0.05 计算一次 mAP,然后取平均值
需要注意的是 mAP(mean average precision)不同于 MAP(macro average precision),前者用于衡量目标检测模型,后者用于衡量分类模型
MAP(macro average precision):各个类精准率的平均值

M

A

P

=

1

S

i

=

0

S

P

i

MAP=\frac{1}{S}\sum^S_{i=0}{P_i}

MAP=S1i=0SPi

五、参考文档

FP,FN,TP,TN 与精确率(Precision),召回率(Recall),准确率(Accuracy)
机器学习–PR 曲线, ROC 曲线
如何理解与应用调和平均数?
【评价指标】详解 F1-score 与多分类 F1
白话 mAP
ap 和 map 的计算,mAP@.5 mAP@.5:.95 的含义

版权声明:本文为CSDN博主「Bulbbbb」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41708275/article/details/122328639

Bulbbbb

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

OTA:目标检测中的最优传输分配

1 引言该论文主要是关于目标检测中的标签分配问题,作者创新性地从全局的角度重新审视了该问题,并提出将标签分配问题看成是一个最优运输问题。要知道最优传输问题是当前最优化理论和GAN理论研究领域中的一个很火的研究课题。论