python中sklearn包计算AUC——sklearn.metrics.auc函数解析

本文详细解析了如何使用sklearn库计算ROC曲线和AUC值。通过一个代码示例,展示了如何利用metrics.roc_curve函数计算FPR和TPR,并最终通过metrics.auc函数求取ROC曲线下的面积。示例中解释了输入参数的含义,阈值选取规则以及如何计算AUC,帮助读者深入理解这一评估分类模型性能的重要指标。
部署运行你感兴趣的模型镜像

代码示例:

 

sklearn.metrics.auc函数的输入是FPR和TPR的值,即ROC曲线中的真阳性率(true positive rate)和假阳性率(false positive rate)。得到的输出结果是一个float格式的数值,代指ROC曲线下的面积(AUC的值)。

python所给的代码示例中用到了metrics.roc_curve函数,这个函数主要是用来计算ROC曲线面积的;

在这里的输入参数有三个:

第一个参数是一个二进制数组y,代表“真”或“假”,默认为0或者1的二进制数组,如果不是以0或者1 表明,则必须在第三个参数pos_label处表明;

第二个参数是一个数组,代表目标得分,可以是积极类的概率估计,信心值,或者是决定的非阈值度量;

第三个参数pos_label代表二进制数组y中代表“真”的二进制编码,其他的编码都会被认为是

在示例中,0.1就是指第一个数预测为阳性的概率为0.1,很显然,y 和 pred应该有相同多的元素,都等于样本数。pos_label=2 是指在y中标签为2的是标准阳性标签,其余值是阴性。

所以在标准值y中,阳性有2个,后两个;阴性有2个,前两个。

接下来选取一个阈值计算TPR/FPR,阈值的选取规则是在scores值中从大到小的以此选取,于是第一个选取的阈值是0.8

scores中大于阈值的就是预测为阳性,小于的预测为阴性。所以预测的值设为y=(0,0,0,1),0代表预测为阴性,1代表预测为阳性(实际应该是0,0,1,1)。可以看出,真阴性(TN=2)都被预测为阴性(FP=0),真阳性(TP=1)有一个预测为假阴性(FN=1)了。

FPR = FP / (FP+TN) = 0 /( 0 + 2) = 0

TPR = TP/ (TP + FN) = 1 / (1 + 1) = 0.5

thresholds = 0.8

接下来依次以0.4,0.35,0.1作为阈值预测,分别得到三组(FPR,TPR)的值。我们得到的fpr和tpr(即metrics.auc的输出)分别是一个数组。

这里计算的结果是:

fpr[0,0.5,0.5,1]

tpr[0.5 0.5 1 1]

将fpr和tpr输入sklearn.auc函数,即求取(0,0.5)、(0.5,0.5)、(0.5,1)、(1,1)折线的定积分面积,AUC面积很直观是0.75,即auc函数的输出值。

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值