Відповіді:
Ідеальний прогноктор дає бал AUC-ROC 1, а передбачувач, який робить випадкові здогадки, має бал AUC-ROC 0,5.
Якщо ви отримаєте оцінку 0, що означає, що класифікатор абсолютно неправильний, він прогнозує неправильний вибір у 100% часу. Якщо ви просто змінили прогнозування цього класифікатора на протилежний вибір, він міг би передбачити ідеально і мати бал AUC-ROC 1.
Тому на практиці, якщо ви отримуєте бал AUC-ROC від 0 до 0,5, ви можете помилитися в тому, як ви позначили цілі класифікатора, або у вас поганий алгоритм тренувань. Якщо ви отримаєте бал 0,2, це показує, що дані містять достатньо інформації, щоб отримати бал 0,8, але щось пішло не так.
Вони можуть, якщо система, яку ви аналізуєте, працює нижче рівня шансів. Тривіально, ви можете легко сконструювати класифікатор з 0 AUC, маючи його завжди відповідати протилежно істині.
На практиці, звичайно, ви навчаєте свого класифікатора за деякими даними, тому значення, які є значно меншими за 0,5, зазвичай означають помилку в алгоритмі, мітках даних або виборі даних поїздів / тестів. Наприклад, якщо ви помилково переключили мітки класів у ваших даних поїздів, очікувана AUC складе 1 мінус "справжній" AUC (з урахуванням правильних позначок). AUC також може бути <0,5, якщо ви розділите свої дані на поїзд і тестові розділи таким чином, щоб шаблони, які підлягають класифікації, систематично відрізнялися. Це може статися (наприклад), якщо один клас був більш поширеним у поїзді проти тестового набору, або якщо шаблони в кожному наборі мали систематично різні перехоплення, які ви не виправляли.
Нарешті, це також може трапитися випадковим чином, оскільки ваш класифікатор знаходиться у випадковому рівні в довгостроковій перспективі, але трапилося "не пощастити" у вашому тестовому зразку (тобто отримати ще кілька помилок, ніж успіхи). Але в цьому випадку значення все одно повинні бути відносно близькими до 0,5 (наскільки близько залежить від кількості точок даних).
Мені шкода, але ці відповіді небезпечно неправильні. Ні, ви не можете просто перевернути 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')
Результати
Звичайно, немає можливості класифікатору дізнатися що-небудь із даних, оскільки дані є випадковими. Нижній шанс AUC є, тому що LOOCV створює упереджений, неврівноважений набір тренувань. Однак це не означає, що якщо ви не використовуєте LOOCV, ви в безпеці. Сенс цієї історії полягає в тому, що є багато способів, як результати можуть мати нижчу середню ефективність, навіть якщо в даних немає нічого, і тому ви не повинні гортати прогнози, якщо ви не знаєте, що ви робите. А оскільки у вас нижча середня продуктивність, ви не бачите, що ви робите :)
Ось декілька статей, які торкнулися цієї проблеми, але я впевнений, що й інші
Джамалабаді та ін. 2016 https://onlinelibrary.wiley.com/doi/full/10.1002/hbm.23140
Snoek et al 2019 https://www.ncbi.nlm.nih.gov/pubmed/30268846