Calculate AUC in R?

前端 未结 10 1265
感动是毒
感动是毒 2020-12-07 09:45

Given a vector of scores and a vector of actual class labels, how do you calculate a single-number AUC metric for a binary classifier in the R language or in simple English?

10条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-07 10:08

    Currently top voted answer is incorrect, because it disregards ties. When positive and negative scores are equal, then AUC should be 0.5. Below is corrected example.

    computeAUC <- function(pos.scores, neg.scores, n_sample=100000) {
      # Args:
      #   pos.scores: scores of positive observations
      #   neg.scores: scores of negative observations
      #   n_samples : number of samples to approximate AUC
    
      pos.sample <- sample(pos.scores, n_sample, replace=T)
      neg.sample <- sample(neg.scores, n_sample, replace=T)
      mean(1.0*(pos.sample > neg.sample) + 0.5*(pos.sample==neg.sample))
    }
    

提交回复
热议问题