Сделать AUC метрикой для оптимизации тренировок

У меня есть переменная результата фактора 2 уровней в моем наборе данных

str(as.factor(train2$outcome))
 Factor w/ 2 levels "0","1": 1 1 1 1 2 1 2 1 1 1 ...

Когда я использую функцию поезда с метрикой по умолчанию для оптимизации evrt, все в порядке.

cvCtrl <- trainControl(method="repeatedcv", number=3, repeats=5,classProb = TRUE)
modelFit <- train(as.factor(outcome) ~., data=train2, method="rf", trControl =cvCtrl)

Но я хочу оптимизировать AUC. Поэтому я использую этот код

cvCtrl <- trainControl(method="repeatedcv", number=3, repeats=5, summaryFunction = twoClassSummary,classProb = TRUE)
modelFit <- train(as.factor(outcome) ~., data=train2, method="rf", trControl =cvCtrl, metric="ROC")

И получаю ошибку:

Error in train.default(x, y, weights = w, ...) : 
  final tuning parameters could not be determined

Что я делаю не так?


person Alekseev22    schedule 07.05.2015    source источник


Ответы (1)


Вы видели предупреждение о том, что

At least one of the class levels are not valid R variables names; This may cause errors if class probabilities are generated because the variables names will be converted to ...

Использование 0 и 1 в качестве уровней фактора - плохая идея и источник ошибки.

Максимум

person topepo    schedule 11.05.2015
comment
все еще ищу ответ на это. помогает ли train(metric = 'ROC', trControl = trainControl(summaryFunction = 'ROC'), ...)? - person Dij; 26.07.2019