我目前正在尝试使用caretEnsemble包构建堆叠模型,使用随机森林和广义增强模型作为基础模型。但是,在运行caretEnsemble函数后,我一直收到以下错误:
Error in check_caretList_model_types(list_of_models) :
Not yet implemented for multiclass problems
在对这个问题做了一些研究后,我注意到当使用train()函数(已经完成)构建模型时,这个函数效果最好,有时还取决于训练数据的格式。由于这是作业的一部分,我不会发布数据处理代码,但会提供指向它的链接 - LINK
这是我试图在其上运行的代码。
training<-read.csv("training.csv")
control<- trainControl(method="repeatedcv", number=10, repeats=3,
savePredictions = TRUE, classProbs = TRUE)
metric<-"Accuracy"
set.seed(5937)
fit1<-caretList(classe~., data=training, trControl=control, metric=metric,
methodList = c("rf", "gbm"))
fit2<-caretEnsemble(fit1)
你能帮我弄清楚这是否是包装的技术限制,还是我试图组合不兼容的型号?是否有解决方法或者更好的方法来构建堆叠模型?
非常感谢, 卡姆兰。
更新
目前尚无回复,请让我发布更新。我试图通过使用广义的添加模式以手动方式组合这两个模型。模型与早期代码相同,验证集可在此处找到 - LINK:
val<-read.csv("validation.csv")
pred1<- predict(fit1$rf, val)
pred2<-predict(fit1$gbm, val)
predDF<- data.frame(pred1, pred2, classe=val$classe)
fitcomb<-train(classe~., method="gam", data=predDF)
pred3<- predict(fitcomb, predDF)
confusionMatrix(pred3, predDF$classe)
这是我得到的结果: 混淆矩阵和统计
Reference
Prediction
A B C D E
A 742 55 88 60 46
B 304 657 553 543 630
C 0 0 0 0 0
D 0 0 0 0 0
E 0 0 0 0 0
出于某种原因,我的模型只识别数据中的两个类,应该是5.
有人可以帮助我使用这两种方法中的任何一种吗?此外,这是我第一次在这里发布问题 - 如果我能以任何方式提高问题质量,请告诉我。
答案 0 :(得分:0)
错误消息指出:
Error in check_caretList_model_types(list_of_models) :
Not yet implemented for multiclass problems
这正是问题所在。 Github问题#191,对多类模型的支持仍然是开放的。该功能尚未实施。