我用missRanger
来估算缺失值,因为我有1000个变量,所以花费的时间太长了。我试图使用并行计算,但它并没有使过程更快。下面是代码
library(doParallel)
cores=detectCores()
cl <- makeCluster(cores[1]-1)
registerDoParallel(cl)
library(missRanger)
train[1:lengthvar] <- missRanger(train[1:lengthvar], pmm.k = 3, num.trees = 100)
stopCluster(cl)
字符串
我不知道要在代码中添加什么来使它工作。
3条答案
按热度按时间kqhtkvqz1#
missRanger
基于R -ranger
中的并行随机森林实现。因此,代码已经在所有内核上运行,像doParallel
这样的东西只会让代码变得笨拙。尝试通过
missRanger
的...
参数将相关参数传递给ranger
来加快计算速度,例如:num.trees = 20
或max.depth = 8
个而是
免责声明:我是
missRanger
的作者。xpszyzbs2#
这是多核概念的一个基本示例。这将突出基本概念,而不是着眼于时间问题。通过我的测试运行(对于更大数量的列),非并行版本更快。
字符串
6l7fqoea3#
mice 3.15.0
和更高版本具有提供并行处理的新futuremice()
函数。它可用于通过“rf”方法通过ranger::ranger()
插补缺失数据。