一、真正类、假负类、假正类与真负类
二、准确率、召回率、精准率、特异度与假正率
1. 准确率 (Accuracy)
准确率表明成功预测(预测为负或为正)的结果占总样本的百分比。
准确率 = ,
2. 召回率/查全率/灵敏度/真正率(Recall)
召回率(查全率),又叫灵敏度,真正率,表明所有原本为正的样本中被预测正确的结果的百分比。
召回率(查全率) = = 灵敏度 = 真正率
帮助记忆:所有被感染(阳性)的患者都被检测出来,召回治疗。
提升召回率是为了不漏报。(如果自身为阳性的患者没有被检测出来及时治疗,就可能会将病毒传染给更多的人,很危险。)
3. 精准率(Precision)
精准率表示在所有预测为正的样本中预测正确的有多少。
精准率 = ,
帮助记忆:检验当前检测使用的标准(能够使检测呈现阳性的标准)有多少能精准地表示被检测者的确是小阳人。
提高精准率是为了不错报。(如果检验为阳性,其实没有感染的人很多,就会造成治疗成本和心理负担增加。)
4. 特异度(Specificity)
特异度表示在所有原本为负的样本中被预测正确的有多少。
特异度 = 真负率 = ,
帮助记忆:特异性越高,说明没有感染的病人不容易被误报,检测只针对特定(specific)情况才有阳性反应,即筛选能力强,或者说针对性强。
5. 假正率(FPR)
假正率表示所有原本为负的情况中有多少是被预测错的。
假正率 = 1- 特异率 =
假正率反映了虚报响应度,如明明没被感染却被检测为阴性。
三、ROC曲线
ROC曲线反映了在不同的阈值下的真正率(预测击中响应度)和假正率(虚报响应度)。
纵轴:真正率;横轴:假正率
ROC曲线如下图所示:
ROC由无数个点组成,每个点都代表着一个分类器,表示在当前阈值下TPR与FPR的值。
可以看到,ROC曲线过(1,1)和(0,0),这两点分别代表着阈值为0和1的情况。
当阈值为0时,所有样本都不加以识别地被判断为正(一般假设高于阈值的样本为正,低于阈值的为负),因此TPR为1(TPR反映的是所有正样本被检测为正的有多少,在当前阈值下所有样本都为1,漏报的样本数FN为0,所以TPR = 1),FPR也为1(FPR反映了虚报响应度,既然所有样本,包括本来为负的那些都被标注为1,那么就不存在负的样本被预测对的情况,因此FN = 0,FPR = 1)。
当阈值为1,所有样本都不加以识别地被判断为负。因此不存在被判别对的正样本,TP = 0,TPR = 0。同样也不存在被误判为正的负样本(所有样本都被判别为负),FP = 0, FPR = 0。
如何判断ROC曲线的好快呢?可以从下面几个方面分析:
-
形状和凸度:ROC曲线应该是向左上方弯曲的,即靠近(0,1),这表示模型在保持高的真正率(TPR)的同时,尽量保持低的假正率(FPR)。曲线越靠近左上角,表示模型性能越好。
-
曲线下面积(AUC值):ROC曲线下的面积(AUC,Area Under the Curve)是评价分类器性能的重要指标之一。AUC的取值范围是0到1,值越大表示模型性能越好。AUC为1表示模型完美分类,AUC为0.5表示模型等同于随机猜测。
-
与对角线的关系:ROC曲线越远离对角线(45度直线),说明模型的性能越好。对角线上的点表示随机分类器的性能。
-
预测性能的可调性:ROC曲线上的每个点对应于分类器在不同阈值下的性能。一个好的ROC曲线应该展示出在不同阈值下模型的稳健性和预测性能。
-
业务应用背景:最终评判一条好的ROC曲线还需考虑具体业务场景。例如,某些场景对于高召回率(TPR)更为敏感,如在生命危险环境下,如火灾或自然灾害预警系统中,高TPR可以及时发现危险情况,保护生命安全。而在另一些场景中,则可能需要平衡召回率和假警报率,如欺诈检测系统来说,降低FPR尤为关键。高FPR可能会导致过多的正常交易被错误地标记为欺诈,从而影响客户体验和业务效率。