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)2n0n1AUC=∑正样本rank(score)−n1∗(n1+1)2n0∗n1

     

时间复杂度为O(N+M)。

 

 

posted @ 2019-08-01 11:37  胖白白  阅读(313)  评论(0编辑  收藏  举报