ROC/AUC以及相关知识点
参考博文,特别的好!!!:https://www.jianshu.com/p/82903edb58dc
AUC的计算:
-
法1:AUC为ROC曲线下的面积,那我们直接计算面积可得。面积为一个个小的梯形面积(曲线)之和。计算的精度与阈值的精度有关。
-
法2:根据AUC的物理意义,我们计算正样本预测结果大于负样本预测结果的概率。取n1*n0(n1为正样本数,n0为负样本数)个二元组,比较score(预测结果),最后得到AUC。时间复杂度为O(N*M)。
- 取n1*n0(n1为正样本数,n0为负样本数)个二元组,比较score,即每取一个正样本,再取一个负样本,对他们的预测结果(LR的预测结果是概率)进行比较,比如取正样本a,预测其为正样本的概率是0.8,负样本b,预测其为负样本的概率是0.3, 0.8>0.3,这一组的:正样本预测结果大于负样本预测结果的概率就是1。
-
法3:我们首先把所有样本按照score排序,依次用rank表示他们,如最大score的样本,rank=n (n=n0+n1,其中n0为负样本个数,n1为正样本个数),其次为n-1。那么对于正样本中rank最大的样本,rank_max,有n1-1个其他正样本比他score小,那么就有(rank_max-1)-(n1-1)个负样本比他score小。其次为(rank_second-1)-(n1-2)。最后我们得到正样本大于负样本的概率为
AUC=∑正样本rank(score)−n1∗(n1+1)2n0∗n1AUC=∑正样本rank(score)−n1∗(n1+1)2n0∗n1
时间复杂度为O(N+M)。