1

我想知道如何使用 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

谢谢

4

0 回答 0