auc计算逻辑

实现auc,python
# -*- coding utf-8 -*-
# @Author:
# @Date: 2021/3/3 11:07 上午
from sklearn.metrics import roc_auc_score
import time
def auc(y_true, y_score):
assert len(y_true) == len(y_score)
m = sum(y_true)
n = len(y_true) - m
bins = 200
bin_width = 1 / bins
p_bins = [0 for _ in range(bins)]
n_bins = [0 for _ in range(bins)]
# 分桶
for i in range(m + n):
index = int(y_score[i] / bin_width)
if y_true[i] == 1:
p_bins[index] += 1
else:
n_bins[index] += 1
accumulated_n = 0
pair = 0
for i in range(bins):
pair += p_bins[i] * accumulated_n + p_bins[i] * n_bins[i] * 0.5
# 滞后一位
accumulated_n += n_bins[i]
return pair / (m * n)
label = [1, 0, 1, 1, 0, 1, 0, 0, 1]
score = [0.5, 0.

该博客展示了如何在Python和Java中实现AUC(Area Under the Curve)的计算,用于评估分类模型的性能。提供了详细的代码示例,包括使用sklearn库的roc_auc_score函数以及自定义的AUC计算函数,适用于大数据量的情况。
最低0.47元/天 解锁文章
664

被折叠的 条评论
为什么被折叠?



