ROC曲线的理解与绘制

ROC曲线是评估分类器性能的重要工具,它展示了不同阈值下真正类率(TPR)和假正类率(FPR)的关系。AUC代表ROC曲线下的面积,用于衡量分类器的区分能力。理想情况下,AUC接近1表示分类器性能优秀。本文介绍了ROC曲线的含义,计算和绘制ROC曲线的Python代码,并解释了AUC在处理样本不平衡问题上的优势。
摘要由CSDN通过智能技术生成

什么是ROC曲线?

ROC曲线:接收者操作特征(receiver operating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。

首先,在试图弄懂AUC和ROC曲线之前,一定要彻底理解混淆矩阵的定义!

混淆矩阵中有着Positive、Negative、True、False的概念,其意义如下:

  • 称预测类别为1的为Positive(阳性),预测类别为0的为Negative(阴性)。
  • 预测正确的为True(真),预测错误的为False(伪)。

对上述概念进行组合,就产生了如下的混淆矩阵:

在这里插入图片描述

然后,由此引出True Positive Rate(真阳率)、False Positive(伪阳率)两个概念:

仔细看这两个公式,发现其实TPRate就是TP除以TP所在的列,FPRate就是FP除以FP所在的列,二者意义如下:

  • **TPRate的意义是所有真实类别为1的样本中,预测类别为1的比例。**Sensitivity

    TPR: TP/(TP+FN)

  • **FPRate的意义是所有真实类别为0的样本中,预测类别为1的比例。**1-Specificity

    FPR: FP/(FP+TN)

按照定义,AUC即ROC曲线下的面积,而ROC曲线的横轴是FPRate,纵轴是TPRate,当二者相等时,即y=x,如下图:

在这里插入图片描述

横轴:假正类率(false postive rate FPR)——特异度,(1-Specificity)

纵轴:真正类率(true postive rate TPR)——灵敏度,Sensitivity(正类覆盖率)(又是召回率recall

真负类率(True Negative Rate)TNR: TN/(FP+TN),代表分类器预测的负类中实际负实例占所有负实例的比例,TNR=1-FPR。Specificity

上图表示的意义是:对于不论真实类别是1还是0的样本,分类器预测为1的概率是相等的。

换句话说,分类器对于正例和负例毫无区分能力,和抛硬币没什么区别,一个抛硬币的分类器是我们能想象的最差的情况,因此一般来说我们认为AUC的最小值为0.5(当然也存在预测相反这种极端的情况,AUC小于0.5,这种情况相当于分类器总是把对的说成错的,错的认为是对的,那么只要把预测类别取反,便得到了一个AUC大于0.5的分类器)。

而我们希望分类器达到的效果是:对于真实类别为1的样本,分类器预测为1的概率(即TPRate),要大于真实类别为0而预测类别为1的概率(即FPRate),即y>x,因此大部分的ROC曲线长成下面这个样子:

在这里插入图片描述

最理想的情况下,既没有真实类别为1而错分为0的样本——TPRate一直为1,也没有真实类别为0而错分为1的样本——FPRate一直为0,AUC为1,这便是AUC的极大值。

假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值