曾经面试的时候被问到过这么一个问题,怎么向一个没有任何计算机、数学、统计等基础的人介绍下什么是AUC,当时我败北了。不过后来我有一天顿悟了,为了检验我的顿悟是否有效,特此一答。
我给出的答案是 AUC是指 随机给定一个正样本和一个负样本,分类器输出的正样本的概率 比 分类器出去负样本的概率 大的可能性。(这里要感谢下 @付笑晗大兄弟的严谨)。
详细解释如下:
随机抽取一个样本, 对应每一潜在可能值X都对应有一个判定位正样本的概率P。
对一批已知正负的样本集合进行分类,
按概率从高到矮排个降序, 对于正样本中概率最高的,排序为rank_1, 比它概率小的有M-1个正样本(M为正样本个数), (rank_1 - M) 个负样本。
正样本概率第二高的, 排序为rank_2, 比它概率小的有M-2个正样本,(rank_2 - M + 1) 个 负样本。
以此类推
正样本中概率最小的, 排序为rank_M,比它概率小的有0个正样本,rank_M - 1 个负样本。
总共有MxN个正负样本对(N为负样本个数)。把所有比较中 正样本概率大于负样本概率 的例子都算上, 得到公式(rank_1 - M + rank_2 - M + 1 .... + rank_M - 1) / (MxN) 就是正样本概率大于负样本概率的可能性了。 化简后(因为后面是个等差数列)得:
这就是传说中的AUC公式。这只是用于理解,具体计算时候需要考虑rank平列的情况