关于ROC曲线和AUC的知识小记

概述

很多分类器根据测试样本产生一个概率预测,然后将该预测值与阈值进行比较,高于阈值则被分类为正类,低于阈值则被分为负类。

AUC值是评价分类器的一个指标,全称是Area Under Curve,直译就是曲线下的面积。什么曲线呢,就是ROC曲线。

ROC曲线

要介绍AUC值,首先得介绍ROC曲线。ROC曲线起源于二战,广泛用于医学行业。想了解ROC的历史发展,点「链接」看,这里就不赘述。ROC曲线全称为Receiver Operation Characteristic曲线,受试者操作特征曲线,从中文名很难明白这是怎么一回事。直接看定义吧。

  • 一个帮助你理解的表格

真实值和预测值的混淆矩阵
    预测值 预测值
    0 1
真实值 0 TN FP
真实值 1 FN TP

0代表负例 1代表正例

TN:true negative  真实的负例  

TP:true positive   真实的正例

FP:false positive  错误的正例

FN:false negative 错误的负例

第一个字母T和F分别代表预测正确还是错误,第二个字母N和P分别代表预测为正类还是负类

  • 定义
ROC曲线

  • 横坐标为FPR:false positive rate,假正类率,即有多少样本是对的,结果预测为了负类,这类样本占所有负类样本的比例。

FPR = FP / (FP+TN)

  • 纵坐标为TPR:true positive rate,真正类率,即有多少样本是对的,结果预测为正类,这类样本占所有正类样本的比例。

TPR = TP / (TP+FN)
  • 一个帮助你记忆更便捷的方法

想必以上的内容已经把你看晕了,绕来绕去的很不好记,于是有一个好一点的方法。假设有一组0&1序列,在序列中加入一个分割线,表示为阈值,在分割线左边的为划分的负类,在分割线右边的表示为划分的正类。
FPR表示的为分割线右边的0的个数占所有的0的个数的比例,即把所有负类中划分为正例的比例。值越大则误分类率越高。
TPR表示的为分割线右边的1的个数占所有的1的个数的比例,即把所有的正例分类为正例的比例。值越大则误分类率越低。

                                                 00100110110|1110110111

  • 图像
我们根据分类器的预测结果对样本进行排序,按照此顺序将样本作为正例预测。取无数个阈值来对样本值进行分类,每取一个阈值,计算出这个阈值对应的横坐标和纵坐标,在ROC曲线上就会对应有一个点。当我们取了很多个阈值,这个时候就可以形成一个曲线。这个曲线就被称为ROC曲线。


图片来源于周志华老师的西瓜书

分析两个特殊的点。

  • (0,1):FPR=0,TPR=1。FP=0,TP / (TP+FN)=1 =>  FN=0。即所有的值均预测正确,这是一个完美的分类器。
  • (1,1):FPR=1,TPR=1。FP /(FP +TN)=1 ,TP / (TP+FN)=1。=> TN=0,FN =0。即无论什么样的样本,分类器均认为他是正类。这是一个很不负责任的分类器。

AUC值

ROC曲线形成之后,它将整个区域变成了两个部分,一部分是左上角的区域,一部分是右下角的区域。AUC值就是ROC曲线右下角区域的面积。

  • 物理意义

AUC值得物理意义就是分类器将样本分类成功的概率。值越大,则表示该分类器将样本正确分类的概率值越高。

假设AUC值为a,

0.5=a,表明该分类器随机分类,分类结果毫无意义,跟掷硬币一样,分对分错概率五五开,完全不可信。

1>a>0.5,表明该分类器将样本分对的概率比分错的概率高,比较可信。

0.5>a>0,表明该分类器有点皮,他反着分类,反向预测。

1=a,表示这是一个完美的分类器,他说的都对。

0=a,我没想好这个表示什么  =。=

  • 计算方法

利用微积分的思想,将曲线下的图形划分为一个个无限小的梯形,计算面积。


猜你喜欢

转载自blog.csdn.net/qq_41200212/article/details/80765783