Я рассчитываю AUC модели в R. Модель обучена предсказывать двухуровневый фактор (хороший/плохой). Он применялся к данным, имеющим трехуровневый результат (хороший/плохой/отсутствующий). Я в порядке с подсчетом очков. Я получаю вероятность на основе набора предикторов для каждого наблюдения.
Я не понимаю, что происходит, когда я вычисляю AUC с использованием roc(data$label, data$score)
, потому что теперь roc$label
имеет 3 уровня (хорошо/плохо/отсутствует), но оценка была обучена на данных, которые имели только 2 уровня (хорошо/плохо). Новый уровень игнорируется? Должен ли я вручную исключить все такие наблюдения из данных, чтобы получить точную меру AUC?
data <- structure(list(label = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L), .Label = c("missing",
"good", "bad"), class = "factor"), score = c(0.151147571051044,
0.0411329810171418, 0.0688491931089625, 0.0457818202643564, 0.0411038297454905,
0.0652004019004794, 0.105964115208592, 0.0538514549969684, 0.0415476305130247,
0.0533831523731155, 0.0639788335617257, 0.0434341986489527, 0.0520826001358534,
0.0642210548642832, 0.0536219837901353, 0.0415821872079014, 0.0416555537422,
0.0491937562992912, 0.0469082976746886, 0.0538194884632293)), row.names = c(NA,
-20L), class = c("tbl_df", "tbl", "data.frame"))
roc(data$label, data$score)