【深度学习】Precision 和 Recall 评价指标理解

时间:2022-12-07 14:50:21

1. 四种情况

Precision精确率, Recall召回率,是二分类问题常用的评价指标。混淆矩阵如下:

预测结果为阳性 Positive 预测结果为假阳性 Negative
预测结果是真实的 True TP TN
预测结果是虚假的 False FP FN

通常关注的类为正类,其他类为负类。(以猫狗二分类为例,现在关注狗的precision和recall)

TP 正类预测为正类(预测出狗的图片实际标注也是狗)
FN 正类预测为负类(预测出猫的图片实际标注是狗)
FP 负类预测为正类(预测出狗的图片实际标注是猫)
TN 负类预测为负类(预测出猫的图片实际标注是猫)

T, F 代表的是图片对应的标签

P, N 代表的是图片预测出来的结果

2. Precision

精确率计算公式:
\[ P=\frac{TP}{TP+FP} \]
理解:

TP+FP: 也就是全体Positive, 也就是预测的图片中是正类的图片的数目

TP: 也就是正类也被预测为正类的图片的个数

总之:预测正确的图片个数占总的正类预测个数的比例(从预测结果角度看,有多少预测是准确的)

3. Recall

召回率计算公式:
\[ R=\frac{TP}{TP+FN} \]
理解:

TP+FN: 也就是全体完全满足图片标注的图片的个数

TP:正类被预测为正类的图片个数

总之:确定了正类被预测为正类图片占所有标注图片的个数(从标注角度看,有多少被召回)

4. 二分类举例

还是以猫狗二分类为例,测试集一共有20张狗, 20张猫的图片的标注图片(狗为正例),模型预测出其中有16张图片是狗,其中14张图片标注确实为狗,剩下两张图片标注为猫。

Positive Negative All
True TP: 14 TN: 6 20
False FP: 2 FN:
All 16

所以可以进行计算了
\[ precision = \frac{TP}{TP+FP} = \frac{14}{14+2} \]

\[ recall = \frac{TP}{TP+FN} = \frac{14}{40} \]

5. 多分类举例

该例引用自:https://www.itcodemonkey.com/article/9521.html

Class1 Actual_Class1 Actual_Class2 Actual_Class3
Predicted_Class1 30 20 10
Predicted_Class2 50 60 10
Predicted_Class3 20 20 80

比如我们对class2进行计算:

class2-TP:标签为class2, 预测为class2 = 60

class2-TN: 标签为class2, 预测不是class2 = 20+20 = 40

class2-FP: 标签不为class2, 预测为class2 = 50 + 10 = 60

class2-FN: 标签不为class2, 预测也不是class2 = 30+10+20+80 = 140

6. 其他指标

F1 值是precision和recall调和平均值:
\[ \frac{2}{F_1} = \frac{1}{P} + \frac{1}{R} \]

\[ F_1 = \frac{2TP}{2TP+FP+FN} \]