当前位置: 代码网 > it编程>前端脚本>Python > 【ROC曲线】ROC曲线易懂理解与多分类的理解

【ROC曲线】ROC曲线易懂理解与多分类的理解

2024年07月31日 Python 我要评论
ROC曲线,全称Receiver Operating Characteristic Curve(受试者特征曲线)。ROC曲线由灵敏度为纵轴,(1-特异度)为横轴绘制而成。通过绘制ROC曲线可以让读者直观地看到某指标各取值对结局指标的诊断或预测能力。其中名词解释:灵敏度(sensitivity),即敏感度,是指筛检方法能将实际有病的人正确地判定为患者的比例。特异度(specificity),是指筛检方法能将实际无病的人正确地判定为非患者的比例。

00简介

roc曲线,全称receiver operating characteristic curve(受试者特征曲线)。

roc曲线由灵敏度为纵轴,(1-特异度)为横轴绘制而成。通过绘制roc曲线可以让读者直观地看到某指标各取值对结局指标的诊断或预测能力。
在这里插入图片描述
在这里插入图片描述

其中名词解释:

灵敏度(sensitivity),即敏感度,是指筛检方法能将实际有病的人正确地判定为患者的比例。

特异度(specificity),是指筛检方法能将实际无病的人正确地判定为非患者的比例。

在建模类文章中,roc曲线是对整个模型计算出来的各样本发生某结局(或属于某类别)的概率指标进行绘制,向大家展示的是整个模型的诊断效能,故roc曲线常被用于各类诊断模型和预测模型的评价与比较,是模型预测效果的重要评价指标之一。

一般来说,对于两种诊断方法可以有成组比较法和配对比较法,成组比较法是两种诊断方法作用于不同受试者,配对比较法则是针对于同一受试者接受两种不同的诊断方法。roc曲线适用于二分类别的反映效果或结果的变量。

01 roc曲线评价指标

roc曲线使用曲线下面积(auc)的大小对模型进行评价,auc的取值范围为0.5到1之间,曲线下面积越大,越接近于1,模型的诊断或预测效果越好:auc在 0.5~0.7时,准确性较低;在0.7~0.9时,有一定准确性;auc在0.9以上时,准确性较高。auc=0.5时,说明诊断方法完全不起作用,无诊断价值。auc<0.5不符合真实情况,在实际中极少出现。

如上图所示,③为对角参考线,①、②、③三条线围成的面积为0.5,④为根据预测模型的预测结果绘制的曲线,我们平时所讲的曲线下面积即为①,②,④三条线围成的部分。
在这里插入图片描述

另外一个评价指标是约登指数(youden index),也称正确指数(最佳界值),是在假定假阴性(漏诊率)和假阳性(误诊率)的危害性有同等意义时常用的方法,其反映了真正的患者与非患者的总能力。约登指数是灵敏度与特异度的和减去1,约登指数越大说明真实性越大。同时,约登指数最大值对应的检验变量值是该方法的诊断临界值。

02 多个模型roc曲线

在有的文章中,会建立两个或两个以上的模型,图中就会出现两条或两条以上的曲线,如利用不同的指标建立了三个模型,分别为常规临床指标,某新指标a(u-pcx),新指标a(u-pcx)+常规临床指标。

本文将三个模型的roc曲线绘制在一个图中,可以清晰地展示各模型的auc面积的对比。可以看到作者不但将各曲线的auc计算出来了,还计算了各auc进行统计学比较的p值。
在这里插入图片描述

在图a的roc曲线中,模型a的auc为0.777,模型b的auc为0.761,模型c的auc值为0.868,模型a与模型c比较,p=0.019<0.05,说明模型a与模型c相比,auc的差异有统计学意义,结合两模型的auc值可知模型c的诊断效果高于模型a。
同理,模型b与模型c相比,p=0.003<0.05,结合auc值可知模型c的诊断效果高于模型b。则模型c即为三种模型中诊断价值最高的模型。在建模类文章中,若能构建多个模型进行比较和选择,是文章的亮点。

03 为什么roc曲线呈折线状?

本文采用虚拟数据尝试绘制了两个模型的roc曲线,可以看到图中的roc曲线显得“棱角锋利,方方正正”,并不像别人的文章中看起来那么平滑。
在这里插入图片描述

造成此种现象的主要原因有:

(1)模型中所包含的连续变量指标数量较少,绝大部分指标为类别较少的分类变量;

(2)绘制roc曲线所使用的样本量较少。因此在建模时要注意,模型内纳入的各指标需要将分类变量与连续变量结合起来,并注意样本量不能太小。

04 roc曲线总结
roc曲线用于研究x(检验变量)对于y(状态变量)的预测准确率情况以及确定界值点。
roc曲线是以不同界值点时的敏感度(阳性人群中,检测出阳性的概率)为纵坐标、1-特异性(阴性人群中,检测为阳性的概率)为横坐标绘制的真阳性率与假阳性率曲线。
roc曲线越接近左上角,auc值越大,预测准确率越高。
roc曲线如果越接近45度对角线,预测准确率越低。
roc曲线在临床医学诊断、心理测评、算法效度研究中都有着广泛应用。

04多分类roc曲线绘制

对于多分类问题,roc曲线的获取主要有两种方法:

假设测试样本个数为m,类别个数为n。在训练完成后,计算出每个测试样本的在各类别下的概率或置信度,得到一个[m, n]形状的矩阵p,每一行表示一个测试样本在各类别下概率值(按类别标签排序)。相应地,将每个测试样本的标签转换为类似二进制的形式,每个位置用来标记是否属于对应的类别(也按标签排序,这样才和前面对应),由此也可以获得一个[m, n]的标签矩阵l。

①方法一:每种类别下,都可以得到m个测试样本为该类别的概率(矩阵p中的列)。所以,根据概率矩阵p和标签矩阵l中对应的每一列,可以计算出各个阈值下的假正例率(fpr)和真正例率(tpr),从而绘制出一条roc曲线。这样总共可以绘制出n条roc曲线。最后对n条roc曲线取平均,即可得到最终的roc曲线。
②方法二:
首先,对于一个测试样本:1)标签只由0和1组成,1的位置表明了它的类别(可对应二分类问题中的‘’正’’),0就表示其他类别(‘’负‘’);2)要是分类器对该测试样本分类正确,则该样本标签中1对应的位置在概率矩阵p中的值是大于0对应的位置的概率值的。基于这两点,将标签矩阵l和概率矩阵p分别按行展开,转置后形成两列,这就得到了一个二分类的结果。所以,此方法经过计算后可以直接得到最终的roc曲线。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com