准确率能让我们对分类模型正确判断的频率有一个总体概念,但在处理类别分布不均或不同类型错误带来的影响差异很大时,它并不能反映全貌。我们需要能提供更具体信息的指标。其中一个指标是精确率。
想象一下你构建了一个邮件垃圾邮件过滤器。准确率会告诉你被正确分类的邮件(垃圾邮件被判为垃圾邮件,非垃圾邮件被判为非垃圾邮件)的总百分比。但你可能特别关心这个问题:在所有被过滤器归入垃圾邮件文件夹的邮件中,有多少是真正的垃圾邮件? 你肯定不希望你的过滤器将重要邮件错误地标记为垃圾邮件。这种对阳性预测正确性的关注,正是精确率所衡量的。
精确率衡量什么
精确率回答了这个问题:在所有被模型预测为阳性的样本中,实际为阳性的比例是多少?
它侧重于模型对阳性类别的预测。你可以将其视为衡量预测准确度或质量的指标。高精确率分数意味着当你的模型预测某个样本属于阳性类别时,这个预测很有可能是正确的。
精确率公式
为了计算精确率,我们使用混淆矩阵中的值,具体来说是真阳性 (TPTPTP) 和假阳性 (FPFPFP):
真阳性 (TPTPTP): 被正确预测为阳性的阳性样本数量。
假阳性 (FPFPFP): 被错误预测为阳性的阴性样本数量(也称为“I类错误”)。
精确率的公式是:
精确率=TPTP+FP精确率 = \frac{TP}{TP + FP}精确率=TP+FPTP
请注意分母 (TP+FPTP + FPTP+FP) 代表了你的模型预测为阳性的样本总数。精确率是正确预测为阳性的样本数 (TPTPTP) 与被预测为阳性的总数之间的比率。
用于计算精确率的组成部分。它仅侧重于模型分类为阳性的样本 (TP+FPTP + FPTP+FP )。
示例:垃圾邮件过滤器计算
让我们回到我们的垃圾邮件过滤器示例。假设对1000封邮件进行过滤器测试后,我们得到以下混淆矩阵:
预测:垃圾邮件
预测:非垃圾邮件
实际总数
实际:垃圾邮件
TP = 95
FN = 5
100
实际:非垃圾邮件
FP = 10
TN = 890
900
预测总数
105
895
1000
为了计算精确率,我们需要 TPTPTP 和 FPFPFP:
TP=95TP = 95TP=95 (过滤器正确识别了95封垃圾邮件)
FP=10FP = 10FP=10 (过滤器错误地将10封非垃圾邮件标记为垃圾邮件)
现在,应用公式:
精确率=TPTP+FP=9595+10=95105≈0.905精确率 = \frac{TP}{TP + FP} = \frac{95}{95 + 10} = \frac{95}{105} \approx 0.905精确率=TP+FPTP=95+1095=10595≈0.905
因此,我们垃圾邮件过滤器的精确率约为0.905,即90.5%。这意味着当过滤器将一封邮件标记为垃圾邮件时,它有大约90.5%的可能是正确的。
高精确率何时重要?
当假阳性 (FPFPFP) 的代价很高时,高精确率就显得特别有用。请看以下情况:
垃圾邮件过滤: 如前所述,您希望避免将正常邮件标记为垃圾邮件 (FPFPFP)。如果重要工作邮件或个人消息被错误地分类为垃圾邮件,可能会带来麻烦。高精确率能够确保被标记为垃圾邮件的邮件确实是垃圾邮件。
医疗诊断(确认严重病情): 如果阳性预测会导致昂贵、侵入性或高风险的治疗,您会希望非常确定预测是正确的。假阳性(将健康患者诊断为患有该病)可能会导致不必要的伤害和费用。
搜索引擎结果: 当您搜索特定内容时,会希望顶部结果高度相关。不相关的结果出现在顶部(在相关性方面属于假阳性)会导致糟糕的用户体验。
欺诈检测(警报): 尽管发现欺诈行为很重要,但生成过多虚假警报 (FPFPFP) 可能会使调查人员不堪重负,并惹恼那些合法交易被标记的客户。
在这些情况下,我们希望最小化假阳性,这意味着最大化精确率。
精确率并非全部
精确率为我们提供了关于阳性预测可靠性的有价值信息,但它没有考虑假阴性 (FNFNFN),即模型错误地分类为阴性的阳性样本。在我们的垃圾邮件示例中,FN=5FN = 5FN=5,这意味着有5封真正的垃圾邮件漏过过滤器进入了收件箱。如果最小化这些遗漏的阳性样本很重要,我们需要查看另一个指标:召回率。我们将在下一节中讨论召回率。