在评价一个语义分割模型(多类别)的好坏时,经常涉及TP、FP、TN、FN、Recall、IoU、Accuracy等指标进行衡量,那么这些指标是什么意思呢?
今天有幸请到了鸭子先生、猴子客官和熊猫大大来给大家亲身示范一下。
文章目录
背景
咦!发现10只可爱的小动物,可是我们不知道是什么动物,要不用深度学习分一下类吧?
这个时候直接掏出训练好的模型
,把这些小动物丢进去,一番等待之后,我们有了以下的预测结果:
很明显,模型并没有非常完美的完成任务。但是如何评价它呢?
0 混淆矩阵
1 基本指标:TP、FP、TN、FN
对某一类别A
来讲:T = true,表示正确分类的;F = false,表示错误分类的;P = Positive,表示预测结果为A;N = Negative,表示预测结果为非A。
- TP(True Positive): 正确分成
A
的数目,即预测为A
,真值也是A
,。 - FP(False Positive): 错误分成
A
的数目,即预测为A
,真值是非A
。 - TN(True Negative): 正确分成
非A
的数目, 即预测为非A
,真值也是非A
,。 - FN(False Negative): 错误分成
非A
的数目,即预测为非A
, 真值是A
。
那么:对于上述3个动物类别而言(当多类别任务时,TN意义不大):
类别 | TP | FP | TN | FN |
---|---|---|---|---|
鸭子 | 5 | 1 | 3 | 1 |
猴子 | 1 | 1 | 7 | 1 |
熊猫 | 2 | 0 | 8 | 0 |
> | 8 | 2 | 18 | 2 |
可以看到,对每一个类别而言,TP+FP+TN+FN == 10(共10个动物)
2 准确率(总体):Accuracy
既是 Global Accuracy,Overall Accuracy,OA
解释: 所有小动物分类的准确率,总共10只小动物,其中8只被正确分类。
计算: 8 / 10 = 80.00%
3 准确率、查准率:Precision
解释: 对于类别A而言,其 Precision = 真值为A且预测为A数量
/ 预测结果中为A的数量
计算:
P
r
e
c
i
s
i
o
n
A
=
T
P
A
T
P
A
+
F
P
A
Precisio{n_A} = \frac{{T{P_A}}}{{T{P_A} + F{P_A}}}
PrecisionA=TPA+FPATPA
- 鸭子:5 / (5 + 1)= 83.33%
- 猴子:1 / (1 + 1)= 50.00%
- 熊猫:2 / (2 + 0)= 100.00%
4 召回率、查全率:Recall
解释: 对于类别A而言,其 Recall = 真值为A且预测为A数量
/ 真值中为A的数量
计算:
R
e
c
a
l
l
A
=
T
P
A
T
P
A
+
F
N
A
Recal{l_A} = \frac{{T{P_A}}}{{T{P_A} + F{N_A}}}
RecallA=TPA+FNATPA
- 鸭子:5 / 6= 83.33%
- 猴子:1 / 2= 50.00%
- 熊猫:2 / 2= 100.00%
5 F1分数
解释: 对于类别A而言,基于其 Precision 和 Recall 的数学计算
F
1
A
=
2
×
p
r
e
c
i
s
i
o
n
A
×
r
e
c
a
l
l
A
p
r
e
c
i
s
i
o
n
A
+
r
e
c
a
l
l
A
F1_A = 2 \times \frac{{precision_A \times recall_A}}{{precision_A + recall_A}}
F1A=2×precisionA+recallAprecisionA×recallA
6 平均F1分数:mF1
mF1 = 各类别F1求平均值
7 交并比:IoU

解释: 对于类别A而言,其 IoU = 预测结果和真实值的交集
/ 并集
, IoU值越接近于1,表示该类的预测结果越好
计算:
I
o
U
A
=
T
P
A
T
P
A
+
F
P
A
+
F
N
A
Io{U_A} = \frac{{T{P_A}}}{{T{P_A} + F{P_A} + F{N_A}}}
IoUA=TPA+FPA+FNATPA
- 鸭子:
真实值(6只鸭)
与预测结果(5只鸭+1只猴)
,其交集为5只,并集为7只。
计算:IoU = 5 / 7= 0.714 - 猴子:
真实值(2只猴)
与预测结果(1只鸭+1只猴)
,其交集为1只,并集为3只。
计算(猴子):IoU = 1 / 3= 0.333 - 熊猫:
真实值(2只熊)
与预测结果(2只猫)
,其交集为2只,并集为2只。
计算(熊猫):IoU = 2 / 2= 1
可见:
8 平均交并比:mIoU
含义:所有类别的IoU求和,除以类别数目
计算:(0.714 + 0.333 + 1)/ 3 = 0.682
<完>