Classification: Accuracy(准确率)
参考
[1] https://developers.google.com/machine-learning/crash-course/classification/accuracy
准确率是一个用于评估分类模型的指标。通俗来讲,准确率是指我们的模型预测正确的样本占所有参与预测的样本的比例。
对于二分类问题来说,根据准确率的定义可得:
A
c
c
u
r
a
c
y
=
T
P
+
T
N
T
P
+
T
N
+
F
P
+
F
N
Accuracy = \frac {TP + TN}{TP+TN+FP+FN}
Accuracy=TP+TN+FP+FNTP+TN
让我们来试着计算一下以下模型的准确率,该模型将 100 个肿瘤分为恶性 (正类别)或良性(负类别):
Accuracy
=
T
P
+
T
N
T
P
+
T
N
+
F
P
+
F
N
=
1
+
90
1
+
90
+
1
+
8
=
0.91
\text { Accuracy }=\frac{T P+T N}{T P+T N+F P+F N}=\frac{1+90}{1+90+1+8}=0.91
Accuracy =TP+TN+FP+FNTP+TN=1+90+1+81+90=0.91
准确率为 0.91,即 91%(总共 100 个样本中有 91 个预测正确)。这表示我们的肿瘤分类器在识别恶性肿瘤方面表现得非常出色,对吧?
实际上,只要我们仔细分析一下正类别和负类别,就可以更好地了解我们模型的效果。
在 100 个肿瘤样本中,91 个为良性(90 个 TN 和 1 个 FP),9 个为恶性(1 个 TP 和 8 个 FN)。
在 91 个良性肿瘤中,该模型将 90 个正确识别为良性。这很好。不过,在 9 个恶性肿瘤中,该模型仅将 1 个正确识别为恶性。这是多么可怕的结果!9 个恶性肿瘤中有 8 个未被诊断出来!
虽然 91% 的准确率可能乍一看还不错,但如果另一个肿瘤分类器模型总是预测良性,那么这个模型使用我们的样本进行预测也会实现相同的准确率(100 个中有 91 个预测正确)。换言之,我们的模型与那些没有预测能力来区分恶性肿瘤和良性肿瘤的模型差不多。
当您使用a class-imbalanced data set(比如正类别标签和负类别标签的数量之间存在明显差异)时,单单准确率一项并不能反映全面情况。
在下一部分中,我们将介绍两个能够更好地评估class-imbalanced problems的指标:精确率和召回率。
class-imbalanced problems: 即待分类的样本集合中正负样本比例差别很大。
总结
当分类问题中的正负样本差别比例很大时,准确率并不是一个很好的模型性能评估指标。