Wie lässt sich mit dem caretEnsemble-Paket in R ein neuer Datensatz vorhersagen?

Ich benutze geradecaretEnsemble -Paket in R zum Kombinieren mehrerer in Caret geschulter Modelle. Ich habe die Liste der endgültig ausgebildeten Modelle (sagen Siemodel_list) mitcaretList Funktion aus dem gleichen Paket wie folgt.

    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
)

Das von mir bereitgestellte Zugsteuerungsobjekt lautete wie folgt:

    myTrainControl = trainControl(method = "cv", 
                              number = 10, 
                              index=createResample(training_input_data$retinopathy, 10),
                              savePredictions = TRUE, 
                              classProbs = TRUE, 
                              verboseIter = TRUE, 
                              summaryFunction = twoClassSummary)

Jetzt trainiere ich auf dieser Liste von Modellen als:

ens <- caretEnsemble(model_list)

Bewirbt sichsummary aufens sagt mir die ausgewählten Modelle (vonmodel_list), den ausgewählten Modellen zugeordnete Gewichtung, außerhalb der StichprobeAUC Werte für jedes der ausgewählten Modelle und schließlich in-sampleAUC Werte fürens.

etzt möchte ich die Leistung von @ berechnens auf anderen Testdaten (um eine Vorstellung von der Leistung außerhalb der Stichprobe zu erhalten). Wie würde ich es erreichen?

Ich probiere es aus als:

ensPredictions <- predict(ens, newdata = test_data)

aber es gibt mir einen Fehler als:

Error in `[.data.frame`(out, , obsLevels, drop = FALSE) : 
  undefined columns selected

Antworten auf die Frage(2)

Ihre Antwort auf die Frage