准确率、精确率、召回率、F1 分数、灵敏度、特异度

以一个疾病诊断系统为例,这些评估术语可以用混淆矩阵中的比率来描述。

混淆矩阵

四个单元格分别是:

  • TP:真正例,实际患病且被预测为患病的人。
  • FP:假正例,健康但被预测为患病的人。
  • FN:假负例,实际患病但被预测为健康的人。
  • TN:真负例,健康且被预测为健康的人。

准确率

准确率是在所有人中被正确预测的比例。

准确率公式

用纯文本表示:

Accuracy = (TP + TN) / (TP + TN + FP + FN)

准确率很容易理解,但在类别不平衡时可能会产生误导。例如,如果只有 1% 的人患有某种疾病,一个把所有人都预测为健康的模型仍然可以达到 99% 的准确率,却找不到任何真正的病例。

精确率

精确率是在所有被预测为患病的人中,真正患病者所占的比例。

精确率公式

用纯文本表示:

Precision = TP / (TP + FP)

高精确率意味着当系统预测患病时,这个预测通常是正确的。当假正例的代价很高时,精确率尤其重要。

召回率、灵敏度和真正例率

召回率,也称为灵敏度真正例率,衡量模型找出了多少实际为正的样本。

召回率公式

用纯文本表示:

Recall = Sensitivity = True positive rate = TP / (TP + FN)

高召回率意味着系统漏掉的实际患病者更少。当假负例很危险时,召回率尤其重要。

特异度

特异度,也称为真负例率,衡量有多少健康人被正确识别为健康。

特异度公式

用纯文本表示:

Specificity = True negative rate = TN / (TN + FP)

高特异度意味着系统会避免把健康人错误地标记为患病。

F1 分数

F1 分数把精确率和召回率合并为一个指标。它是精确率和召回率的调和平均数。

F1 分数公式

用纯文本表示:

F1 Score = 1 / ((1 / 2) * ((1 / Recall) + (1 / Precision)))
         = TP / (TP + (1 / 2) * (FP + FN))

等价地:

F1 Score = 2 * Precision * Recall / (Precision + Recall)

当假正例和假负例都重要时,尤其是在类别不平衡的情况下,F1 分数很有用。它不直接包含真负例,因此应结合混淆矩阵以及每种错误的实际代价一起解读。

Leave a Reply