AUC、ROC、FROC简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AUC、ROC、FROC简介相关的知识,希望对你有一定的参考价值。

参考技术A

在机器学习中模型进行预测时,会得到一下几个结果:

而通过TP,FP,TN,FN这几个值又可以间接地计算得到一些能够评价我们模型好坏的指标:

接收者操作特征曲线(receiver operating characteristic curve,或者叫ROC曲线)将假阳性率(FPR/(1-specificity))作为X轴,真阳性率(TPR)作为Y轴,其中:

给定一个二元分类模型和它的阈值(通常是一个概率),就能从所有样本的真实值和预测值计算出一个坐标点(X=FPR,Y=TPR)坐标点。将同一个模型每个阈值的(FPR,TPR)坐标都画在ROC空间里,就成为特定模型的ROC曲线。

从 (0, 0) 到 (1,1) 的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。

完美的预测点是一个在左上角的点,在ROC空间坐标(0,1)点,X=0代表着没有假阳性(所有阴性均正确预测),Y=1代表没有假阴性(所有阳性均正确预测),也就是说,不管分类器输出结果是阳性或阴性,都是100%正确。一个随机的预测会得到位于从 (0, 0) 到 (1, 1) 对角线(也叫无识别率线)上的一个点;最直观的随机预测的例子就是抛硬币。

在比较不同的分类模型时,可以将每个模型的ROC曲线都画出来,比较曲线下面积(即AUC)做为模型优劣的指标。

ROC曲线下方的面积(Area under the Curve of ROC (AUC ROC)),其意义是:

FROC (Free-response ROC) 曲线常在图像识别任务中作为效果评估指标。

经典的ROC方法不能解决对一幅图像上多个异常进行评价的实际问题,70年代提出了无限制ROC的概念(free-response ROC;FROC)。FROC允许对每幅图像上的任意异常进行评价。

FROC曲线与之前的ROC只是横坐标的不同。横坐标是误报率(测试中所有不是实际结节预测成结节的个数/测试CT个数),纵坐标是召回率(测试所有CT数据中实际是结节的检测出来个数/测试所有CT数据中实际是结节个数)。

具体举个简单的例子:我们的测试集就两个ct序列:

第一个其中真结节2个,检测出的结节自信度列表[0.99,0.8,0.7,0.5,0.4,...](已经从大到小排列过了),其中真结节是0.99和0.5对应的结节。

第二个其中真结节1个,检测出的结节自信度列表[0.9,0.8,0.7,0.6,0.5,...]其中真结节0.8对应的结节.

假设你把自信度阈值设置为0.90(这个值在计算时一般有一个等比列表),那么这时检测到了一个真结节,召回率是(1+0)/(2+1)=1/3,而误报率是(0+1)/(2)=1/2,(0+1)代表所有CT序列中误报结节数,(2)代表CT序列的个数。这可以画出FROC中的点(1/2,1/3)。

然后,你再把自信度阈值设置为0.80,那么这时检测到的还是二个真结节,召回率是(1+1)/(2+1)=2/3,而误报率是(1+1)/(2)=1,这可以画出FROC中的点(1,2/3)。

以此类推当你把自信度阈值设置为0.5时,那么这时检测到的就是三个真结节,召回率是3/3=1,而误报率是(6)/(2)=3,这可以画出FROC中的点(3,1)。

这样就能画出一条FROC曲线来了。

参考:
维基百科:ROC曲线
关于肺结节检测相关的FROC曲线和目标检测中Precision-Recall曲线,ROC曲线,mAP,AP,APs,APm,APl,AP0.5等的理解
如何理解机器学习和统计中的AUC?
AUC:直观理解AUC为何会对正负样本数分布不均匀情况鲁棒

以上是关于AUC、ROC、FROC简介的主要内容,如果未能解决你的问题,请参考以下文章

机器学习-AUC-ROC-python

什么是ROC曲线?为什么要使用ROC?以及 AUC的计算

快速上手逻辑回归模型?读这篇就够了(Python机器学习)

AUC与ROC

评分='roc_auc' 的 cross_val_score 和 roc_auc_score 有啥区别?

ROC和AUC介绍以及如何计算AUC