评价指标AUC和曲线ROC理解

AUC是一个模型评价指标,用于二分类模型的评价,对于二分类模型,还有很多其他评价指标,比如logloss,accuracy,precision。实际中,AUC和logloss比accuracy更常用,这是因为很多机器学习模型对分类问题的预测结果都是概率,而如果要计算accuracy,需要先把概率转换成类别,这里就需要手动设置一个阈值,概率高于阈值放到一个类别,低于的话就放到另一个类别里,那么这个阈值就很大程序上影响了accuracy的计算效果,使用AUC和logloss能避免阈值带来的影响。

AUC是Area under curve的首字母缩写,字面上的意思是曲线下的面积,那么这个曲线是什么呢?这个曲线是ROC曲线,ROC曲线是统计学里面的概率。

ROC曲线是由样本的真实类别和预测概率计算出来的,具体来说,ROC曲线的x轴是伪阳性率(false positive rate),y轴是真阳性率(true positive rate)。对于二分类问题,一个样本的类别只有两种,我们用0,1来表示,0和1也可以分别叫做阴性和阳性。当我们用一个分类器进行概率的预测的时候,就有四种可能性:
这里写图片描述
真阳性率=(真阳性的数量)/(真阳性的数量+伪阴性的数量)
伪阳性率=(伪阳性的数量)/(伪阳性的数量+真阴性的数量)
这里我们需要选定阈值才能把概率转化为类别,选定不同的阈值会得到不同的结果。一旦确定了类别,我们就可以计算相对应的真、伪阳性率。当我们把所有的计算得到的真、伪阳性率连起来,就能画出ROC曲线,那么即可得到ROC曲线下面的面积值,也即AUC值。

以上是AUC的定义和计算公式,但它有什么意义呢?
举个实际的例子,对于0-1二分类样本,从中随机选取一个样本,实际为1预测为1的概况设为p1,实际为0预测为1的概率设为p0,AUC就是指p1>p0的概率。
另外AUC对样本类别是否均衡并不敏感,因此不均衡样本通常用AUC评价分类器性能。

Python里面计算AUC的代码:

from sklearn import metrics

def aucfun(act,pred):
    fpr,tpr,thresholds=metrics.roc_curve(act,pred,pos_label=1)
    return metrics.auc(fpr,tpr)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值