Educoder 第九关ROC曲线与AUC

题目是计算auc
结合查到的资料写的代码,很多地方我也不理解含义
虽然在平台AC了
但在python运行没有输出auc
不知道什么缘故

import numpy as np

def calAUC(prob, labels):
    '''
    计算AUC并返回
    :param prob: 模型预测样本为Positive的概率列表,类型为ndarray
    :param labels: 样本的真实类别列表,其中1表示Positive,0表示Negtive,类型为ndarray
    :return: AUC,类型为float
    '''

    #********* Begin *********#
    def M(labels):
        return np.sum(labels==1)
    def N(prob):
        return np.sum(labels==0)
    f = list(zip(prob,labels))//list函数:形成列表。zip函数:压缩两个列表为一个。
    rank = [values2 for values1,values2 in sorted(f,key=lambda x:x[0])]  //???不理解
    rankList = [i+1 for i in range(len(rank)) if rank[i]==1] //???如果rank[i]==1则i+1  ???
    auc = 0
    auc = (sum(rankList) - (M(labels)*(M(labels)+1))/2)/(M(labels)*N(labels))
    return auc
    #********* End *********#
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值