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