查看原文
其他

你想知道的“ROC曲线”

2018-01-22 小昌 宏基因组

本文转自“态昌基因”,已获授权。

Science这篇文章关注了非洲马拉维儿童 营养不良与肠道菌群及肠粘膜免疫功能之间的关系,发现以特定细菌为靶点的lgA对于儿童营养不良的诊断及治疗具有特殊意义。

下面这幅图展示了检测致病性大肠杆菌的两种模型的比较,紫色代表以肠杆菌的相对丰度为指标的检测方法,橙色代表以肠杆菌为靶点的lgA的指标的检测方法,由图中可以看出,lgA index的检测模型更好

WHAT? 这是为啥嘞,而且这是什么图......

请往下看~~



在微生态研究中,寻找生物标志物建立模型时,你是否在纠结于特异度与灵敏度的取舍。怎样综合评价不同模型的准确性呢?下面由小昌上台表演~~


划重点

1. 初识ROC曲线

2. 深入了解ROC

3. AUC值作为评价标准

4. 最优零界点咋么找

5. ROC的好基友——PR曲线

  

 初识ROC曲线


1. ROC的前世今生

ROC的全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,首先是由二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军载具(飞机、船舰),也就是信号检测理论。之后很快就被引入了心理学来进行信号的知觉检测。此后被引入机器学习领域,用来评判分类、检测结果的好坏。因此,ROC曲线是非常重要和常见的统计分析方法。


2. “ROC 曲线”思路:

根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值(TPR、FPR),分别以它们为横、纵坐标作图。


3. AUC (Area under Curve):

ROC曲线下的面积,介于0.1和1之间,作为数值可以直观的评价分类器的好坏,值越大越好。


4. “混淆矩阵”:

对于二分类问题,可将样本根据其真实类别与学习器预测类别的组合划分为TP(true positive)、FP(false positive)、TN(true negative)、FN(false negative)四种情况,TP+FP+TN+FN=样本总数。

http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/

(1) 真阳性(True Positive,TP):检测不健康,且实际不健康;正确肯定的匹配数目;

(2) 假阳性(False Positive,FP):检测不健康,但实际健康;误报,给出的匹配是不正确的;

(3) 真阴性(True Negative,TN):检测健康,且实际健康;正确拒绝的非匹配数目;

(4) 假阴性(False Negative,FN):检测健康,但实际不健康;漏报,没有正确找到的匹配的数目。


 深入了解ROC曲线


ROC曲线其实是多个混淆矩阵的结果组合。



 以疾病检测为例,这是一个有监督的二分类模型,模型对每个样本的预测结果为一个概率值,我们需要从中选取一个阈值来判断健康与否。


定好一个阈值之后,超过此阈值定义为不健康,低于此阈值定义为健康,就可以得出混淆矩阵。


而如果在上述模型中我们没有定好阈值,而是将模型预测结果从高到低排序,将每次概率值依次作为阈值,那么就可以得到多个混淆矩阵。对于每个混淆矩阵,我们计算两个指标TPR和FPR,以FPR为x轴,TPR为y轴画图,就得到了ROC曲线。

一般来说,如果ROC是光滑的,那么基本可以判断没有太大的overfitting,AUC面积越大一般认为模型越好


 AUC值作为评价标准


1. AUC (Area Under Curve)

被定义为ROC曲线下的面积,取值范围一般在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。


2.AUC 的计算方法

非参数法:(两种方法实际证明是一致的)

(1)梯形法则:早期由于测试样本有限,我们得到的AUC曲线呈阶梯状。曲线上的每个点向X轴做垂线,得到若干梯形,这些梯形面积之和也就是AUC 。

(2)Mann-Whitney统计量: 统计正负样本对中,有多少个组中的正样本的概率大于负样本的概率。这种估计随着样本规模的扩大而逐渐逼近真实值。

参数法

(3)主要适用于二项分布的数据,即正反样本分布符合正态分布,可以通过均值和方差来计算。


3.从AUC判断分类器(预测模型)优劣的标准

· AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。

· 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。

· AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。

· AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

三种AUC值示例:

总结:AUC值越大的分类器,正确率越高


4. 不同模型AUC的比较

总的来说,AUC值越大,模型的分类效果越好,疾病检测越准确;不过两个模型AUC值相等并不代表模型效果相同,例子如下:

下图中有三条ROC曲线,A模型比B和C都要好

下面两幅图中两条ROC曲线相交于一点,AUC值几乎一样:当需要高Sensitivity时,模型A比B好;当需要高Speciticity时,模型B比A好;



 最优零界点咋么找


说人话,就是保证TPR高的同时FPR要尽量的小,建立max(TPR+(1-FPR))的模型。同样有三种方法:找到离(0,1)最近的点、Youden index和最小损耗(cost criterion)

 1. 如果说Sn 和Sp 分别对应于sensitivity和specificity,所有ROC曲线上的点到ROC的距离可以表示为,让d最小就好啦;

2. Youden index : 最大化ROC曲线上的点到x轴的垂直距离(最大化TPR(Sn)和FPR(1-Sp)的差异);

3. 考虑人力物力和财力(第三种方法很少用,因为很难评估)


ROC的好基友——PR曲线


1.介绍

PR曲线和ROC曲线类似,ROC曲线是FPR和TPR的点连成的线,PR曲线是准确率和召回率的点连成的线,如下图所示。

我们又知道,Recall=TPR,因此PRC的横坐标为ROC的纵坐标。


2. ROC曲线与PR曲线的取舍

相对来讲ROC曲线会稳定很多,在正负样本量都足够的情况下,ROC曲线足够反映模型的判断能力。因此,对于同一模型,PRC和ROC曲线都可以说明一定的问题,而且二者有一定的相关性,如果想评测模型效果,也可以把两条曲线都画出来综合评价。对于有监督二分类问题,在正负样本都足够的情况下,可以直接用ROC曲线、AUC、KS评价模型效果。在确定阈值过程中,可以根据Precision、Recall或者F1来评价模型的分类效果。对于多分类问题,可以对每一类分别计算Precision、Recall和F1,综合作为模型评价指标。

在上图中,(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大


参考资料

https://en.wikipedia.org/wiki/Receiver_operating_characteristic

https://www.zhihu.com/question/30643044

http://www.it610.com/article/4964856.htm

http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/

http://www.medicalbiostatistics.com/


猜你喜欢

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外100+ PI,1000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存