AUC-ROC가 0-0.5 일 수 있습니까?


답변:


19

완벽한 예측 변수는 AUC-ROC 점수가 1이고 무작위 추측을하는 예측 변수는 AUC-ROC 점수가 0.5입니다.

점수가 0이면 분류 기가 완벽하게 잘못되었음을 의미하며 100 %의 잘못된 선택을 예측하고 있습니다. 이 분류기의 예측을 반대 선택으로 변경 한 경우 완벽하게 예측할 수 있고 AUC-ROC 점수는 1입니다.

실제로 0과 0.5 사이의 AUC-ROC 점수를 받으면 분류기 대상에 레이블을 지정하는 방식에 실수가 있거나 훈련 알고리즘이 잘못되었을 수 있습니다. 0.2 점을 받으면 데이터에 0.8 점을 얻기에 충분한 정보가 포함되어 있지만 무언가 잘못되었음을 나타냅니다.


이 답변은 모델이 과적 합 가능성을 건너 뜁니다. 예를 들어 훈련 데이터에서는 0.8 AUC를, 홀드 아웃 데이터에서는 0.35를 얻습니다.
Sycorax는 Reinstate Monica

1
@Sycorax : 흠, 과적 응이 AUC를 기회 수준에 도달하는 방법 (예측이 단순한 가비지 모델과는 거리가 멀다면)을 어떻게 알 수 있는지는 알 수 있습니다. ?
Ruben van Bergen

1
일부 세트의 순위 가 올바른 것보다 더 떨어질 때마다 AUC가 0.5 미만입니다. 다른 상황에서 과적 합하는 것과 다르지 않습니다.
Sycorax는 Reinstate Monica가

14

분석중인 시스템이 기회 수준 미만으로 수행되는 경우 가능합니다. 사소하게, 당신은 항상 진실과 반대되는 대답을함으로써 AUC가 0 인 분류기를 쉽게 구성 할 수 있습니다.

실제로 분류 기준을 일부 데이터에 대해 학습하므로 0.5보다 훨씬 작은 값은 일반적으로 알고리즘, 데이터 레이블 또는 기차 / 테스트 데이터 선택에 오류가 있음을 나타냅니다. 예를 들어 열차 데이터에서 클래스 레이블을 실수로 전환 한 경우 예상 AUC는 1에서 "true"AUC (올바른 레이블)를 뺀 값입니다. 분류 할 패턴이 체계적으로 다른 방식으로 데이터를 기차 및 테스트 파티션으로 분할하는 경우 AUC도 <0.5가 될 수 있습니다. 예를 들어 기차에서 테스트 세트에 대해 하나의 클래스가 더 일반적이거나 각 세트의 패턴이 잘못 수정 한 체계적으로 다른 인터셉트를 가진 경우에 발생할 수 있습니다.

마지막으로, 분류 기가 장기적으로 우연한 수준이지만 테스트 샘플에서 "불운"(즉, 성공보다 몇 가지 더 많은 오류가 발생)하기 때문에 임의로 발생할 수 있습니다. 그러나이 경우 값은 여전히 ​​상대적으로 0.5에 가까워 야합니다 (데이터 포인트 수에 얼마나 가까운가).


1

죄송하지만이 답변은 위험합니다. 아니요, 데이터를 본 후 AUC를 뒤집을 수는 없습니다. 당신이 주식을 사고 있다고 가정하고, 항상 틀린 것을 샀다고 생각하지만, 자신에게 말했다면, 모델이 예상 한 것과 반대되는 것을 구입하면 돈을 벌 수 있기 때문입니다.

문제는 결과를 편향시키고 일관되게 평균 이하의 성능을 얻는 방법이 많고 명백하지 않은 이유가 있다는 것입니다. 이제 AUC를 뒤집 으면 데이터에 신호가 없었지만 세계 최고의 모델러라고 생각할 수 있습니다.

여기 시뮬레이션 예제가 있습니다. 예측 변수는 대상과 관계가없는 임의의 변수 일뿐입니다. 또한 평균 AUC는 약 0.3입니다.

library(MLmetrics)
aucs <- list()
for (sim in seq_len(100)){
  n <- 100
  df <- data.frame(x=rnorm(n),
               y=c(rep(0, n/2), rep(1, n/2)))

  predictions <- list()
  for(i in seq_len(n)){
    train <- df[-i,]
    test <- df[i,]

    glm_fit <- glm(y ~ x, family = 'binomial', data = train)
    predictions[[i]] <- predict(glm_fit, newdata = test, type = 'response')
  }
  predictions <- unlist(predictions)
  aucs[[sim]] <- MLmetrics::AUC(predictions, df$y)
}
aucs <- unlist(aucs)
plot(aucs); abline(h=mean(aucs), col='red')

결과

여기에 이미지 설명을 입력하십시오

물론 데이터가 무작위이기 때문에 분류자가 데이터에서 아무것도 배울 수있는 방법은 없습니다. LOOCV가 편향된 불균형 훈련 세트를 생성하기 때문에 AUC가 다음과 같습니다. 그러나 이것이 LOOCV를 사용하지 않아도 안전하다는 것을 의미하지는 않습니다. 이 이야기의 요점은 데이터에 아무 것도 없더라도 결과가 평균 성능을 낮출 수있는 방법과 방법이 많이 있다는 것입니다. 따라서 자신이하는 일을 알지 못하면 예측을 뒤집어서는 안됩니다. 그리고 평균 성능이 낮으므로 수행중인 작업을 볼 수 없습니다 :)

다음은이 문제를 다루는 몇 가지 논문입니다. 그러나 다른 사람들도 그랬습니다.

자 말라 바디 외 2016 년 https://onlinelibrary.wiley.com/doi/full/10.1002/hbm.23140

Snoek et al 2019 https://www.ncbi.nlm.nih.gov/pubmed/30268846


이것이 정답입니다!
tdc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.