尝试在 R 的插入符号包中获取类概率时出错



我发现了与此类似的问题,但并没有解决我的问题:我将插入符号与ranger方法一起使用来拟合随机森林,然后使用预测来预测我的评估数据。这行得通。但是当我尝试获取预测概率时,我得到以下错误:

[.data.frame(out, , obsLevels, drop = FALSE( 中的错误:未定义 选定的列

代码(示例(

require(caret)
mtcars$carb <- as.factor(mtcars$carb)
tuneGrid <- expand.grid(mtry = c(10), min.node.size = c(1), splitrule = "extratrees")
rf_model<-train(carb~.,data=mtcars,method="ranger",
                trControl=trainControl(method="none")
                , tuneGrid = tuneGrid
)
predict(rf_model, mtcars, type="prob")

我确保碳水化合物是其他地方建议的一个因素。

思潮?

有几个问题。首先,这种方法要求因子的类级别遵循有效约定R 变量名称,因此重命名碳水化合物因子的水平以字母开头是第一步

mtcars$carb <- as.factor(paste0("c",mtcars$carb))

其次,TrainControl 中 classProbs 的默认参数设置为 FALSE 。这应该在您的情况下TRUE

library("caret")
tuneGrid <- expand.grid(mtry = c(10), min.node.size = c(1), splitrule = "extratrees")
rf_model <- train(carb ~ ., data = mtcars, method = "ranger",
              trControl = trainControl(method = "none", classProbs = TRUE),
              tuneGrid = tuneGrid)
classprobs <- predict(rf_model, newdata = mtcars, type = "prob")

最新更新