首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Python中手工计算AUC

(Area Under the Curve)可以通过以下步骤实现:

  1. 首先,导入必要的库,如numpy和sklearn.metrics。
代码语言:python
代码运行次数:0
复制
import numpy as np
from sklearn.metrics import roc_auc_score
  1. 准备真实标签和预测概率值。假设真实标签为y_true,预测概率值为y_pred。
代码语言:python
代码运行次数:0
复制
y_true = np.array([0, 1, 1, 0, 1])
y_pred = np.array([0.2, 0.6, 0.8, 0.3, 0.9])
  1. 使用numpy.argsort函数根据预测概率值对真实标签进行排序。
代码语言:python
代码运行次数:0
复制
sorted_indices = np.argsort(y_pred)
  1. 根据排序后的真实标签计算正样本的秩次和负样本的秩次。
代码语言:python
代码运行次数:0
复制
positive_ranks = np.sum(y_true[sorted_indices] == 1)
negative_ranks = np.sum(y_true[sorted_indices] == 0)
  1. 计算AUC值。
代码语言:python
代码运行次数:0
复制
auc = (positive_ranks - (positive_ranks * (positive_ranks + 1)) / 2) / (positive_ranks * negative_ranks)
  1. 打印AUC值。
代码语言:python
代码运行次数:0
复制
print("手工计算的AUC值为:", auc)

完整代码如下:

代码语言:python
代码运行次数:0
复制
import numpy as np
from sklearn.metrics import roc_auc_score

y_true = np.array([0, 1, 1, 0, 1])
y_pred = np.array([0.2, 0.6, 0.8, 0.3, 0.9])

sorted_indices = np.argsort(y_pred)
positive_ranks = np.sum(y_true[sorted_indices] == 1)
negative_ranks = np.sum(y_true[sorted_indices] == 0)

auc = (positive_ranks - (positive_ranks * (positive_ranks + 1)) / 2) / (positive_ranks * negative_ranks)

print("手工计算的AUC值为:", auc)

AUC是评估二分类模型性能的常用指标,它代表了ROC曲线下的面积,范围在0到1之间,值越大表示模型性能越好。AUC值为0.5时表示模型性能等同于随机猜测,大于0.5时表示模型优于随机猜测。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6分0秒

软件测试|教你在window系统中安装Python

2分49秒

python开发视频课程5.5判断某个元素是否在序列中

6分1秒

为什么有些浮点数在计算机中无法精确表示?

1分53秒

在Python 3.2中使用OAuth导入失败的问题与解决方案

5分12秒

Python MySQL数据库开发 3 在Mac系统中安装MySQL 学习猿地

4分47秒

Flink 实践教程-入门(10):Python作业的使用

4分47秒

Flink 实践教程:入门(10):Python 作业的使用

8分15秒

99、尚硅谷_总结_djangoueditor添加的数据在模板中关闭转义.wmv

-

四川大山深处藏着神秘“印钞厂”

5分44秒

最强大脑对决4500名顶尖极客!腾讯极客挑战赛冠军郑林楷独家专访

1分36秒

SOLIDWORKS Electrical 2023电气设计解决方案全新升级

24分28秒

GitLab CI/CD系列教程(四):.gitlab-ci.yml的常用关键词介绍与使用

领券