我在具有 8 个数字列(预测变量)和 1 个因子(结果)的数据集上运行随机森林。数据集中有 120 万行。当我做:randomForest(outcome.f ~ a + b + c + d + e + f + g + h,data=mdata))
,我收到一个错误:
"Error in randomForest.default(m, y, ...) :
long vectors (argument 26) are not supported in .Fortran"
有什么办法可以防止这种情况吗?我不明白为什么包(显然)试图分配长度为 2^31-1 的向量。我使用的是 Mac OS X 10.9.2 和 Intel Core i7(以防架构很重要)。
session 信息
R version 3.1.0 (2014-04-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] randomForest_4.6-7
loaded via a namespace (and not attached):
[1] tools_3.1.0
最佳答案
永远不要在训练集上运行太多行的随机森林。
rf1 <- randomForest(Outcome ~ ., train[1:600000,], ntree=500, norm.votes=FALSE, do.trace=10,importance=TRUE)
rf2 <- randomForest(Outcome ~ ., train[600001:1200000,], ntree=500, norm.votes=FALSE, do.trace=10,importance=TRUE)
rf.combined <- combine(rf1,rf2)
如果仍然出错,尝试减小训练集的大小(例如 500000 或 100000),分成 rf1、rf2 和 rf3,然后将它们组合起来。希望能帮助到你。
关于r - 随机森林和长向量的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24195805/