插入符号

时间:2017-08-02 10:51:06

标签: r random-forest r-caret gbm

我目前正在尝试使用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.

有人可以帮助我使用这两种方法中的任何一种吗?此外,这是我第一次在这里发布问题 - 如果我能以任何方式提高问题质量,请告诉我。

1 个答案:

答案 0 :(得分:0)

错误消息指出:

Error in check_caretList_model_types(list_of_models) : 
Not yet implemented for multiclass problems

这正是问题所在。 Github问题#191,对多类模型的支持仍然是开放的。该功能尚未实施。