AUC与ROC

ROC(Receiver Operating Characteristic)

主要分析工具是一个画在二维平面上的曲线——ROC curve。

平面的横坐标是 false positive rate(FPR),纵坐标是 true positive rate(TPR)。

相关概念

True Positive Rate(真正率 , TPR)或灵敏度(sensitivity)

TPR=正样本预测结果数正样本实际数

TPR=TPTP+FN

False Positive Rate (假正率, FPR)

FPR=被预测为正的负样本结果数负样本实际数

FPR=FPFP+TN

False Negative Rate(假负率 , FNR)

FNR=被预测为负的正样本结果数正样本实际数

FNR=FNTP+FN

True Negative Rate(真负率 , TNR)或特指度(specificity)

TNR=负样本预测结果数负样本实际数

TNR=TNTN+FP

提出ROC的原因

由分类器决定的统计的图像是固定的,但是由于阈值不同,我们可以得到不同的,TPR,FPR,TNR,FNR值。因此我们需要找到一个独立于阈值,只和分类器有关的衡量分类器的标准。还有是在样本正负样本不平衡的情况下更好的评估分类器的性能。

AUC (Area Under roc Curve)

AUC是一种用来度量分类模型好坏的一个标准,Auc作为数值可以直观的评价分类器的好坏,值越大越好。

几何意义:

ROC 图像下方的面积

物理意义:

取出一个正样本与一个负样本,正样本的Score大于负样本的Score的概率,Score表示置信度

计算AUC

方法一:直接计算下方的面积,比较麻烦,需要计算若干个梯形的面积的和。

方法二:计算正样本score大于负样本的score的概率,时间复杂度为O(N?M)

方法三:将所有的样本按照score升序排序,依次用rank表示他们,如最大score的样本,rank=n(n=N+M),其次为n-1。那么对于正样本中rank最大的样本,rank_max,有M-1个其他正样本比他score小,那么就有(rank_max-1)-(M-1)个负样本比他score小。其次为(rank_second-1)-(M-2)。

AUC=Σ正样本rank?M?(M+1)2N?M

Code

#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
from sklearn.metrics import roc_auc_score

def calc_auc(df):
    Score = sorted(df.values, key=lambda a_entry: a_entry[1])
    N = 0;M = 0
    for item in Score:
        if item[0] == 0:
            N += 1
        else:
            M += 1
    Sigma = 0
    for i in range(N+M-1,-1,-1):
        if Score[i][0] == 1:
            Sigma += i+1
    return float((Sigma-M*(M+1)/2.0)/(N*M))

def main():
    df = pd.read_csv(‘./data.csv‘,header=None)
    Ports = list(enumerate(np.unique(df[0])))
    Ports_dict ={label : i for i,label in Ports}
    df[0]=df[0].map(lambda x : Ports_dict[x]).astype(int)
    print roc_auc_score(df[0].values,df[1].values)
    print calc_auc(df)

if __name__ == ‘__main__‘:
    main()

data

p,0.9
p,0.8
p,0.6
n,0.7
p,0.54
p,0.55
n,0.53
n,0.52
p,0.51
n,0.505
p,0.4
n,0.39
p,0.38
n,0.37
n,0.36
n,0.35
p,0.34
n,0.33
p,0.3
n,0.1

参考资料

时间: 2024-10-05 19:35:12

AUC与ROC的相关文章

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)

ROC和AUC介绍以及如何计算AUC

ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,对两者的简单介绍见这里.这篇博文简单介绍ROC和AUC的特点,以及更为深入地,讨论如何作出ROC曲线图以及计算AUC. ROC曲线 需要提前说明的是,我们这里只讨论二值分类器.对于分类器,或者说分类算法,评价指标主要有precision,recall,F-score1,以及我们今天要讨论的ROC和AUC.下图是一个ROC曲线的示例2. 正

【转】ROC和AUC介绍以及如何计算AUC

转自:https://www.douban.com/note/284051363/ ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,对两者的简单介绍见[这里](http://bubblexc.com/y2011/148/).这篇博文简单介绍ROC和AUC的特点,以及更为深入地,讨论如何作出ROC曲线图以及计算AUC. # ROC曲线需要提前说明的是,我们这里只讨论二值分类器.对于分类器

机器学习:ACC、ROC和AUC

? ? 引言 ? ? 很多时候我们都用到ROC和AUC来评判一个二值分类器的优劣,其实AUC跟ROC息息相关,AUC就是ROC曲线下部分的面积,所以需要首先知道什么是ROC,ROC怎么得来的.然后我们要知道一般分类器会有个准确率ACC,那么既然有了ACC,为什么还要有ROC呢,ACC和ROC的区别又在哪儿,这是我喜欢的一种既生瑜何生亮问题. ? ? 最后又简单说明了一下有了ROC之后,为什么还要有AUC呢 ? ? ROC简介 ? ? ROC曲线的横坐标为false positive rate(F

ROC和AUC介绍以及如何计算AUC ---好!!!!

from:https://www.douban.com/note/284051363/?type=like 原帖发表在我的博客:http://alexkong.net/2013/06/introduction-to-auc-and-roc/ ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,对两者的简单介绍见[这里](http://bubblexc.com/y2011/148/).这篇博

ROC曲线与AUC值

本文根据以下文章整理而成,链接: (1)http://blog.csdn.net/ice110956/article/details/20288239 (2)http://blog.csdn.net/chjjunking/article/details/5933105 1.概述 AUC(Area Under roc Curve)是一种用来度量分类模型好坏的一个标准.这样的标准其实有很多,例如:大约10年前在machine learning文献中一统天下的标准:分类精度:在信息检索(IR)领域中常

准确率,召回率,F值,ROC,AUC

度量表 1.准确率 (presion) p=TPTP+FP 理解为你预测对的正例数占你预测正例总量的比率,假设实际有90个正例,10个负例,你预测80(75+,5-)个正例,20(15+,5-)个负例 实际上你的准确率为75/80=0.9375,但这个评价指标有什么问题呢,想想就知道,这里你并没有用到实际的正例数,那么仅仅靠你猜中的正例作为分母,你并不知道实际的正例有多少,你看召回率为75/90=0.83,就是说你的猜测局限于预测范围 2.召回率 (recall)r=TPTP+FN 理解为你预测

ROC与AUC学习

全文转自:https://www.cnblogs.com/gatherstars/p/6084696.html#commentform 这篇真的讲的清楚明白!要多复习!加深记忆! 1.概述 AUC(Area Under roc Curve)是一种用来度量分类模型好坏的一个标准.这样的标准其实有很多,例如:大约10年前在machine learning文献中一统天下的标准:分类精度:在信息检索(IR)领域中常用的recall和precision,等等.其实,度量反应了人们对"好"的分类结

查全率(Recall),查准率(Precision),灵敏性(Sensitivity),特异性(Specificity),F1,PR曲线,ROC,AUC的应用场景

之前介绍了这么多分类模型的性能评价指标(<分类模型的性能评价指标(Classification Model Performance Evaluation Metric)>),那么到底应该选择哪些指标来评估自己的模型呢?答案是应根据应用场景进行选择. 查全率(Recall):recall是相对真实的情况而言的:假设测试集里面有100个正类,如果模型预测出其中40个是正类,那模型的recall就是40%.查全率也称为召回率,等价于灵敏性(Sensitivity)和真正率(True Positive