11

我们正在尝试在一个相当大的数据集(约 1.4 亿行)上使用 gbm 包,但我们遇到了 R 的内存需求问题。

我们尝试将“gbm”和“bigmemory”包组合起来,但没有成功,我们的下一个想法是修改 C++ 源代码以从我们存储数据集的本地数据库中提取数据。

因此,我们想知道是否有更合适或众所周知的做法来更改 gbm 的 C++ 代码中的分配。有没有人尝试过类似的东西?

4

2 回答 2

3

我不熟悉 gbm 包,但如果它适用于某种数据帧或向量,您可以使用ff 包

Quote: ff 包提供了存储在磁盘上的数据结构,但它们的行为(几乎)就好像它们在 RAM 中一样,通过透明地映射主内存中的一个部分(页面大小)......

于 2012-10-24T21:55:42.287 回答
2

在 CRAN 上,您可以获得每个包的未编译版本,其中 C 代码仍在文本文件中,这里是 gbm 包源的链接:http: //cran.cnr.berkeley.edu/src/contrib/gbm_1。 6-3.2.tar.gz。提取包,更改 C 代码并使用 R CMD INSTALL 命令自行编译,然后您可以使用更改的代码在 R 中加载包。

于 2012-09-28T12:35:37.087 回答