理解机器学习算法的常用评价指标
问题导入
假如重庆交通大学准备招标采购一套宿舍行人目标图像识别系统,选择2家公司的产品来测试。测试手段是:从学生宿舍区一段监控视频中识别男生的人数。
实验结果如下:
- 算法1(产品1)的检测结果:检测出“男生”人数82人,其中78人为男生,4人其实是女生;
2)算法2(产品2)的检测结果:检测出“男生”人数88人,其中80人为男生,8人其实是女生;
3)经过人工检测,视频中实际准确的总人数为100人,其中男生80人,女生20人。
请问算法1和算法2的“查准率”“查全率”“F1-score”等分别是多少?你认为哪个更优秀?
查准率与查全率
查准率R | 查全率P | F1-score(F1) | |
---|---|---|---|
定义 | 预测为正例的实例中真实正例的比例 | 真实正例被预测为正例的比例 | 度量一个模型的好坏,综合考虑查准率和查全率。 |
表示 | R = T P ( T P + F N ) R=\frac{TP}{(TP+FN)} R=(TP+FN)TP | P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP | F 1 = 2 R P R + P = 2 T P 样 例 总 数 + T P − T N F1=\frac{2RP}{R+P}=\frac{2TP}{样例总数+TP-TN} F1=R+P2RP=样例总数+TP−TN2TP |
联系 | 一般情况下,查准率高,查全率就会低;反之,查全率高,查准率就低 |
参数解释:
TP:(true positive) 预测正确且实际也正确的数量
FP:(false postive) 预测正确但实际错误的数量
FN:(false negative) 预测错误但实际正确的数量
TN:(true negative) 预测错误实际也错误的数量
样本总数=TP+FP+FN+TN;
问题解答
算法一的混淆矩阵
真实情况 \ 预测结果 | 男生 | 女生 |
---|---|---|
男生 | 78 | 2 |
女生 | 4 | 16 |
查准率:
P
=
78
78
+
2
=
0.975
P=\frac{78}{78+2}=0.975
P=78+278=0.975
查全率:
R
=
78
78
+
4
=
0.9512
R=\frac{78}{78+4}=0.9512
R=78+478=0.9512
F1-score:
F
1
=
2
∗
78
100
+
78
−
16
=
0.963
F1=\frac{2*78}{100+78-16}=0.963
F1=100+78−162∗78=0.963
算法一的混淆矩阵
真实情况 \ 预测结果 | 男生 | 女生 |
---|---|---|
男生 | 80 | 0 |
女生 | 8 | 12 |
查准率:
P
=
80
80
=
1
P=\frac{80}{80}=1
P=8080=1
查全率:
R
=
80
80
+
8
=
0.91
R=\frac{80}{80+8}=0.91
R=80+880=0.91
F1-score:
F
1
=
2
∗
80
100
+
80
−
12
=
0.952
F1=\frac{2*80}{100+80-12}=0.952
F1=100+80−122∗80=0.952
总结
算法1的查准率小于算法2;算法1的查全率大于算法2,算法1的F1-score大于算法2的F1-score。F1-score取值更偏向与取值较小的那个指标,F1-score过高可能造成过拟合
故算法2好
参考文档
F1-score是越大越好吗?
机器学习常用评价指标——查准率,查全率,F1-score