ROC曲线实例分析

1 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)

  上面有些概念还是不要看中文的好,直接用英文意思就好了,不然看到不同的文章会有不同的叫法,会误导自己。

  这里着重理解ROC曲线求取最优阈值或者说最优分类器。下面通过一个例子来分析:一个场景是在人脸检测(Detection)中,很多相关的研究或者企业评价他们的检测性能程度是通过ROC曲线来评定的,如知名的人脸检测评测平台FDDB(Face Detection Data Set and Benchmark)是由马萨诸塞大学计算机系维护的一套公开数据库,为来自全世界的研究者提供一个标准的人脸检测评测平台,其中涵盖在自然环境下的各种姿态的人脸;该校还维护了LFW等知名人脸数据库供研究者做人脸识别(Recognition)的研究,数据集P和N均为ground truth,即已经标定好是有人脸,如下定义:

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

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

2 ROC距离基线(ROC Space Baseline)

ROC曲线实例分析_第1张图片

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

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

ROC曲线实例分析_第2张图片

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

3 ISO精度线(ISO Accuracy Lines)

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

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

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

ROC曲线实例分析_第3张图片

4 选取最优的分类器

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

ROC曲线实例分析_第4张图片

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

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

5 如何通过程序找到最优分类器呢?

  很明显就是要求离散ROC曲线与ISO精度线的切点了,这个切点就是最优分类器。 具体的怎么去通过程序代码实现就不提供了。
  首先是要计算得到各分类器的ROC坐标的,即通过求取TP,FP,TN,FN,然后求取TPR,FPR获得坐标,再通过已知的ISO精度线slope,就可以计算得到切点了。

  • ground truth
  • tp,fp,fn,tn
  • fpr,tpr
  • roc
  • slice point
  • best

6 python计算mAP

参见 http://blog.csdn.net/freeape/article/details/79038118

参考资料:

http://0agr.ru/wiki/index.php/ROC_Analysis

http://0agr.ru/wiki/index.php/Evaluation_of_Binary_Classifiers

http://0agr.ru/wiki/index.php/F_Measure

http://vis-www.cs.umass.edu/fddb/results.html

你可能感兴趣的:(ROC曲线,人脸检测,Detection,Recognitio,FPR-TPR,数据挖掘,Computer,Vision)