【携程】求ROC-AUC

ROC-AUC即求ROC曲线下的面积

输入第一行:样本数N
2——N+1行: 类别,预测值
输出:ROC-AUC值,保留两位小数

思路
ROC-AUC怎么计算呢。
一句话说明AUC的本质和计算规则:

AUC:一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。
所以根据定义:我们最直观的有两种计算AUC的方法
1:绘制ROC曲线,ROC曲线下面的面积就是AUC的值
2:假设总共有(m+n)个样本,其中正样本m个,负样本n个,总共有m*n个样本对,计数,正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为1,累加计数,然后除以(m*n)就是AUC的值

第二种编程是很好实现的。
如下:

N = int(input())
cls1 = []
cls2 = []

for i in range(N):
    cls, pred = list(map(float, input().split()))
    if int(cls) == 1:
        cls1.append(pred)
    else:
        cls2.append(pred)
if not cls2 or not cls1:
    print(0)
if N < 2:
    print(0)

num2 = len(cls2)
prob = 0
for item2 in cls2:
    count = 0
    for item1 in cls1:
        if item1 >= item2:
            count += 1
    prob += count
result = int(prob*100/(len(cls1)*len(cls2)))
result = round(result/100, 2)
print(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值