1、ROC的分析步骤: ①ROC曲线绘制。依据专业知识,对疾病组和参照组测定结果进行分析,确定测定值的上下限、组距以及截断点(cut-off point),按选择的组距间隔列出累积频数分布表,分别计算出所有截断点的敏感性、特异性和假阳性率
在分类任务中,我们在训练完模型后,需要使用测试样本对模型进行性能测试。针对分类问题,测试结果最终划分为4类:真正类,真负类,假正类,假负类。
一些术语:
正类(阳性 ) (P, positive)
负类(阴性) (N, Negative)
以下为四类预测结果的定义:
(1)如果正样本被预测成为正类,就是真正类(True Postive TP)
(2)如果负样本被预测成为负类,就是真负类(True Negative TN)
(3)如果负样本被预测成为正类,就是假正类(False Postive FP)
(4)如果正样本被预测成为负类,就是假负类(False Negative FN)
把四种结果组合在一个表格中,就形成了混淆矩阵(confusion_matrix)
在sklearn中自带混淆矩阵的计算方法,把真实值和预测值直接代入即可计算出结果。纵轴为预测结果,横轴为真实结果。
真正率(召回率,灵敏度),True Positive Rate:TPR = TP/ (TP+FN)
假正率, False Postive Rate:FPR = FP/(TN+FP)
其中 FPR + TNR = 1,在约登指数中会应用到。
由混淆矩阵延伸出的指标再延伸出的指标
1、PPV和TPR可以计算F1
2、TPR和TNR可以计算约登指数
YoudenIndex = TPR + TNR - 1
1、背景
ROC的全称是“受试者 *** 作特征”(Receiver Operating Characteristic)曲线,又称为感受性曲线(sensitivity curve),首先是由二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军载具(飞机、船舰),也就是信号检测理论。之后很快就被引入了心理学来进行信号的知觉检测。此后被引入机器学习领域,用来评判分类、检测结果的好坏。因此,ROC曲线是非常重要和常见的统计分析方法。 以假正性率(False positive rate)为横轴,真正率(True positive rate)为纵轴所组成的坐标图,测试样本在不同的判断标准(阈值)得出的不同结果画出的曲线。
2 “ROC 曲线”思路:
根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值(TPR、FPR),分别以它们为横、纵坐标作图。
3、怎么画ROC曲线
如果我们使用二分类模型(例如逻辑回归)来判断一个人是否是我们的目标客户,这时模型会得到这个人是目标客户的得分(或者叫概率)。例如有一个20人的样本集,这20人我们已经知道其分类特征,其中10人是我们的目标客户(p),另外10人不是(n),而我们的模型也给每个人打了分数(score),分数越高则是目标客户的概率越大。我们按照得分倒序排序如下:
把每一个人的得分作为阀值,都计算出相应的TPR和FPR,就能画成一个图。
ROC曲线下的面积,介于01和1之间,作为数值可以直观的评价分类器的好坏,值越大越好。
测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。
· AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
· 05 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
· AUC = 05,跟随机猜测一样,模型没有预测价值。
· AUC < 05,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
约登指数(Youden index):最佳界值的确定指数,该值取最大值处就是最佳的界限,即最佳阈值。
约登指数 = 敏感度+特异度-1,其中 特异度=1-假正率;故在ROC曲线中,约登指数 = 敏感度 - 假正率。
约登指数的几何表示,最大化ROC曲线上的点到x轴的垂直距离。就是保证TPR高的同时FPR要尽量的小。
AUC(Area Under Curve)被定义为ROC曲线下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在05和1之间。
其中,ROC曲线全称为受试者工作特征曲线,它是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(敏感性)为纵坐标,假阳性率(1-特异性)为横坐标绘制的曲线。
AUC就是衡量学习器优劣的一种性能指标。从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得。
扩展资料:
它们都是对同一信号刺激的反应,只不过是在几种不同的判定标准下所得的结果而已。接受者 *** 作特性曲线就是以虚惊概率为横轴,击中概率为纵轴所组成的坐标图,和被试在特定刺激条件下由于采用不同的判断标准得出的不同结果画出的曲线。
如果将ROC曲线的坐标轴变为Z分数坐标,我们将看到ROC曲线从曲线形态变为直线形态。这种坐标变换可以用来验证信号检测论一个重要假设,即方差齐性假设。
参考资料来源:百度百科-AUC
更多可看
>
放在具体领域来理解上述两个指标。如在医学诊断中,判断有病的样本。那么尽量把有病的揪出来是主要任务,也就是第一个指标TPR,要越高越好。而把没病的样本误诊为有病的,也就是第二个指标FPR,要越低越好。不难发现,这两个指标之间是相互制约的。如果某个医生对于有病的症状比较敏感,稍微的小症状都判断为有病,那么他的第一个指标应该会很高,但是第二个指标也就相应地变高。最极端的情况下,他把所有的样本都看做有病,那么第一个指标达到1,第二个指标也为1。
在上述癌症检测中(正反例极度不平衡的情况下),
有时我们还会见到sensitivity和specificity两个概念:
也就是说想要sensitivity高一点相当于要True Positive Rate高一点,要specificity高一点相当于False Positive Rate低一点/。为了权衡recall和precision,对于评判二分类器的优劣,可以使用ROC(Receiver Operating Characteristic)曲线以及AUC(Area Under roc Curve)指标。
ROC曲线的几个概念:
以医生诊断为例,我们可以看出:
上图中一个阈值,得到一个点。现在我们需要一个独立于阈值的评价指标来衡量这个医生的医术如何,也就是 遍历所有的阈值 ,得到ROC曲线。还是一开始的那幅图,假设如下就是某个医生的诊断统计图,直线代表阈值。我们遍历所有的阈值,能够在ROC平面上得到如下的ROC曲线。
以一个简单的模拟数据来计算下ROC曲线每个点的值
Python可以用sklearn,R可以用ROCR包或者pROC包,这里以ROCR包来检验下上述计算结果:
xvalues对应FPR,yvalues对应TPR, alphavalues对应预测打分cutoff,结果跟上面完全一致,然后简单做个ROC图。
AUC值就相当于ROC曲线的所覆盖的面积,可以从ROC曲线看出AUC值越大,其分类效果越好。
理解ROC和AUC
ROC曲线与AUC值
有诊断指标,诊断结果,SPSS可直接做出ROC曲线,不需要自己计算1-spe和sen的。 不同版本的ROC曲线的位置不一样,找找分析或作图两个菜单可以找到ROC曲线这个命令的。
ROC曲线最靠近左上方那个点的临界值为最佳临界值。一般统计软件会提供一个所有临界值的表,每一个临界值对应不同的灵敏度和特异度,再计算约登指数最大点对应的临界值,即最终结果。
扩展资料ROC曲线的特性
(1)β值的改变独立于d’的变化,考察β值变化对P(y/SN)和P(y/N)的影响时发现:当β接近0时,击中概率几乎为0,即信号全当成噪音接受;当β接近无穷大时,虚惊概率几乎为0,即噪音全当成信号接受;而当β从接近0向无穷大渐变的过程中,将形成一条完整地ROC曲线。
曲线在某一处达到最佳的标准βOPT 。
(2)ROC曲线的曲率反应敏感性指标d’:对角线,代表P(y/SN)=P(y/N),即被试者的辨别力d’为0,ROC曲线离这条线愈远,表示被试者辨别力愈强,d’的值当然就愈大。由上可知,d’的变化使ROC曲线形成一个曲线簇,而β的变化体现·在这一曲线簇中的某一条曲线上不同点的变化。
此外,如果将ROC曲线的坐标轴变为Z分数坐标,我们将看到ROC曲线从曲线形态变为直线形态。这种坐标变换可以用来验证信号检测论一个重要假设,即方差齐性假设。
(3)补充特性:
对于一条特定的ROC曲线来说,d’是恒定的,所以也叫等感受性曲线。
对角线代表辨别力等于0的一条线,也叫纯机遇线。
ROC曲线离纯机遇线越远,表明被试的辨别力越强。
辨别力不同的被试的ROC曲线也不同。
参考资料来源:百度百科-接受者 *** 作特征曲线
ROC曲线主要用于研究X对于Y的预测准确率情况,在医学领域使用非常广泛。
Logistic回归主要是研究X对Y的影响关系,其中Y为定类数据,Logistic回归可分为二分类logistic、无序多分类logistic、有序logistic。
包括其他分析方法都可以使用网页在线版本SPSS就是SPSSAU进行分析,里面有智能文字分析可以使用。
在机器学习中模型进行预测时,会得到一下几个结果:
而通过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个,检测出的结节自信度列表[099,08,07,05,04,](已经从大到小排列过了),其中真结节是099和05对应的结节。
第二个其中真结节1个,检测出的结节自信度列表[09,08,07,06,05,]其中真结节08对应的结节
假设你把自信度阈值设置为090(这个值在计算时一般有一个等比列表),那么这时检测到了一个真结节,召回率是(1+0)/(2+1)=1/3,而误报率是(0+1)/(2)=1/2,(0+1)代表所有CT序列中误报结节数,(2)代表CT序列的个数。这可以画出FROC中的点(1/2,1/3)。
然后,你再把自信度阈值设置为080,那么这时检测到的还是二个真结节,召回率是(1+1)/(2+1)=2/3,而误报率是(1+1)/(2)=1,这可以画出FROC中的点(1,2/3)。
以此类推当你把自信度阈值设置为05时,那么这时检测到的就是三个真结节,召回率是3/3=1,而误报率是(6)/(2)=3,这可以画出FROC中的点(3,1)。
这样就能画出一条FROC曲线来了。
参考:
维基百科:ROC曲线
关于肺结节检测相关的FROC曲线和目标检测中Precision-Recall曲线,ROC曲线,mAP,AP,APs,APm,APl,AP05等的理解
如何理解机器学习和统计中的AUC?
AUC:直观理解AUC为何会对正负样本数分布不均匀情况鲁棒
以上就是关于如何做检验变量的ROC分析全部的内容,包括:如何做检验变量的ROC分析、评估指标ROC与AUC、药时曲线(AUC)是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)