пользовательская метрика с использованием пакета ROCR в каретке

вот минимальный пример моей проблемы. Я хочу использовать отзыв в качестве показателя производительности в каретке.

library(caret)
set.seed(1234)

x <- matrix(rnorm(10),nrow=5,ncol=2 )
y <- factor(c("y","n","y","y","n"))


my.metric <- function (data,
                   lev = NULL,
                   model = NULL) {
  out <- ROCR::performance(ROCR::prediction(data$pred,       as.numeric(data$obs)-1,"rec"))
  names(out) <- "REC"
  out
 }

 myControl <- trainControl(summaryFunction = my.metric, method="repeatedcv", number=10, repeats=2)

 fit <- train(y=y,x=x, metric = "REC",method="gbm", trControl = myControl)

однако я получаю эту ошибку

 Error in ROCR::prediction(data$pred, as.numeric(data$obs) - 1, "rec") : 
 Format of predictions is invalid.

person spore234    schedule 14.07.2015    source источник


Ответы (1)


Я давно не использовал этот пакет, но, основываясь на примере в ?prediction, вам нужно передать вероятности класса (и train не генерирует их, если вы не используете опцию classProbs = TRUE в trainControl) для аргумента predictions. Сделав это, используйте соответствующий столбец data в качестве входных данных для функции prediction.

Кроме того, вам следует прочитать статью по этому вопросу, потому что я думаю, вам нужен дополнительный звонок performance, чтобы получить отзыв.

Максимум

person topepo    schedule 15.07.2015
comment
Я добавил classProbs = TRUE и все равно получаю эту ошибку - person spore234; 15.07.2015