首先明白四个名词:
- 真正例 True Positive
- 假正例 False Positive
- 真负例 True Negative
- 假负例 False Negative
TP: 被预测为真,实际为真的样本
FP: 被预测为真,实际为假的样本
TN: 被预测为假,实际为假的样本
FN: 被预测为假,实际为真的样本
准确率 (Accuracy) 计算公式:(TP + TN) / (TP + FP + TN + FN)
意义:被正确预测的样本占总样本的比例
缺陷:尽管准确率是一个很直观的指标,但在数据不平衡的情况下,它可能会产生误导。例如,在一个99%的样本属于同一类的数据集中,一个总是预测这个主要类的简单模型也会有99%的准确率,但这并不意味着模型是好的。
精准度 (Precision) 计算公式:TP / (TP + FP)
意义:在所有预测为真的样本中,实际为真的样本所占的比例
精确度是评估模型预测正类样本质量的一个好方法。
召回率 (Recall) 计算公式:TP / (TP + FN)
意义:在所有实际为真的样本中,被我们预测为真的样本的比例
召回率是评估模型找出正类样本能力的一个好方法。
F1分数 (F1score) 计算公式:2 x (Precision x Recall) / (Precision + Recall)
意义:F1分数是精确度和召回率的调和平均数,它试图在精确度和召回率之间达到平衡
在精确度和召回率同等重要的情况下,F1分数是一个有用的指标。它特别适用于不平衡数据集。
精确度(Precision)和召回率(Recall)通常被认为是相互对抗的,这种现象在统计学和机器学习中被称为精确度-召回率权衡(Precision-Recall Trade-off)。
在很多情况下,提高精确度会降低召回率,反之亦然。这是因为:
提高精确度意味着模型在预测正类时更加谨慎,只有当模型非常确信一个样本是正类时才会这样预测。这可能会导致模型错过一些实际上是正类的样本(增加假负例),因此召回率下降。
提高召回率意味着模型努力识别更多的正类样本,包括那些模型不太确定的样本。这样做虽然能找回更多的真正例,但同时也可能增加假正例(即错误地将负类样本预测为正类),导致精确度下降。
在实际应用中,选择侧重于精确度还是召回率取决于具体问题的需求:
- 如果假正例的成本很高(例如,在医疗诊断中,错误地诊断一个健康的人为病人可能会导致不必要的焦虑和进一步的检查),那么可能更倾向于提高精确度。
- 如果假负例的成本很高(例如,在欺诈检测中,没能检测到一个真正的欺诈行为可能导致巨大的财务损失),那么可能更倾向于提高召回率。