¿Cómo predecir en un nuevo conjunto de datos usando el paquete caretEnsemble en R?
Actualmente estoy usandocaretEnsemble
paquete en R para combinar múltiples modelos entrenados en caret. Tengo la lista de modelos finales entrenados (digamosmodel_list
) utilizandocaretList
funcionar desde el mismo paquete de la siguiente manera.
model_list <- caretList(
x = input_predictors,
y = input_labels,
metric = 'Accuracy',
tuneList = list(
randomForestModel = caretModelSpec(method='rf',
tuneLength=1,
preProcess=c('BoxCox', 'center', 'scale')),
ldaModel = caretModelSpec(method='lda',
tuneLength=1,
preProcess=c('BoxCox', 'center', 'scale')),
logisticRegressionModel = caretModelSpec(method='glm',
tuneLength=1,
preProcess=c('BoxCox', 'center', 'scale'))
),
trControl = myTrainControl
)
El objeto de control del tren que proporcioné fue el siguiente:
myTrainControl = trainControl(method = "cv",
number = 10,
index=createResample(training_input_data$retinopathy, 10),
savePredictions = TRUE,
classProbs = TRUE,
verboseIter = TRUE,
summaryFunction = twoClassSummary)
Ahora estoy entrenando en esa lista de modelos como:
ens <- caretEnsemble(model_list)
Aplicandosummary
enens
me dice los modelos seleccionados (demodel_list
), peso asignado a esos modelos seleccionados, fuera de muestraAUC
valores para cada uno de los modelos seleccionados, y finalmente en la muestraAUC
valores paraens
.
Ahora quiero calcular el rendimiento deens
en otros datos de prueba (para tener una idea sobre el rendimiento fuera de la muestra). ¿Cómo lo lograría?
Lo estoy probando como:
ensPredictions <- predict(ens, newdata = test_data)
pero me está dando un error como:
Error in `[.data.frame`(out, , obsLevels, drop = FALSE) :
undefined columns selected