1.什么是AUC?
2.如何计算AUC?
方法一
在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即,一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数。


这里第一个条件应该为P(正样本)>P(负样本)。
举例:

假设有4条样本。2个正样本,2个负样本,那么M*N=4。即总共有4个样本对。分别是:
(D,B),(D,A),(C,B),(C,A)。
在(D,B)样本对中,正样本D预测的概率大于负样本B预测的概率(也就是D的得分比B高),记为1
同理,对于(C,B)。正样本C预测的概率小于负样本C预测的概率,记为0.
最后可以算得,总共有3个符合正样本得分高于负样本得分,故最后的AUC为 1 + 1 + 1 + 0 4 = 0.75 \frac{1+1+1+0}{4}=0.75 41+1+1+0=0.75。
在这个案例里,没有出现得分一致的情况,假如出现得分一致的时候,例如:

同样本是4个样本对,对于样本对(C,B)其I值为0.5。最后的AUC为 1 + 1 + 1 + 0.5 4 = 0.875 \frac{1+1+1+0.5}{4}=0.875 41+1+1+0.5=0.875。
方法二

这个公式看起来有点吓人,其实就是先对预测概率进行排序,然后对正样本的序号相加,减去后面的常数项,最后除以M*N。
r a n k i n s i rank_{ins_i} rankinsi:代表第i条样本的序号。(概率得分从小到大排,排在第rank个位置)。
∑ \sum ∑ 代表对属于正样本的序号加和。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175935.html原文链接:https://javaforall.net
