前言
在论文阅读的过程中,经常遇到使用特异性(specificity)和灵敏度(sensitivity)这两个指标来描述分类器的性能。对这两个指标表示的含有一些模糊,这里查阅了相关资料后记录一下。
基础知识
考虑一个二分类的情况,类别为1和0,我们将1和0分别作为正类(positive)和负类(negative),则实际分类的结果有4种,表格如下:
从这个表格中可以引出一些其它的评价指标:
-
ACC:classification accuracy,描述分类器的分类准确率
计算公式为:ACC=(TP+TN)/(TP+FP+FN+TN) -
BER:balanced error rate
计算公式为:BER=1/2*(FPR+FN/(FN+TP)) -
TPR:true positive rate,描述识别出的所有正例占所有正例的比例
计算公式为:TPR=TP/ (TP+ FN) -
FPR:false positive rate,描述将负例识别为正例的情况占所有负例的比例
计算公式为:FPR= FP / (FP + TN) -
TNR:true negative rate,描述识别出的负例占所有负例的比例
计算公式为:TNR= TN / (FP + TN) -
PPV:Positive predictive value
计算公式为:PPV=TP / (TP + FP) -
NPV:Negative predictive value
计算公式:NPV=TN / (FN + TN)
其中TPR即为敏感度(sensitivity),TNR即为特异度(specificity)。
维基百科的附图:
实例解释
下面以医学中糖尿病人的筛查为例对敏感度和特异度进行解释。在这个例子中,我们只将病人血糖水平作为判断是否患有糖尿病的指标。下图为正常人和糖尿病患者血糖水平的统计图:
我们发现两个人群中有重叠的部分,这个时候判定标准定的不同,得到的结果就会不同。
如果我们把标准定在最左边的虚线上,则低于这条线的为正常人,高于这条线的包含了两类人:正常人和糖尿病患者。这种时候就是灵敏度最高的时候,即实际有病而被诊断出患病的概率,没有放过一个患病的人。如果将标准定在最右边的虚线上,则是特异度最高的时候,即实际没病而被诊断为正常的概率,没有冤枉一个没病的人。
终上所述,敏感度高=漏诊率低,特异度高=误诊率低。
理想情况下我们希望敏感度和特异度都很高,然而实际上我们一般在敏感度和特异度中寻找一个平衡点,这个过程可以用ROC(Receiver Operating Characteristic)曲线来表示:
即图中V34点,具有较高的灵敏度和特异度。
参考资料
哪个大神能解释一下敏感性和特异性?学了好几年了一直不是很清楚-知乎
ROC曲线-百度百科
Positive and negative predictive values
注:文中的图片均来自参考资料。