roc_auc_score()、auc()和roc_curve()

本文介绍了如何使用Python的sklearn库计算ROC曲线中的fpr和tpr值,以及阈值thresholds。同时展示了如何计算ROC曲线下的面积(AUC),并通过auc()函数和roc_auc_score()函数进行了对比。最后,通过matplotlib绘制了ROC曲线。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

roc_curve():计算fpr, tpr, thresholds。

>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([1, 1, 2, 2])
>>> pred = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, pred, pos_label=2)

auc():计算ROC曲线下的面积.即图中的area。

>>> metrics.auc(fpr, tpr)
0.75

roc_auc_score():计算AUC的值,即输出的AUC。

>>> from sklearn.metrics import roc_auc_score
>>> roc_auc_score(y, pred)
0.75

roc_auc_score()和auc()区别:

AUC并不总是ROC曲线下的面积。曲线下面积是某个曲线下的(抽象)区域,因此它比AUROC更通用.对于不平衡类,最好找到精确回忆曲线的AUC。

画ROC曲线

plt.title('ROC')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.plot(fpr, tpr, '--*b', label="ours")
plt.legend()
plt.show()

 

参考文献

sklearn学习:为什么roc_auc_score()和auc()有不同的结果? - HuaBro - 博客园 (cnblogs.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值