Как рассчитать AUC под двумя ClassSummary? - PullRequest
0 голосов
/ 15 октября 2019

вот мой код:

train <- data.frame(***contain label, feature group 1 and feature group 2***)

formula <- label ~ features group 1

ctrl <- trainControl(method = "repeatedcv",
                     number = 10,
                     repeats = 5,
                     summaryFunction = twoClassSummary,
                     classProbs = T)

fit <- train(formula,
             data = train, 
             method = "glm", 
             metric = "ROC",
             trControl = ctrl,
             na.action = na.omit)

pred <- predict(fit, train)

мой вопрос: как рассчитать AUC pred?

Я пробовал prSummary, ROCR и pROC, не работалМне кажется, что я не могу рассчитать AUC, когда оба obs и pred абсолютно одинаковы (по уровням).

Мне интересно, могу ли я тренироваться с AUC в качестве метрики, как я могу 'я не могу показать AUC?

ps

> levels(train$label)
[1] "classA" "classB"
> levels(as.factor(pred))
[1] "classA" "classB"

Кстати, я делаю следующее: подбираю несколько алгоритмов с помощью каретки и ранжирую их по AUC, тогда я могу выбрать оптимальный (основанный на AUC).

* воспроизводимый пример:

набор поездов: радужная оболочка

функция g1: первые 2 функции

функция g2: последние 2 функции

семя: 123 *

1 Ответ

0 голосов
/ 15 октября 2019

это может быть возможным ответом, но я не уверен, правильно ли это, скажите мне, если я не прав.

response = as.factor(as.numeric(train$label))

predictor = as.vector(as.numeric(pred))

library(pROC)

result = as.numeric(roc(response, predictor)$auc)

Кстати, поскольку pROC работает очень медленно, кто-нибудь может мне помочь преобразовать этопод пакетом РПЦЗ? спасибо большое:)

...