Прерывистое сообщение об ошибке с метрикой ROC для rfe в карете

Я использую rfe in caret для выбора объектов на основе метрики ROC из twoClassSummary для модели логистической регрессии, созданной из несбалансированного набора данных (приблизительно 25:1). Чаще всего я получаю сообщение об ошибке. Иногда, однако, я не делаю.

В двух случаях, когда код выполнялся без ошибок (что дает правдоподобный результат), я сразу же снова выполнил ту же самую строку rfe, и это сообщение об ошибке не сработало:

Error in { : task 1 failed - "undefined columns selected"

(Обратите внимание, что номер задачи также может варьироваться до 4.)

myLRFuncs <- lrFuncs
myLRFuncs$summary <- twoClassSummary
rfe.ctrl <- rfeControl(functions = myLRFuncs,
                       method = "cv",
                       number = 5,
                       verbose = TRUE)
train.ctrl <- trainControl(method="none",
                           classProbs=TRUE,
                           summaryFunction=twoClassSummary,
                           verbose=TRUE)
glm_rfe_ROC <- rfe(x=train[,-c("outcome")],y=train$outcome,
                   sizes=c(1:5, 10, 15, 20, 25),
                   rfeControl=rfe.ctrl,
                   method="glm",
                   metric="ROC",
                   trControl=train.ctrl)

Я знаю, что мог бы использовать регрессию с использованием лассо или градиента, и поэтому избегать rfe, но я планирую использовать этот подход для широкого спектра дополнительных алгоритмов, поэтому очень хотел бы, чтобы это работало надежно.

1 ответ

Эта ошибка, по-видимому, связана с тем, как вы устанавливаете свои предикторы:

> train <- data.frame(outcome = 1:10, x1 = 1:10, x2 = 1:10)
> train[,-c("outcome")]
Error in -c("outcome") : invalid argument to unary operator
> train(x = train[,-c("outcome")], y = train$outcome)
Error in -c("outcome") : invalid argument to unary operator

Максимум

Другие вопросы по тегам