一些提示:
- 即使在普通笔记本电脑上,500k 行和 100 列也不会给加载和准备带来问题。不需要像 spark 这样的大数据工具。Spark 适用于数亿行的情况。
- 良好的随机森林实现
ranger
(如caret
)是完全并行的。核心越多越好。
- 随机森林不能很好地扩展到大数据。为什么?他们的基本想法是汇集很多非常深的树。但是种植深树会消耗大量资源。使用类似的参数
max.depth
有助于num.trees
减少计算时间。不过,它们并不理想。在您的情况下,使用普通笔记本电脑可能 20 分钟ranger
就足够了。(粗略的猜测)。
library(ranger)
n <- 500000
p <- 100
df <- data.frame(matrix(rnorm(n * p), ncol = p))
df$y <- factor(sample(0:1, n, TRUE))
object.size(df) # 400 MB
head(df)
fit <- ranger(y ~ .,
data = df,
num.trees = 500,
max.depth = 8,
probability = TRUE)
fit

使用更高max.depth
的 ,将需要相当多的额外时间。