wiki

https://zh.wikipedia.org/wiki/ROC%E6%9B%B2%E7%BA%BF

信号检测理论中,接收者操作特征曲线receiver operating characteristic curve,或者叫ROC曲线)是一种座标图式的分析工具,用于 (1) 选择最佳的信号侦测模型、舍弃次佳的模型。 (2) 在同一模型中设定最佳阈值。

在做决策时,ROC分析能不受成本/效益的影响,给出客观中立的建议。

ROC曲线首先是由二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军载具(飞机、船舰),也就是信号检测理论。之后很快就被引入了心理学来进行信号的知觉检测。数十年来,ROC分析被用于医学无线电生物学犯罪心理学领域中,而且最近在机器学习(machine learning)和数据挖掘(data mining)领域也得到了很好的发展。

分类模型(又称分类器,或诊断)是将一个实例映射到一个特定类的过程。ROC分析的是二元分类模型,也就是输出结果只有两种类别的模型,例如:(阳性/阴性)(有病/没病)(垃圾邮件/非垃圾邮件)(敌军/非敌军)。

讯号侦测(或变数测量)的结果是一个连续值时,类与类的边界必须用一个阈值英语:threshold)来界定。举例来说,用血压值来检测一个人是否有高血压,测出的血压值是连续的实数(从0~200都有可能),以收缩压140/舒张压90为阈值,阈值以上便诊断为有高血压,阈值未满者诊断为无高血压。二元分类模型的个案预测有四种结局:

  1. 真阳性(TP):诊断为有实际上也有高血压。
  2. 伪阳性(FP):诊断为有实际却没有高血压。
  3. 真阴性(TN):诊断为没有实际上也没有高血压。
  4. 伪阴性(FN):诊断为没有实际却有高血压。

这四种结局可以画成2 × 2的Confusion matrix

  真实值
p n



p' 真阳性
(TP)
伪阳性
(FP)
P'
n' 伪阴性
(FN)
真阴性
(TN)
N'
总数 P N  
阳性 (P, positive)
阴性 (N, Negative)
真阳性 (TP, true positive)
正确的肯定。又称:命中 (hit)
真阴性 (TN, true negative)
正确的否定。又称:正确拒绝 (correct rejection)
伪阳性 (FP, false positive)
错误的肯定,又称:假警报 (false alarm),第二型错误
伪阴性 (FN, false negative)
错误的否定,又称:未命中 (miss),第一型错误
真阳性率 (TPR, true positive rate)
又称:命中率 (hit rate)
TPR = TP / P = TP / (TP+FN)
伪阳性率(FPR, false positive rate)
又称:错误命中率,假警报率 (false alarm rate)
FPR = FP / N = FP / (FP + TN)
准确度 (ACC, accuracy)
ACC = (TP + TN) / (P + N)
即:(真阳性+真阴性) / 总样本数
真阴性率 (TNR)
又称:特异度 (SPC, specificity)
SPC = TN / N = TN / (FP + TN) = 1 - FPR
阳性预测值 (PPV)
PPV = TP / (TP + FP)
阴性预测值 (NPV)
NPV = TN / (TN + FN)
假发现率 (FDR)
FDR = FP / (FP + TP)
Matthews相关系数 (MCC),即 Phi相关系数
MCC = (TP*TN - FP*FN) / \sqrt{P N P' N'}
F1评分
F1 = 2TP/(P+P')
Source: Fawcett (2006).

ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。

  • TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率。
  • FPR:在所有实际为阴性的样本中,被错误地判断为阳性之比率。

给定一个二元分类模型和它的阈值,就能从所有样本的(阳性/阴性)真实值和预测值计算出一个 (X=FPR, Y=TPR) 座标点。

从 (0, 0) 到 (1,1) 的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。

曲线下面积(AUC)

AUC值越大的分类器,正确率越高。

[zz] ROC曲线的更多相关文章

  1. ROC曲线、PR曲线

    在论文的结果分析中,ROC和PR曲线是经常用到的两个有力的展示图. 1.ROC曲线 ROC曲线(receiver operating characteristic)是一种对于灵敏度进行描述的功能图像. ...

  2. 精确率与召回率,RoC曲线与PR曲线

    在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢? 首先,我们需要搞清楚几个拗口 ...

  3. 【数据挖掘】朴素贝叶斯算法计算ROC曲线的面积

    题记:          近来关于数据挖掘学习过程中,学习到朴素贝叶斯运算ROC曲线.也是本节实验课题,roc曲线的计算原理以及如果统计TP.FP.TN.FN.TPR.FPR.ROC面积等等.往往运用 ...

  4. PR曲线,ROC曲线,AUC指标等,Accuracy vs Precision

    作为机器学习重要的评价指标,标题中的三个内容,在下面读书笔记里面都有讲: http://www.cnblogs.com/charlesblc/p/6188562.html 但是讲的不细,不太懂.今天又 ...

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

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

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

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

  7. ROC曲线与AUC值

    本文根据以下文章整理而成,链接: (1)http://blog.csdn.net/ice110956/article/details/20288239 (2)http://blog.csdn.net/ ...

  8. ROC曲线绘制

    ROC 曲线绘制 个人的浅显理解:1.ROC曲线必须是针对连续值输入的,通过选定不同的阈值而得到光滑而且连续的ROC曲线,故通常应用于Saliency算法评价中,因为可以选定0~255中任意的值进行阈 ...

  9. ROC曲线

    1.混淆矩阵(confusion matrix)     针对预测值和真实值之间的关系,我们可以将样本分为四个部分,分别是:     真正例(True Positive,TP):预测值和真实值都为1 ...

随机推荐

  1. 关于Android 应用保活

    通常情况下 , 公司需要让自己的产品在用户的手机中尽可能存活长的时间,包括不受大数字,手动清理后台等情况的影响.这里给出一种方式 就是 双进程守护: 模型如图所示: 两个service通过aidl的方 ...

  2. 360个人图书馆 轻松解除网页防复制 (转自老D)

    360个人图书馆会自动采集一些比较好的文章,我的博客文章也被采集过几篇,用过360个人图书馆的人都知道要复制别人的文章需要先收藏到自己的图书馆才可以复制,没有账号右键复制它会直接弹出一个提示登录框.不 ...

  3. iOS开发,用了ARC,引入非ARC的第三方,报错

    ARC forbids explicit message sendof'dealloc' 在xcode中,打开“Build Setting”,找到“Objective-C Automatic Refe ...

  4. 让LinqToSQL使用Web.Config中的链接字符串(修改Settings.Designer.cs)

    [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.Debug ...

  5. 你必须牢记的*.Config-配置文件

    在我们第一次写web应用程序的时候,我们很快会接触到一个文件,那就是配置文件——web.config.我们的第一个比较深刻 的使用就是我们不需要把我们的数据库链接零散的写在我们的代码中了,我们只需要在 ...

  6. Java用户线程和守护线程

    今天看Java一个关于多线程返回值方式的示例,发现一个自己不太能理解的问题,就是在主线程中启动了几个工作线程,主线程中也没有join,工作线程居然也是正常输出了回调的结果.这个跟linux C++下的 ...

  7. mysql二进制文件操作语法(mysql binary log operate statements)

    开启 binary logs 功能 在 mysql 配置文件中配置 log-bin,重启 mysql my.cnf (on Linux/unix) or my.ini (on Windows) 例子: ...

  8. ie8兼容

    最近在做ie8兼容,把遇到的问题整理了一下 1. margin:0 auto; 无法居中 解决方法:1.换成h4的文档类型 <!DOCTYPE html PUBLIC "-//W3C/ ...

  9. Linux下高cpu解决方案(转载)

    昨天搞定了一个十万火急的issue,客户抱怨产品升级后系统会变慢和CPU使用率相当高,客户脾气很大,声称不尽快解决这个问题就退货,弄得我们 R&D压力很大,解决这个issue的任务分给了我,客 ...

  10. ul和dl的区别

    列表中有标题的时候就用dl,没有的话就用ul