三种方法:
1. 积分法
1 | auc = 0.0 |
2. 曼 - 惠特尼法
Wilcoxon-Mann-Witney Test 就是测试任意给一个正类样本和一个负类样本,正类样本的 score 有多大的概率大于负类样本的 score
具体来说就是统计一下所有的 \(M \times N\)(\(M\)为正类样本的数目,\(N\)为负类样本的数目)个正负样本对中,有多少个组中的正样本的 score 大于负样本的 score。当二元组中正负样本的 score 相等的时候,按照 0.5 计算。然后除以 \(M \times N\)。实现这个方法的复杂度为\(O(n^2)\)。\(n\) 为样本数(即\(n=M+N\))
\[auc = \frac{\sum pos\_{score} > neg\_{score} + 0.5 \times \sum (pos\_{score} = neg\_{score})}{M \times N} \]
3. 曼 - 惠特尼法加强1
- 首先对 score 从大到小排序,然后令最大 score 对应的 sample 的 rank 为\(n\),第二大 score 对应 sample 的 rank 为\(n-1\),以此类推
- 然后把所有的正类样本的 rank 相加 交错相加
- 再减去\(\frac{M(M+1)}{2}\)
得到的就是所有的样本中 有多少对正类样本的 score 大于负类样本的 score,然后再除以\(M\times N\)。