Я использовал пакет caTools в R, чтобы получить AUC в R. Только теперь я узнал, что он возвращает ту же AUC, когда вероятности перевернуты. Это не совсем правильно (см. Пример ниже). Есть ли какая-то теоретическая причина, когда это имеет смысл?неправильный AUC при использовании caTools в R
library(caTools)
p <- runif(100)
y <- rep(0,100)
y[p>0.5] <- 1
caTools::colAUC(p,y)
# [,1]
#0 vs. 1 1
caTools::colAUC(1-p,y)
# [,1]
#0 vs. 1 1
При использовании пакета ROCR результаты выглядят так, как ожидалось.
library(ROCR)
pred.rocr <- ROCR::prediction(p, y)
auc.perf <- ROCR::performance(pred.rocr, measure = "auc")
unlist([email protected])
#[1] 1
pred.rocr <- ROCR::prediction(1-p, y)
auc.perf <- ROCR::performance(pred.rocr, measure = "auc")
unlist([email protected])
#[1] 0
Буду признателен за любые предложения, спасибо!
благодарит за ответ. В документации также упоминается: «Возвращенная AUC всегда больше 0,5, что эквивалентно тестированию для каждой функции colAUC (x, y) и colAUC (-x, y) и возвращает значение более крупного». Не читал это достаточно тщательно. –