一、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=0∑nyi
以上各点可以连起来构成 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}
b−a1∫abf(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=0∑nAPi
在实际应用 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=0∑SPi
五、参考文档
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
暂无评论