Прерывистое сообщение об ошибке с метрикой 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
Максимум