【发布时间】:2019-06-16 18:36:08
【问题描述】:
我想利用手头的 20 个 CPU 内核在 R 中训练随机森林。我通常使用 randomForest 包的代码是这样的:
rf = randomForest(Pred~., train, ntree=100, importance=TRUE)
rf
因此,我使用具有 11 个级别的因子 Pred 和具有 74 个数字特征和约 84k 观察值的数据框 train 训练了一个包含 100 棵树的森林。
我的想法是通过在我的代码中使用插入符号来加快这一速度(源自example):
cluster <- makeCluster(19)
registerDoParallel(cluster)
trainctrl <- trainControl(method="none", number=1, allowParallel=TRUE)
fit <- train(Driver~., train, method="parRF", trControl=trainctrl, ntree=100)
stopCluster(cluster)
registerDoSEQ()
fit
我将示例中的method=cv 替换为method=none,因为我确实想在整个训练集上进行训练(请参阅documentation)。但是我没有从fit 得到准确度,fit$results 是空的。如果我设置method=oob,那么mtry 的优化就完成了,这也给了我准确度。
有没有一种方法可以简单地使用插入符号并行运行第一个代码 sn-p 而无需任何超参数优化?
【问题讨论】:
-
我建议使用
ranger包。开箱即用。method = "ranger"插入符号。 -
感谢您的提示,乍一看似乎很有希望。我会调查的。
标签: r parallel-processing random-forest r-caret