,,AUC计算方法与Python实现代码

,,AUC计算方法与Python实现代码

今天边肖给大家分享一个AUC计算方法和Python实现代码,有很好的参考价值。希望对你有帮助。来和边肖一起看看吧。

-AUC计算方法

-AUC的Python实现方式

AUC计算方法

AUC是ROC曲线下的面积,是机器学习对二元分类模型使用的评价指标。AUC反映了模型对样本进行排序的能力。其统计意义是从所有正样本中随机选取一个正样本,从所有负样本中随机选取一个负样本的概率。当前得分使正样本排在负样本之前。

AUC的计算主要以下几种方法:

1.计算ROC曲线下的面积。这是一种比较直接的方法,可以近似计算出ROC曲线每个小梯形的面积。我几乎不用这种方法。

2.从AUC的统计意义计算。在所有的正负样本对中,正负样本的比值就是概率值。

具体的做法是,它也将prob得分从最大到最小排序,然后使最大prob得分对应的样本的秩为n,第二大得分对应的样本的秩为n-1,以此类推。

然后将所有正样本的秩相加,减去两个正样本组合的M-1情况。

我们得到的是有多少阳性样本比阴性样本得分高。

然后除以MN.

公式如下:

AUC的Python实现

通过上述方法2的公式,AUC计算的Python实现如下:

定义calAUC(探针,标签):

f=列表(zip(prob,labels))

rank=[值1的值2,排序后的值2(f,key=lambda x:x[0])]

rank list=[I 1 for I in range(len(rank))if rank[I]==1]

posNum=0

negNum=0

对于范围内的I(透镜(标签)):

if(labels[i]==1):

posNum=1

否则:

negNum=1

auc=0

AUC=(sum(rank list)-(pos num *(pos num 1))/2)/(pos num * neg num)

打印(auc)

返回auc

其中,输入prob是获得的概率值,labels是分类的标签(1,-1)

以上AUC计算方法和Python实现代码都是边肖分享的内容。希望给大家一个参考,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: