- 1.最直观的,根据AUC这个名称,我们知道,计算出ROC曲线下面的面积,就是AUC的值。事实上,这也是在早期Machine Learning文献中常见的AUC计算方法。由于我们的测试样本是有限的。我们得到的AUC曲线必然是一个阶梯状的。因此,计算的AUC也就是这些阶梯 下面的面积之和。这样,我们先把score排序(假设score越大,此样本属于正类的概率越大),然后一边扫描就可以得到我们想要的AUC。但是,这么 做有个缺点,就是当多个测试样本的score相等的时候,我们调整一下阈值,得到的不是曲线一个阶梯往上或者往右的延展,而是斜着向上形成一个梯形。此 时,我们就需要计算这个梯形的面积。由此,我们可以看到,用这种方法计算AUC实际上是比较麻烦的。
- 2.一个关于AUC的很有趣的性质是,它和Wilcoxon-Mann-Witney Test http://en.wikipedia.org/wiki/Wilcoxon_signed-rank_test是等价的。这个等价关系的证明留在下篇帖子中给出。而Wilcoxon-Mann-Witney Test就是测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。有了这个定义,我们就得到了另外一中计 算AUC的办法:得到这个概率。我们知道,在有限样本中我们常用的得到概率的办法就是通过频率来估计之。这种估计随着样本规模的扩大而逐渐逼近真实值。这 和上面的方法中,样本数越多,计算的AUC越准确类似,也和计算积分的时候,小区间划分的越细,计算的越准确是同样的道理。具体来说就是统计一下所有的 M×N(M为正类样本的数目,N为负类样本的数目)个正负样本对中,有多少个组中的正样本的score大于负样本的score。当二元组中正负样本的 score相等的时候,按照0.5计算。然后除以MN。实现这个方法的复杂度为O(n^2)。n为样本数(即n=M+N)
- 3.第三种方法实际上和上述第二种方法是一样的,但是复杂度减小了。它也是首先对score从大到小排序,然后令最大score对应的sample 的rank为n,第二大score对应sample的rank为n-1,以此类推。然后把所有的正类样本的rank相加,再减去正类样本的score为最 小的那M个值的情况。得到的就是所有的样本中有多少对正类样本的score大于负类样本的score。然后再除以M×N。即
备注:
1.自己实现过1的面积计算方法,当样本比较大的时候(百万+),得到的值基本和2是一样的。
2.mahout里面的org.apache.mahout.classifier.evaluation用的就是3的计算方法。不知道原理的话,看起来还真是头大。原理很重要啊。。。。。。
3.关于那个为什么和Wilcoxon-Mann-Witney Test近似的理解:
ROC上的点的坐标为(FPR,TPR)
sensitivity or true positive rate (TPR)
eqv. with hit rate, recall
TPR = TP / P = TP / (TP + FN)
false positive rate (FPR)
eqv. with fall-out
FPR = FP / N = FP / (FP + TN)
感性的认识,这里TPR其实是=1的概率,FPR其实是=0的概率。ROC上的点实际上描述了=1,=0的概率大小。
一个随机的模型,随意抽一个样本,认为=1,=0的概率相等,都是0.5,这样就有了y=x的那条对角线,也就是baseline。整个事件的概率就是下面的面积=0.5
一个较好的模型,对=1的识别率比较好,=1的判断概率比=0的大,所以在y=x上方。也就是整个预测=1正确的概率>0.5
如果有时候得到了<0.5模型,不要泄气,反过来用就行了。
从概率的角度来理解AUC,也很容易看出,AUC的值和预测数据中的样本正负比例基本无关了,这也是为什么AUC比MAP,RMSE,precision,recall,F1等这些数值要客观一些的原因。
ref:
http://en.wikipedia.org/wiki/Receiver_operating_characteristic
- 大小: 6.8 KB
分享到:
相关推荐
AUC(Area Under the Curve)是评估分类模型性能的一个重要指标,特别是在二分类问题中。它基于ROC曲线(Receiver Operating Characteristic Curve),该曲线描述了真阳性率(True Positive Rate, TPR)与假阳性率...
AUC(Area Under the Curve)算法,全称为受试者工作特征曲线下的面积,是评估分类模型性能的一个重要指标,特别是在二分类问题中。在标题和描述中提到的"AUC和AUC24"可能指的是在特定场景下,如医药领域,对24小时...
在机器学习领域,模型的评估是非常关键的一环,特别是在二分类问题中,ROC曲线和AUC(Area Under the Curve)是衡量模型性能的重要指标。Keras是一个强大的深度学习框架,而scikit-learn(简称sklearn)是常用的机器...
-AUC计算方法 -AUC的Python实现方式 AUC计算方法 AUC是ROC曲线下的面积,它是机器学习用于二分类模型的评价指标,AUC反应的是模型对样本的排序能力。它的统计意义是从所有正样本随机抽取一个正样本,从所有负样本...
### KS_AUC详解 #### 一、概述 在评估机器学习模型尤其是二元分类器的性能时,**KS**(Kolmogorov-Smirnov test)与**AUC**(Area Under the Curve)是两种非常重要的度量标准。本文将详细介绍这两种度量方法的...
目的:我们采用口服葡萄糖耐量试验(OGTT)的曲线下面积(AUC)作为衡量母体高血糖严重程度的方法,并探讨了其与妊娠糖尿病和非妊娠糖尿病(GDM)妇女的围产期不良结局的关系。 研究设计和方法:这是一项回顾性队列...
在IT行业中,AUC(Area Under the Curve)通常是指ROC曲线下的面积,是衡量分类模型性能的一个重要指标。ROC曲线全称为Receiver Operating Characteristic Curve,接收者操作特性曲线,主要用于评估二分类问题的模型...
标题"auc_java_AUC_置信度_分类算法_预测_"表明我们正在讨论一个与Java编程语言相关的项目,它专注于计算分类算法的性能指标,特别是AUC(Area Under the Curve)和置信度。本文将详细阐述AUC的概念、计算方法、其在...
标题中的"AUC"指的是Area Under the Curve,这是评估二分类模型性能的一个重要指标。在医学、数据挖掘等领域,AUC通常用于衡量预测模型对正负样本的区分能力。AUC值越大,说明模型的预测能力越强。在这个场景中,...
标题"main_roc_python_AUC_PR曲线_ROC曲线_"和描述中的关键词涉及到的是使用Python语言进行模型评估时的两个关键指标:ROC曲线(Receiver Operating Characteristic Curve)和PR曲线(Precision-Recall Curve),...
AUC计算公式推导 概率论是机器学习中一个重要的分支,它的应用范围非常广泛,包括机器学习、数据挖掘、统计学等领域。在机器学习中,AUC(Area Under the ROC Curve)是一种常用的评价指标,它可以评估分类模型的...
为了实现这一目标,研究者提出了基于分布式核的在线AUC最大化算法,该算法结合了核学习方法和分布式在线学习框架,以解决大规模不均衡数据集上的分类性能评价问题。 AUC(Area Under Curve,曲线下面积),是一种...
AUC,即接收者操作特性曲线下的面积,是衡量分类器性能的一个重要指标。尤其是当面对如正例未标注(Positive-Unlabeled, PU)分类问题这类样本标签不完全的情况时,AUC的计算和优化显得尤为关键。 传统的分类方法在...
该代码是用PYTHON编写的绘制ROC曲线和计算AUC分数的,对做异常检测,故障诊断等领域的朋友很有帮助
计算AUC,画出ROC曲线,给出各种统计参数 matlab 程序
综上所述,本项目涵盖了数据预处理的核心技术,利用LightGBM算法进行建模,通过GridSearchCV进行参数调优,采用5折交叉验证评估模型性能,并通过绘制AUC图展示模型的分类能力。整个过程展示了数据挖掘的完整流程,对...
计算AUC所需模型文件,第一列为score,第二列为label,1为正,0为负
在机器学习领域,评估分类模型性能的一个重要方法是通过ROC(Receiver Operating Characteristic)曲线以及其对应的AUC(Area Under the Curve)。ROC曲线是衡量二分类模型性能的一种可视化工具,而AUC则是一个综合...
利用Python随机生成测试数据,计算混淆矩阵,绘制ROC和AUC
AUC的计算及ROC曲线的绘制, %scores为每个样本属于1类的概率,testclass分为0类和1类 %输出res为AUC面积,计算方式为矩形面积之和,sum1为ROC曲线的tpr和fpr值对