当 ranger 不是一个选项时,使插入符训练 rf 更快

Making caret train rf faster when ranger is not an option

我正在尝试 运行 代码使用旧版本 R 的网站,不接受 ranger 作为库。我必须使用 caret 包。我正在尝试在我的火车数据框中处理大约 800,000 行,这是我使用的代码

control <- trainControl(method = 'repeatedcv',
                        number = 3,
                        repeats = 1,
                        search = 'grid')

tunegrid <- expand.grid(.mtry = c(sqrt(ncol(train_1))))

fit <- train(value~.,
             data = train_1,
             method = 'rf',
             ntree = 73,
             tuneGrid = tunegrid,
             trControl = control)

查看以前的帖子,我尝试调整我的控制参数,有什么方法可以使模型 运行 更快?我是否可以指定一个特定的设置,以便它只生成一个带有我设置的参数的模型,而不是尝试多个选项?

这是我优化过的 ranger 代码,目前模型准确

fit <- ranger(value ~ ., 
              data = train_1, 
              num.trees = 73,
              max.depth = 35,mtry = 7,importance='impurity',splitrule = "extratrees")

非常感谢您的宝贵时间

当您指定 method='rf' 时,caret 正在使用 randomForest 包构建模型。如果您不想执行 caret 有用的所有 cross-validation,只需直接使用 randomForest 包构建您的模型。例如

library(randomForest)
fit <- randomForest(value ~ ., data=train_1)

您可以为 ntreemtry 等指定值

请注意,randomForest 包对于大型数据集来说速度很慢(或者根本不起作用)。如果 ranger 不可用,您是否尝试过 Rborist 包?