5

我一直在用 R 中的 700 万行数据(41 个特征)训练 randomForest 模型。这是一个示例调用:

myModel <- randomForest(响应~., data=mydata, ntree=50, maxnodes=30)

我确实认为只有 50 棵树和 30 个终端节点,“myModel”的内存占用会很小。但它在转储文件中是 65 兆。该对象似乎持有来自训练过程的各种预测、实际和投票数据。

如果我只想要森林怎么办?我想要一个很小的转储文件,稍后我可以加载它以快速做出预测。我觉得森林本身不应该那么大......

任何人都知道如何将这个傻瓜分解成我可以预测未来的东西吗?

4

2 回答 2

1

试图摆脱将答案作为评论发布的习惯......

?randomForest建议不要使用具有大量变量的公式界面...如果您不使用公式界面,结果会有所不同吗?的Value部分?randomForest还告诉你如何关闭一些输出(重要性矩阵、整个森林、邻近矩阵等)。

例如:

myModel <- randomForest(mydata[,!grepl("RESPONSE",names(mydata))],
  mydata$RESPONSE, ntree=50, maxnodes=30, importance=FALSE,
  localImp=FALSE, keep.forest=FALSE, proximity=FALSE, keep.inbag=FALSE)
于 2012-12-03T20:50:25.210 回答
1

您可以利用tuneRFR 中的函数来了解树的数量并缩小大小。

tuneRF(data_train, data_train$Response, stepFactor = 1.2, improve = 0.01, plot = T, trace = T)

用于?tuneRF了解更多关于内部变量的信息。

于 2018-02-01T05:46:00.557 回答