大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
AUC:随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。
开始抽样:
在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即,一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数。
计算:
(一)
2个正样本:C,D
2个负样本:A,B
样本对:(C,A) (C,B) (D,A) (D,B)
在(C,A)中,正样本的概率大于负样本的概率,记为1
在(C,B)中,正样本概率小于负样本概率,记为0
AUC=(1+1+1+0)/4=0.75
当出现概率一样的情况:
相等概率得分的样本,无论正负,谁在前,谁在后无所谓。这里计算概率是否正大于负既不能放1,又不甘放0,要打折的,取他们排序的平均数
注意看排序:从小到大
举例:对于B来讲,rank为6
对于C,D,E,F来讲,rank=(2+3+4+5)/4
先放公式,接下来讲为什么公式这样算:
参考上面的图:
【1】对于rank最高(概率最高)的A来说,其他所有样本都要甘拜下风,A在任何样本条件下与他们概率相比都要得1的,也就是这时有6(也即7-1,要减去自己)种胜出的可能
【2】对于rank排名第二的B来讲,除A之外的样本都要在B面前输掉的,这时产生了5(也即6-1)种胜出的可能
对于CDEF来讲,胜出可能都是(2+3+4+5)/4
【3】但是,
之前有定义过只能是正样本与负样本之间相比
对于A,要减去除A自己之外的负样本个数,也即3
对于B,要减去2
在【1】,【2】中,共减了4次1,也即正样本个数4
总的(正,负)有3 * 4种可能
【4】将公式换为更大的数字:
● 对预测概率从高到低排序
● 对每一个概率值设一个rank值(最高的概率的rank为n,第二高的为n-1)
● rank实际上代表了该score(预测概率)超过的样本的数目
为了求的组合中正样本的score值大于负样本,如果所有的正样本score值都是大于负样本的,那么第一位与任意的进行组合score值都要大,我们取它的rank值为n,但是n-1中有M-1是正样例和正样例的组合这种是不在统计范围内的(为计算方便我们取n组,相应的不符合的有M个),所以要减掉,那么同理排在第二位的n-1,会有M-1个是不满足的,依次类推,累加求和公式,故得到后面的公式M*(M+1)/2,我们可以验证在正样本score都大于负样本的假设下,AUC的值为1
● 有M*N种可能啦,除总数
在这里一定要贴上原作者大神文章,我只是做了一些理解上举例的算法补充,原作者理解的确更透彻一些
https://blog.csdn.net/lieyingkub99/article/details/81266664
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179406.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...