2015-05-29 179 views
2

我目前在R中使用caretEnsemble包来组合在插入符号中训练过的多个模型。我使用caretList函数从下列相同的软件包中获得最终培训型号列表(例如model_list)。如何使用R中的caretEnsemble包预测新数据集?

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) 

ens应用summary告诉我的选择模型(出于model_list),分配给这些选定模型的权重,样本外AUC值所选模型,最后在样本AUC的值为ens

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

我想出来的:

ensPredictions <- predict(ens, newdata = test_data) 

,但它给我一个错误:

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

请提供[最小可重现示例](http://stackoverflow.com/a/5963610/345660) – Zach

回答

1

我会检查测试仪具有的所有功能,首先映入训练集。

相关问题