AUC的计算

AUC指的是Area under roc curve,是roc下的面积

roc指的receiver operating characteristic curve,接受者操作曲线,具体的指的什么呢,是一个二维的曲线,横坐标是假正率,计算公式为:预测为正的负样本/负样本数量。纵坐标是真正率,计算公式为:预测为正的正样本/正样本的数量。

很多地方都有介绍,我们这里直接说下AUC的计算方法吧

1. 直接计算曲线下的面积,这个不介绍了,一般不会使用

2. 正样本M个,负样本N个,做交叉,总共会产生M*N个样本对,统计一下在这些样本对中有多少正样本的score大于负样本的score,例如有K对,那么AUC的值就是K/(M*N)

举例说明一下:

样本:y=1,y = 1, y=1, y = -1, y = -1, y = -1

模型1的预测:0.8,0.7,0.3,0.5,0.6,0.9

模型2的预测:0.1, 0.8, 0.9, 0.5, 0.85, 0.2

模型1:正样本score大于负样的对包括(y1,y4)(y1,y5)(y2,y4)(y2,y5)。所以AUC值为4/9

模型2:正样本score大于负样本的对包括(y2,y4)(y2,y6)(y3,y4)(y3,y5)(y3,y6)。所以AUC的值为5/9

所以模型2要比模型1好

这种算法的复杂度为O(n^2)其中n=(M+N)也就是样本的数量

3. 方法3跟方法2是一样的,只不过做了一些处理减小了复杂度,首先按照score进行排序,得分最大的为n,第二大的为n-1,依次类推,最小一个即为1,那么AUC的计算方法为:AUC=((正样本的排序之和)-m*(m+1)/2)/(M*N)。

看公式有点抽象,用上面的例子解释一下

模型1:首先对预测的score进行排序,排序后的样本为:负(6),正(5),正(4),负(3),负(2),正(1)

AUC的值为:((5+4+1)- 3 *(3+1)/2)/(3*3) = 4/9。可以看到跟方法二的计算结果一致,我们看一下这个计算公式,首先分子上后面的部分M*(M+1)/2。是不是很熟悉,小学就知道,上底加下底括号起来除以2,既是求梯形的面积公式,也是求连续值的公式,例如1+2+3+4。在这里指的就是所有的正样本的得分都小于所有的负样本的得分的情况下,计算出来的值。前半部分指的是实际的情况下正样本的排序。应该比较好理解了吧

AUC的计算,布布扣,bubuko.com

时间: 2024-12-28 05:50:20

AUC的计算的相关文章

机器学习:基于sklearn的AUC的计算原理

AUC原理 一.AUC起源 AUC是一种用来度量分类模型好坏的一个标准.这样的标准其实有很多,例如:大约10年前在 machine learning文献中一统天下的标准:分类精度:在信息检索(IR)领域中常用的recall和precision,等等.其实,度量反应了人们对” 好”的分类结果的追求,同一时期的不同的度量反映了人们对什么是”好”这个最根本问题的不同认识,而不同时期流行的度量则反映了人们认识事物的深度的变 化.近年来,随着machine learning的相关技术从实验室走向实际应用,

使用R进行分类时,ROC的绘制和AUC的计算

在之前的这篇日志中,我简单介绍了使用R进行Logistic Regression时,Recall,Precision,TPR,FPR等等的计算,但是如果依照这种方法绘制ROC曲线(关于ROC和AUC的概念,网上有很多介绍,例如:http://beader.me/2013/12/15/auc-roc/ )就太过于麻烦了,需要手动调整分类阈值.其实R也提供了最基本的ROC曲线绘制的工具包(Package),结合这篇日志,我也同时介绍一下R Package的安装和学习方法: 在这里:http://ww

Gradient Boost Decision Tree(&Treelink)

http://www.cnblogs.com/joneswood/archive/2012/03/04/2379615.html 1.      什么是Treelink Treelink是阿里集团内部的叫法,其学术上的名称是GBDT(Gradient Boosting Decision Tree,梯度提升决策树).GBDT是“模型组合+决策树”相关算法的两个基本形式中的一个,另外一个是随机森林(Random Forest),相较于GBDT要简单一些. 1.1    决策树 应用最广的分类算法之一

R语言与分类算法的绩效评估(转)

关于分类算法我们之前也讨论过了KNN.决策树.naivebayes.SVM.ANN.logistic回归.关于这么多的分类算法,我们自然需要考虑谁的表现更加的优秀. 既然要对分类算法进行评价,那么我们自然得有评价依据.到目前为止,我们讨论分类的有效性都是基于分类成功率来说的,但是这个指标科学吗?我们不妨考虑这么一个事实:一个样本集合里有95个正例,5个反例,分类器C1利用似然的思想将所有的实例均分成正例,分类成功率为95%:分类器C2成功分出了80个正例,3个反例,分类成功率仅83%.我们可以说

机器学习面试--算法评价指标

机器学习分为三个阶段: 第一阶段:学习模型.采用学习算法,通过对训练集进行归纳学习得到分类模型: 第二阶段:测试模型.将已经学习得到的分类模型用于测试集,对测试集中未知类别的实例进行分类. 第三阶段:性能评估.显然,通过测试集产生的分类未必是最佳的,这就导致对测试集的分类可能产生错误.而人们希望尽量得到信呢个最佳的分类模型,就是的对分类器性能评价至关重要.只有通过优秀的评价标准才能选择出性能更好的分类器. 不同机器学习算法的评价指标: 回归评估 回归是对连续的实数值进行预测,即输出值是连续的实数

python机器学习-sklearn挖掘乳腺癌细胞(五)

python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share  模型验证 分类器好坏验证,模型建立好后,不是万事大吉,需要进行crossvalidation, AUC,GINi,KS,Ga

Binary classification - 聊聊评价指标的那些事儿【实战篇】

分类问题就像披着羊皮的狼,看起来天真无害用起来天雷滚滚.比如在建模前你思考过下面的问题么? 你的分类模型输出的概率只是用来做样本间的相对排序,还是概率本身? 你的训练数据本身分布如何是否存在Imbalanced Sample? 要是您都想到了拜拜??.要是有1各您感兴趣的问题,那就接着往下看吧.本来是想先回顾一下各个分类问题中可能用到的metric,但是又觉得读的人可能觉得无聊,就分成了两章.要是有的指标断片了就来这里回忆一下: 回忆篇 问题1 Rank or Probability? 分类问题

ROC,AUC,Precision,Recall,F1的介绍与计算(转)

1. 基本概念 1.1 ROC与AUC ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve),AUC(Area Under Curve)是ROC曲线下的面积.在计算ROC曲线之前,首先要了解一些基本概念.在二元分类模型的预测结果有四种,以判断人是否有病为例: 真阳性(TP)

python计算auc指标

本文和大家分享的主要是python计算auc指标相关内容,一起来看看吧,希望对大家学习python有所帮助. 1.安装scikit-learn 1.1Scikit-learn 依赖 · Python (>= 2.6 or >= 3.3), · NumPy (>= 1.6.1), · SciPy (>= 0.9). 分别查看上述三个依赖的版本, python -V        结果:Python 2.7.3 python -c 'import scipy; print scipy.