如何使用R中的caretEnsemble包预测新数据集?

时间:2015-05-29 10:15:22

标签: r prediction r-caret

我目前在R中使用caretEnsemble包来组合在插入符号中训练的多个模型。我使用model_list函数从同一个包中得到了最终训练模型列表(比如说caretList)。

    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
)

我提供的列车控制对象如下:

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

现在我在这些模型列表上进行培训:

ens <- caretEnsemble(model_list)

summary上应用ens会告诉我所选模型(model_list之外),分配给这些所选模型的权重,每个模型的样本外AUC值选定的模型,最后是AUC的样本ens值。

现在我想计算ens对其他测试数据的性能(以获得有关样本外性能的想法)。我将如何实现它?

我正在尝试:

ensPredictions <- predict(ens, newdata = test_data)

但它给了我一个错误:

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

0 个答案:

没有答案