深入理解ROC曲线和EER及其之间的关系

1.ROC曲线

我们知道,在很多学习器中是通过将既定的阈值与学习器对测试样本预测值(实值/概率)进行比较。如果大于阈值则将其判为正类样本,小于阈值将其判为负类样本。这个实值或者概率预测结果的好坏,直接决定了学习器的泛化能力。

我们可以根据学习器的预测结果对测试样本进行排序,将最有可能的正例排在前边,最不可能的排在后面。这样我们可以在这个序列中放置一个截断点来将样本分为两类,前面一部分判为正例,后面一部分判为负例。

在不同的实际应用中,我们要根据不同的需求来选取不同的截断点。例如在推荐系统中,我们更在乎系统给用户的推荐中用户喜欢的占比,而不是把所有用户喜欢的都推荐出来。这样我们就可以在排序中选择位置靠前的截断点进行截断,以保证更大的查准率。而在有些应用任务中则更重视查全率。

所以根据学习器的预测值所产生的排序的好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏。而ROC曲线就是从这个角度出发来研究学习器泛化性能的有力工具。所谓ROC曲线,全称为Receiver Operating Characteristic 受试者工作特征)曲线 ,它的纵轴为真正例率TPR(True Positive Rate),横轴为假正例率FPR(False Positive Rate),分别定义为:

深入理解ROC曲线和EER及其之间的关系_第1张图片

真正例率就是学习器认为的正例占所有正例的比率,也就是我们通常所说的查全率或者召回率。假正例率就是在所有的负例中学习器认为是正例的比率。

 此外,为了更好地讲解我们再引入两个常用的错误率度量,分别是错误接受率FAR(False Acceptance Rate)和错误拒绝率FRR(False Reject Rate),分别定义为: 

                                               FAR = \frac{FP}{FP+TN}

                                              FRR = \frac{FN}{FN+TP}

错误接受率就是所有的负例里面被学习器误认为是正例的比率 ,错误拒绝率就是所有的正例里面被学习器误认为是负例的比率。我们可以很容易观察到FAR = FPR, FRR = 1 - TPR。接下来我们会用到这个性质。

2.ROC曲线绘制方法 

上一节我们知道ROC曲线的横轴是FPR,纵轴是TPR。绘图的过程如下:

  1. 给定m个正例和n个反例,根据学习器对这m+n个测试样本进行预测,根据预测概率或实值将样本进行由可能性大到小的排序。
  2. 将分类阈值设为最大,即将所有的样本都分类为反例,这时TPR = FPR = 0,因为此时没有任何样例被判为正例。
  3. 将阈值依次设为分类样本的预测值,也就是按照排序依次将样例每个样例划分为正例。然后计算TPR和FPR,设上一个ROC曲线上的点的坐标为(x,y),如果当前样例是正例即学习器判断正确,那么当前ROC上的点应为(x,y+1/m);如果当前样例是负例即学习器判断错误,那么当前ROC上的点应为(x + 1/n , y)。将所有的点描出来然后用线段连接即可。借鉴西瓜书上的图片,绘制后的ROC曲线如下:深入理解ROC曲线和EER及其之间的关系_第2张图片

 

3.EER(Equal Error Rate) 

我们在ROC曲线上将坐标点(0,1)和(1,0)连接起来,与ROC曲线的交点所对应的FPR值就是EER 。

通过上述EER的定义我们可以发现:EER是FPR = 1 - TPR时的FPR值,回顾第一节我们可以知道,FPR其实就是FAR,而FRR= 1 - TPR。所以EER又是FRR与FAR相等时的值,即错误接受率与错误拒绝率相等时的值,所以称之为等错误率即Equal Error Rate。

你可能感兴趣的:(机器学习)