首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用插入符号在随机森林中显式设置ntree和mtry

使用插入符号在随机森林中显式设置ntree和mtry
EN

Stack Overflow用户
提问于 2021-04-09 23:31:56
回答 1查看 76关注 1票数 0

我尝试使用插入符号显式地将树的数量和mtry传递给随机森林算法:

代码语言:javascript
复制
library(caret)
library(randomForest)
repGrid<-expand.grid(.mtry=c(4),.ntree=c(350))
controlRep <- trainControl(method="cv",number = 5)

rfClassifierRep <- train(label~ .,
                      data=overallDataset,
                      method="rf",
                      metric="Accuracy",
                      trControl=controlRep,
                      tuneGrid = repGrid,)

我得到了这个错误:

代码语言:javascript
复制
Error: The tuning parameter grid should have columns mtry

我先试着用更明智的方式:

代码语言:javascript
复制
rfClassifierRep <- train(label~ .,
                      data=overallDataset,
                      method="rf",
                      metric="Accuracy",
                      trControl=controlRep,
                      ntree=350,
                      mtry=4,
                      tuneGrid = repGrid,)

但这会导致一个错误,说明我有太多的超参数。这就是为什么我要做一个1x1的网格。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-09 23:55:42

ntree不能是随机林的tuneGrid的一部分,只能是mtry的一部分(请参阅每个模型here的调优参数的详细目录);您只能通过train传递它。相反,由于您调优了mtry,因此后者不能是train的一部分。

总而言之,这里的正确组合是:

代码语言:javascript
复制
repGrid <- expand.grid(.mtry=c(4))  # no ntree

rfClassifierRep <- train(label~ .,
                      data=overallDataset,
                      method="rf",
                      metric="Accuracy",
                      trControl=controlRep,
                      ntree=350, 
                      # no mtry
                      tuneGrid = repGrid,)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67024039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档