今天边肖给大家分享一个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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。