【发布时间】:2013-12-28 17:01:27
【问题描述】:
我正在处理一个大型数据集(41,000 个观察值和 22 个预测变量)并尝试使用以下代码拟合随机森林模型:
模型
我遇到以下错误:
Error: cannot allocate vector of size 12.7 Gb
In addition: Warning messages:
1: In matrix(0, n, n) :
Reached total allocation of 6019Mb: see help(memory.size)
2: In matrix(0, n, n) :
Reached total allocation of 6019Mb: see help(memory.size)
3: In matrix(0, n, n) :
Reached total allocation of 6019Mb: see help(memory.size)
4: In matrix(0, n, n) :
Reached total allocation of 6019Mb: see help(memory.size)
我在 R 帮助中阅读了一些关于内存限制和本网站的内容,我认为我需要购买 12+ GB 的 RAM,因为我的 memoryLimit 已经设置为大约 6GB 的 RAM(我的计算机只有 6 GB内存)。但首先我想再次确认这是唯一的解决方案。我正在运行带有 64 位处理器和 6GB RAM 的 Windows 7。这是 R 会话信息:
sessionInfo()
R version 2.15.3 (2013-03-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
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_2.15.3
有什么建议吗?
【问题讨论】:
-
由于 n 相当大,如果您智能地交叉验证,您也许可以在许多可管理的数据块上进行训练和测试,而不会出现内存溢出。
-
这种情况下的问题几乎可以肯定是您要求的 41000 x 41000 邻近矩阵,而不是森林本身。我认为,您应该能够以相对较少的麻烦在该大小的数据上运行
randomForest。但是接近矩阵的实用性可能需要它建立在整个数据上。那么,您真的需要接近度吗...? -
谢谢!我认为你是对的,当我消除接近时它会起作用!