一、ROC曲线

1、简介

ROC曲线全称是“受试者工作特征曲线 ”(Receiver Operating Characteristic curve),又称为感受性曲线(Sensitivity curve)。
它源于二战中用于敌机检测的雷达信号分析技术,二十世纪六七十年代开始被用于一些心理学、医学检测中,此后被引入机器学习领域。
得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在两种不同的判定标准下所得的结果而已。

ROC曲线示意图如下图所示。

ROC曲线的横轴是“假正例率”(False Positive Rate,简称FPR),纵轴是“真正例率”(True Positive Rate,简称TPR),两者定义如下,公式中符号含义参见 混淆矩阵
\begin{align}\notag
TPR=\frac{TP}{TP+FN}
\end{align}
\begin{align}\notag
FPR=\frac{FP}{TN+FP}
\end{align}

现实任务中通常是利用有限个样本来绘制ROC曲线,此时仅能获得有限个(真正例率、假正例率)坐标,无法产生上图光滑的ROC曲线,只能绘制出下图所示的近似的ROC曲线。

2、绘制方法

很多机器学习是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类,小于阈值则为反类。

  1. 假设有m个正例和n个反例,根据预测结果对样例进行排序;
  2. 把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,即在坐标(0,0)处;
  3. 然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例,求出真正例率和假正例率,绘制出坐标。

3.优点

在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
但当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。

二、AUC

AUC(Area Under Curve),即ROC曲线下的面积。
AUC越大,分类器效果越好。
假设按序连接成ROC曲线上点的坐标为

\begin{align}\notag
(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{m},y_{m})
\end{align}

则AUC可估算为

\begin{align}\notag
AUC=\frac{1}{2} \sum_{i=1}^{m-1}(x_{i+1}-x_{i})\cdot (y_{i}+y_{i+1})
\end{align}


梦不会逃走,逃走的一直都是自己。——《蜡笔小新》

ROC曲线与AUC的更多相关文章

  1. 机器学习之分类器性能指标之ROC曲线、AUC值

    分类器性能指标之ROC曲线.AUC值 一 roc曲线 1.roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性 ...

  2. ROC曲线、AUC、Precision、Recall、F-measure理解及Python实现

    本文首先从整体上介绍ROC曲线.AUC.Precision.Recall以及F-measure,然后介绍上述这些评价指标的有趣特性,最后给出ROC曲线的一个Python实现示例. 一.ROC曲线.AU ...

  3. ROC曲线的AUC(以及其他评价指标的简介)知识整理

    相关评价指标在这片文章里有很好介绍 信息检索(IR)的评价指标介绍 - 准确率.召回率.F1.mAP.ROC.AUC:http://blog.csdn.net/marising/article/det ...

  4. 混淆矩阵、准确率、精确率/查准率、召回率/查全率、F1值、ROC曲线的AUC值

    准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前 ...

  5. ROC曲线,AUC面积

    AUC(Area under Curve):Roc曲线下的面积,介于0.1和1之间.Auc作为数值可以直观的评价分类器的好坏,值越大越好. 首先AUC值是一个概率值,当你随机挑选一个正样本以及负样本, ...

  6. ROC曲线和AUC值(转)

    http://www.cnblogs.com/dlml/p/4403482.html 分类器性能指标之ROC曲线.AUC值 一 roc曲线 1.roc曲线:接收者操作特征(receiveroperat ...

  7. 混淆矩阵、准确率、召回率、ROC曲线、AUC

    混淆矩阵.准确率.召回率.ROC曲线.AUC 假设有一个用来对猫(cats).狗(dogs).兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结.假设总共 ...

  8. 机器学习常见的几种评价指标:精确率(Precision)、召回率(Recall)、F值(F-measure)、ROC曲线、AUC、准确率(Accuracy)

    原文链接:https://blog.csdn.net/weixin_42518879/article/details/83959319 主要内容:机器学习中常见的几种评价指标,它们各自的含义和计算(注 ...

  9. 【分类模型评判指标 二】ROC曲线与AUC面积

    转自:https://blog.csdn.net/Orange_Spotty_Cat/article/details/80499031 略有改动,仅供个人学习使用 简介 ROC曲线与AUC面积均是用来 ...

  10. 模型监控指标- 混淆矩阵、ROC曲线,AUC值,KS曲线以及KS值、PSI值,Lift图,Gain图,KT值,迁移矩阵

    1. 混淆矩阵 确定截断点后,评价学习器性能 假设训练之初以及预测后,一个样本是正例还是反例是已经确定的,这个时候,样本应该有两个类别值,一个是真实的0/1,一个是预测的0/1 TP(实际为正预测为正 ...

随机推荐

  1. win中使用cmd杀端口

    最近在win开发时,总是遇到端口占用的情况...可能是跑的程序太多了吧 当你测试一个demo时遇到这个就很恶心.. 记一下 netstat -ano | findstr 80 //列出进程极其占用的端 ...

  2. 安装zabbix3.4的过程(一)

    目录 zabbix服务端安装(centos7.4) zabbix客户端安装 (centos6.9) 注释:本次安装为官方推荐的yum安装方式,如果需要编译安装,请查看下边的博文: 博文地址:https ...

  3. python -wordcloudan云词安装

    1安装网站:https://download.lfd.uci.edu/pythonlibs/u2yrk7ps/wordcloud-1.4.1-cp36-cp36m-win_amd64.whl 2安装过 ...

  4. libcurl同时下载多个文件

    #include <errno.h> #include <stdlib.h> #include <string.h> #ifndef WIN32 #include ...

  5. #001 Emmet的API图片

    这个是一张Emmet的快捷键图片,里面包含了所有的快捷键. 虽然有很多的快捷键,但是常用的也就那么几个   .   样式 #  ID >  上下级节点 +  .col-md-8+.col-md- ...

  6. Eclipse Debug Daemon Thread

    Daemon Thread ["http-bio-8080"-exec-2] (Suspended (exception RuntimeException)) ThreadPool ...

  7. 复用$.ajax方式传递参数错误处理

    1.封装后的方法,在 data:inData 传递参数的方式和一般不一样,如果不注意会出现错误. function getDataByJsonP(methName, inData, fn) { $.a ...

  8. 盒子模型之margin相关技巧!

    废话不多说,直接进入主题,margin相关技巧. 1.设置元素水平居中:margin:x auto; 2.margin负值让元素位移及边框合并. 外边距合并 指当两个垂直外边距相遇时,它们将形成一个外 ...

  9. BZOJ 1066 蜥蜴 最大流

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1066 题目大意: 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥 ...

  10. Android进阶笔记18:Android 获取Button的高度、宽度、坐标值

    1. 问题 如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接在onCreate里面调用getWidth.getMeasuredWidth不就可以获得了吗,但是,事实上是并没 ...