最近计算了搜索排序的auc指标,记录一下~
AUC很大一个好处是其对正负样本比例不敏感
AUC的三种定义:
- AUC:一个正例,一个负例,预测正样本为正的概率值比预测负样本为正的概率值还要大的可能性。
- 从一堆0和1中,把1预测为1的概率比把0预测为1的概率大的概率。
- 百度百科:随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。
比较而言,第二个定义更好理解一些。
具体算法看下知乎的答案吧
如何理解机器学习和统计中的AUC? 简单理解计算方式:将M+N个样本按照概率由大到小排序后,对于任意的一个正样本,累加比它概率小的负样本的个数,然后求和,除以M*N,即为AUC
Wilcoxon-Mann-Witney
auc和Wilcoxon-Mann-Witney是等价的,而Wilcoxon-Mann-Witney Test就是测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。具体的计算方式就是
- 统计一下所有的 M×N(M为正类样本的数目,N为负类样本的数目)个正负样本对中,有多少个组中的正样本的score大于负样本的score。当二元组中正负样本的 score相等的时候,按照0.5计算。然后除以MN。时间复杂度O(MN)
我们上面给出的auc的计算公式可以看做是Wilcoxon-Mann-Witney Test的简化。
实际计算要考虑特殊情况即概率相同的情况,原文称“平列”
AUC推荐系统遇上深度学习(九)–评价指标AUC原理及实践