真正例率是什么?正样本中被正确找出来的比例
真正例率(True Positive Rate,TPR)是评价二分类模型的一个指标,表示在所有实际为正例的样本中,被模型正确地判为正例的比例。它与召回率、查全率、灵敏度是同一个概念,只是在不同的领域中习惯使用不同的名称。
如何计算
在二分类问题中,模型的判断结果可以分为四种:真正例,实际是正例、判断也是正例;假反例,实际是正例、却被判为反例,也就是漏报;假正例,实际是反例、却被判为正例,也就是误报;真反例,实际是反例、判断也是反例。真正例率等于真正例的数量,除以真正例与假反例的数量之和,也就是除以所有实际为正例的样本数量。
举个例子:一种疾病筛查方法检测了 100 名真正的患者,其中 90 人被检测出阳性,10 人被漏掉了,那么它的真正例率就是 90%。真正例率越高,说明模型越能把正例找全,漏掉的越少。
不同领域的叫法
在医学中,它通常叫“灵敏度”,衡量一种检测方法能够发现多少真正的患者;在信息检索和机器学习中,常叫“召回率”或“查全率”,衡量所有相关的结果中有多少被找了出来;在讨论 ROC 曲线时,常叫“真正例率”。与它对应的是真反例率,也叫特异度,衡量所有实际为反例的样本中被正确判为反例的比例。
真正例率与假正例率
只追求真正例率是很容易的:如果把所有的样本都判为正例,就一个正例也不会漏掉,真正例率达到 100%,但这时所有的反例也都被误判了。因此,真正例率总是需要与另一个指标一起考虑。假正例率表示所有实际为反例的样本中,被错误地判为正例的比例,衡量误报的程度。大多数模型会给出一个分数,再与阈值比较得到判断:降低阈值,真正例率上升,但假正例率也随之上升;提高阈值则相反。以假正例率为横轴、真正例率为纵轴,画出不同阈值下的点,就得到了 ROC 曲线;曲线越靠近左上角,说明模型能在误报很少的情况下找出大部分的正例;曲线下的面积 AUC 是衡量模型整体区分能力的常用指标。真正例率还常常与查准率一起使用:查准率衡量判为正例的样本中有多少是真正例,两者组合成 P-R 曲线和 F1 分数。
什么时候特别看重它
在漏掉正例的代价很高的场景中,真正例率尤为重要:癌症等重大疾病的筛查,漏诊可能耽误治疗;金融反欺诈和网络安全,漏掉一次真正的攻击可能造成巨大的损失;产品的安全缺陷检测;在法律和合规审查中,需要尽量找全所有相关的文件。在这些场景中,通常会降低判定的阈值,宁可多一些误报,再通过人工复核或进一步的检查来排除,也要尽量保证高的真正例率。