我想知道如何使用 caret 包构建 Ensembl Stacking R 模型。在这个模型中交叉验证函数应该是locv 在 trainControl 中需要手动添加的索引参数。
目前,我尝试了这个,但我得到了如下错误。
Error: Stopping
In addition: Warning messages:
1: model fit failed for Subjectdead: cp=0.08824 Error in omnibus.balancing(formula, data, subset, na.action, N, p, method = "rose", :
The response variable has only one class.
2: model fit failed for Subjectsurvived: cp=0.08824 Error in omnibus.balancing(formula, data, subset, na.action, N, p, method = "rose", :
The response variable has only one class.
3: In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
There were missing values in resampled performance measures.
像这样的代码
# Stacking Algorithms
subs <- unique(train_set$classes)
model_these <- vector(mode = "list", length = length(subs))
for(i in seq_along(subs))
model_these[[i]] <- which(train_set$classes != subs[i])
names(model_these) <- paste0("Subject", subs)
control <- trainControl(sampling="rose",method="loocv", index=model_these, savePredictions=TRUE, classProbs=TRUE, summaryFunction = twoClassSummary)
algorithmList <- c('rpart', 'knn', 'nb')
set.seed(seed)
stack_models <- caretList(classes~., data=train_set, metric="ROC", trControl=control, methodList=algorithmList)
数据集:https ://archive.ics.uci.edu/ml/datasets/forest+fires
谢谢