【问题标题】:GBM and RF ensamble in caret插入符号中的 GBM 和 RF 合奏
【发布时间】:2018-01-09 13:24:48
【问题描述】:

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

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

【问题讨论】:

    标签: r random-forest r-caret gbm


    【解决方案1】:

    错误消息指出:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 2014-07-27
      • 2013-01-28
      • 2019-10-16
      • 2018-06-16
      相关资源
      最近更新 更多