zoukankan      html  css  js  c++  java
  • ROC

    ROC分析相关

    ROC(Receiver Operating Characteristic,受试者工作特征曲线)的概念来自信号检测原理中

      • 最初只是为了区分噪声和非噪声
      • 对于二分类问题具有很好的表现性能(仅仅是二分类问题,即是非,无有,0/1等)
      • 通过以(FPR,TPR)为坐标点画出二维平面中的曲线,即ROC曲线 
        • Recall = TPR = TP/(TP+FN) (True Positive Rate,也叫”sensitivity”或者”recall”或”召回率”或”查全率”或”真阳性率”)
        • FPR = FP/(FP+TN) (False Positive Rate,也叫”Fall-Out”或者”假阳性率”)
        • Precision = TP/(TP+FP) (精确度/率)
        • Accuracy = (TP+TN)/(P+N) = (TP+TN) / (TP + FN + FP + TN) (准确率,姑且这么叫吧,其中P为所有的正样本,N为所有的负样本)
        • F-Meature = 2(Precision*Recall)/(Precision + Recall)

     下面通过一个例子来分析:一个场景是在人脸检测(Detection)中,很多相关的研究或者企业评价他们的检测性能程度是通过ROC曲线来评定的,如知名的人脸检测评测平台FDDB(Face Detection Data Set and Benchmar)

    是由马萨诸塞大学计算机系维护的一套公开数据库,为来自全世界的研究者提供一个标准的人脸检测评测平台,其中涵盖在自然环境下的各种姿态的人脸;该校还维护了LFW等知名人脸数据库供研究者做人脸识别(Recognition)的研究,数据集P和N均为

    ground truth,即已经标定好是有人脸,如下定义:

      P(有人脸数据集) N(无人脸数据集)
    被检测出人脸 TP         FN        
    未被检测出 FP TN

     ROC曲线中用(FPR,TPR)来表示坐标系中的(X,Y)坐标

    ROC距离基线(ROC Space Baseline)

    • 一个分类器得到的ROC坐标点总是在距离基线的上方的
    • 预测值总是在0~1

    当有多个分类器时(这里可以认为有多个不同性能的人脸检测模型或者是同一个人脸检测模型的不同检测阈值作为分类器),得到ROC图:

    • 这个图叫”ROC Convex Hull”
    • 在C1,C2,C4,C5连线下方总是没有这条线(Hull)上的分类器好,比如C3

      ISO精度线(ISO Accuracy Lines)

    • 用neg表示二分类中的负类个数,如无人脸数据个数
    • 用pos表示二分类中的正类个数,如有人脸数据个数

      那么ISO精度线表示为:y=ax+b

    • a即为这条线的斜率(slope)
    • a=neg/pos
    • 在将ROC距离基线分割就得到了ISO精度线

    选取最优的分类器

    选取最优分类器,或者从上面说的选取最优的人脸检测模型或者是同一个人脸检测模型中最优的阈值(Threshold)。从ROC曲线中可以得知,TPR越高,FPR越低则代表着分类器越好,即靠近ROC坐标左上角。

    • 首先得到ISO精度线的斜率slope=neg/pos(注意斜率可能大于1)
    • 选择以slope为斜率的直线,初始截距为0
    • 往左上角移动该直线,直到遇到最后一个分类器,即为最优分类器(如图中C4)

      ROC曲线有一个很好的优点,当正负样本(P和N)数量变化时,ROC曲线能够保持不变,这就为找到最优分类器提供了保证。

    通过程序找到最优分类器

    即求离散ROC曲线与ISO精度线的切点了,这个切点就是最优分类器

    首先是要计算得到各分类器的ROC坐标的,即通过求取TP,FP,TN,FN,然后求取TPR,FPR获得坐标,再通过已知的ISO精度线slope,就可以计算得到切点了

     关于ROC下面积

    一般来说,ROC曲线下面积在0到1之间。如果一项诊断试验的灵敏度是1,而假阳性率是0,那么该诊断试验的ROC曲线下面积就是1。但是这样的诊断试验几乎不存在,一个诊断试验往往不能将所有的患者和非患者都准确地识别出来。同时,也不会出现某一项诊断试验的ROC曲线下面积为0的情况,因为基本不会有一项诊断试验错误地识别了所有的患者和非患者。即使真的有这样的诊断试验,我们只需要将所有的诊断结果反过来,就可以得到完美结果。

    也因为如此,我们认为ROC曲线下面积不会低于0.5,如果低了,我们只需将诊断翻转,就能得到更好的结果。如果诊断试验的结果完全随机(等同于诊断时,靠投掷硬币,正面向上认为是患者,反面向上认为是非患者),那么我们得到的ROC曲线下面积就是0.5,即ROC曲线下面积的最小值是0.5。

    可见,只要ROC曲线下面积大于0.5,就证明该诊断试验具有一定的诊断价值。同时,ROC曲线下面积越接近1,离(0,1)点越近,证明诊断试验的真实性越好

    参见:http://blog.csdn.net/FreeApe/article/details/52090515

  • 相关阅读:
    poj2661
    poj2624
    无法使用 mask和unmask,报错“对象不支持此属性或方法”
    document.getElementsByName("IPInput3").disabled=(id!=1); 操作无效的原因是应该为
    jquery获取input的值
    POST过来的数据,php中提示Undefined index
    jQuery插件之zTree
    jQuery插件之Smart spin
    jQuery插件开发全解析
    使用IE调试检查JavaScript的错误
  • 原文地址:https://www.cnblogs.com/lhdre/p/8551533.html
Copyright © 2011-2022 走看看