1 / 31
文档名称:

2020年ROC曲线及AUC计算.doc

格式:doc   大小:326KB   页数:31页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2020年ROC曲线及AUC计算.doc

上传人:书犹药也 2020/2/22 文件大小:326 KB

下载得到文件列表

2020年ROC曲线及AUC计算.doc

相关文档

文档介绍

文档介绍:ROC曲线及AUC计算(转帖)(-03-2310:04:31)转载▼ref让我们从头说起,首先AUC是一种用来度量分类模型好坏的一个标准。这样的标准其实有很多,例如:大约前在machinelearning文献中一统天下的标准:分类精度;在信息检索(IR)领域中常用的recall和precision,等等。其实,度量反应了人们对”好”的分类结果的追求,同一时期的不同的度量反映了人们对什么是”好”这个最根本问题的不同认识,而不同时期流行的度量则反映了人们认识事物的深度的变化。近年来,随着machinelearning的相关技术从实验室走向实际应用,一些实际的问题对度量标准提出了新的需求。特别的,现实中样本在不同类别上的不均衡分布(classdistributionimbalanceproblem)。uracy这样的传统的度量标准不能恰当的反应分类器的performance。举个例子:测试样本中有A类样本90个,B类样本10个。分类器C1把所有的测试样本都分成了A类,分类器C2把A类的90个样本分对了70个,B类的10个样本分对了5个。则C1的分类精度为90%,C2的分类精度为75%。但是,显然C2更有用些。另外,在一些分类问题中犯不同的错误代价是不同的(costsensitivelearning)。这样,。为了解决上述问题,人们从医疗分析领域引入了一种新的分类模型performance评判方法——ROC分析。ROC分析本身就是一个很丰富的内容,有兴趣的读者能够自行Google。由于我自己对ROC分析的内容了解还不深刻,所以这里只做些简单的概念性的介绍。ROC的全名叫做ReceiverOperatingCharacteristic,其主要分析工具是一个画在二维平面上的曲线——urve。平面的横坐标是falsepositiverate(FPR),纵坐标是truepositiverate(TPR)。对某个分类器而言,我们能够根据其在测试样本上的表现得到一个TPR和FPR点对。这样,此分类器就能够映射成ROC平面上的一个点。调整这个分类器分类时候使用的阈值,我们就能够得到一个经过(0,0),(1,1)的曲线,这就是此分类器的ROC曲线。一般情况下,这个曲线都应该处于(0,0)和(1,1)连线的上方。因为(0,0)和(1,1)连线形成的ROC曲线实际上代表的是一个随机分类器。如果很不幸,你得到一个位于此直线下方的分类器的话,一个直观的补救办法就是把所有的预测结果反向,即:分类器输出结果为正类,则最终分类的结果为负类,反之,则为正类。虽然,urve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。urve(AUC)就出现了。顾名思义,urve下方的那部分面积的大小。通常,,较大的AUC代表了较好的performance。好了,到此为止,所有的前续介绍部分结束,下面进入本篇帖子的主题:AUC的计算方法总结。 最直观的,根据AUC这个名称,我们知道,计算出ROC曲线下面的面积,就是AUC的值。事实上,这也是在早期MachineLearning文献中常见的AUC计算方法。由于我们的测试样本是有限的。我们得到的AUC曲线必然是一个阶梯状的。因此,计算的AUC也就是这些阶梯下面的面积之和。这样,我们先把score排序(假设score越大,此样本属于正类的概率越大),然后一边扫描就能够得到我们想要的AUC。但是,这么做有个缺点,就是当多个测试样本的score相等的时候,我们调整一下阈值,得到的不是曲线一个阶梯往上或者往右的延展,而是斜着向上形成一个梯形。此时,我们就需要计算这个梯形的面积。由此,我们能够看到,用这种方法计算AUC实际上是比较麻烦的。 一个关于AUC的很有趣的性质是,它和Wilcoxon-Mann-WitneyTest是等价的。这个等价关系的证明留在下篇帖子中给出。而Wilcoxon-Mann-WitneyTest就是测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。有了这个定义,我们就得到了另外一中计算AUC的办法:得到这个概率。我们知道,在有限样本中我们常用的得到概率的办法就是通过频率来估计之。这种估计随着样本规模的扩大而逐渐逼近真实值。这和上面的方法中,样本数越多,计算的AUC越准确类似,也和计算积分的时候,小区间划分的越细,计算的越准确是同样的道理。具体来说就是统计一下所有的M×N(M为正类样本的数目,N为负类样本的数目)个正负样本对中,有多少个组中的正样本的score大于负样本的score。当二元组中正负样本的score相等的时候,。然后除以MN。实现这个方法的复杂度为O(n^2)。n为样本数(即n=M+N) 第三种方法实际上和上述第二种