我们正试图在一个相当大的数据集(大约1.4亿行)上使用gbm包进行实验,我们遇到了R的内存需求问题。
我们已经尝试组合包'gbm‘和'bigmemory’,但没有成功,我们的下一个想法是修改C++源代码,从我们存储数据集的本地数据库中提取数据。
因此,我们想知道是否有更合适的或众所周知的做法来改变gbm的C++代码中的分配。有没有人尝试过类似的东西?
发布于 2012-10-25 05:55:42
我不熟悉gbm包,但是如果它可以处理数据帧或某种向量,您可以使用ff package。
引用: ff包提供的数据结构存储在磁盘上,但通过透明地仅映射主内存中的一个部分(pagesize),它们的行为(几乎)就像是在RAM中一样……
发布于 2012-09-28 20:35:37
在CRAN上,你可以得到每个包的未编译版本,其中的C代码仍然在文本文件中,这里是到gbm:http://cran.cnr.berkeley.edu/src/contrib/gbm_1.6-3.2.tar.gz包源的链接。解压软件包,更改C代码,并使用load INSTALL命令自己编译它,然后您可以使用更改后的代码在R中加载软件包。
https://stackoverflow.com/questions/11687316
复制相似问题