ROC-wiki

AUC常常在文章中作为评价一个分类器优劣的指标, 却总是忘记其原由, 索性记上一笔.

TPR, FPR

首先理解TP, FP, FN, TN的概念, 下面是其对应的类型. 这里, P表示正样本, 而N表示负样本, 下表中的行为真实的标签, 列为预测的标签.

预测\真实 P N
P TP(True Positive) FP(False Positive)
N FN(False Negative) TN(True Negative)

\[\mathrm{TPR} := \frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}}, \mathrm{FPR}:= \frac{\mathrm{FP}}{\mathrm{FP}+\mathrm{TN}},
\]

即TPR表示正样本分类正确的概率, FPR表示负样本判断错误(即取伪)的概率.

问题是如何通过这俩个指标反映一个二分类器的优劣, 首先假设二分类器由下列方式定义:

\[f:\mathbb{R}^d \rightarrow \mathbb{R}, \quad c(x;T) = I(f(x)>T),
\]

其中\(T\)便是阈值, 即超过一定的阈值判断其为正样本.

注: 其实此说法有瑕疵, 因为完全有可能选择超过一定的阈值判断其为负样本时分类器效果"更好", 但是这种争论没有多大意义, 逼近只需取\(f'(x)=-f(x)\)即可.

显示强调\(T\)的存在, 有\(\mathrm{TPR}(T)\)和\(\mathrm{FPR}(T)\), 另外, 此时\(f\)可以看成一个随机变量, 不妨令\(Y_+\)表示\(f\)的输入\(X\)为正样本时的随机变量, \(Y_-\)表示\(f\)的输入\(X\)为负样本时的随机变量, 则

\[\mathrm{TPR}(T)=P(Y_+>T) = \int_{T}^{\infty} p(y|+) \mathrm{d}y, \\
\mathrm{FPR}(T)=P(Y_->T) = \int_{T}^{\infty} p(y|-) \mathrm{d}y.
\]

ROC and AUC

ROC曲线就是以\(y=\mathrm{TPR}(T)\), \(x=\mathrm{FPR}(T)\)的曲线, \(T\)在这里充当一个中间变量.

AUC就是ROC曲线下的面积, 其意义是概率\(P(Y_+>Y_-)\):

\[\begin{array}{ll}
\mathrm{AUC}
&= \int_0^1 y(x) \mathrm{d}x = \int_0^1 \mathrm{TPR}(\mathrm{FPR}^{-1}(x)) \mathrm{d}x \\
&= \int_{+\infty}^{-\infty} \mathrm{TPR}(T) \mathrm{FPR}'(T) \mathrm{d}T \\
&= \int_{+\infty}^{-\infty} \int_{T}^{\infty} p(y|+) \cdot(-p(T|-)) \mathrm{d}y \mathrm{d}T \\
&= \int_{-\infty}^{+\infty} p(T|-) \int_{T}^{\infty} p(y|+) \mathrm{d}y \mathrm{d}T \\
&= \int_{-\infty}^{+\infty} \int_{-\infty}^{\infty} I(y>T)p(y|+) p(T|-) \mathrm{d}y \mathrm{d}T \\
&= P(Y_+ > Y_-).
\end{array}
\]

当然很自然的评价指标是, AUC距离0.5越远越好(这么说是因为AUC=0, 实际上只需\(f'(x)=-f(x)\)).

代码

sklearn-roc_curve

ROC and AUC的更多相关文章

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

    from:https://www.douban.com/note/284051363/?type=like 原帖发表在我的博客:http://alexkong.net/2013/06/introduc ...

  2. Area Under roc Curve(AUC)

    AUC是一种用来度量分类模型好坏的一个标准. ROC分析是从医疗分析领域引入了一种新的分类模型performance评判方法. ROC的全名叫做Receiver Operating Character ...

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

    转自:https://www.douban.com/note/284051363/ ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器( ...

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

    原文:http://alexkong.net/2013/06/introduction-to-auc-and-roc/ 为什么使用ROC曲线 既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因 ...

  5. ROC和AUC理解

    一. ROC曲线概念 二分类问题在机器学习中是一个很常见的问题,经常会用到.ROC (Receiver Operating Characteristic) 曲线和 AUC (Area Under th ...

  6. 信息检索(IR)的评价指标介绍 - 准确率、召回率、F1、mAP、ROC、AUC

    原文地址:http://blog.csdn.net/pkueecser/article/details/8229166 在信息检索.分类体系中,有一系列的指标,搞清楚这些指标对于评价检索和分类性能非常 ...

  7. 评估分类器性能的度量,像混淆矩阵、ROC、AUC等

    评估分类器性能的度量,像混淆矩阵.ROC.AUC等 内容概要¶ 模型评估的目的及一般评估流程 分类准确率的用处及其限制 混淆矩阵(confusion matrix)是如何表示一个分类器的性能 混淆矩阵 ...

  8. ROC与AUC原理

    来自:https://blog.csdn.net/shenxiaoming77/article/details/72627882 来自:https://blog.csdn.net/u010705209 ...

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

    1. 基本概念 1.1 ROC与AUC ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operatin ...

  10. ROC,AUC,Precision,Recall,F1的介绍与计算

    1. 基本概念 1.1 ROC与AUC ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operatin ...

随机推荐

  1. 日常Java 2021/11/2

    Java提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信息和存储在对象中数据的类型.将序列化对象写入文件之后,可以从文件中读取出来 ...

  2. day06 HTTP协议

    day06 HTTP协议 HTTP协议 什么是http? HTTP 全称:Hyper Text Transfer Protocol 中文名:超文本传输协议 是一种按照URL指示,将超文本文档从一台主机 ...

  3. Redis6 新特性

    Redis6新特性 ACL安全策略 ACL(access control list): 访问控制列表,可以设置多个用户,并且给每个用户单独设置命令权限和数据权限 default用户和使用require ...

  4. 一起手写吧!call、apply、bind!

    apply,call,bind都是js给函数内置的一些api,调用他们可以为函数指定this的执行,同时也可以传参. call call 接收多个参数,第一个为函数上下文也就是this,后边参数为函数 ...

  5. 深入理解java动态代理机制

    动态代理其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class byte,该class会继承Proxy类,并实现所有你指定的接口(您在参数中传入的接口数组 ...

  6. redis 之 集群

    #:下载源码包,并编译安装 [root@localhost src]# wget http://download.redis.io/releases/redis-4.0.14.tar.gz [root ...

  7. java对象分配

    1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...

  8. jquery总结和注意事项

    1.关于页面元素的引用通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom ...

  9. sql优化的8种方式

    1.设置索引. MySQL索引操作:给表列创建索引: 建表时创建索引: create table t(id int,name varchar(20),index idx_name (name)); 给 ...

  10. 程序员Meme 第02期