磁盘上的模型大小比内存大

时间:2015-08-21 05:11:40

标签: r r-caret

我使用R中的插入符号包创建了袋装树模型-Wall,在R-Studio中查看时生成的模型大小为12 Mb。但是当我保存到磁盘以便以后使用method = "treebag"时,磁盘上的大小增加到151 Mb!使用不同的压缩方案会使尺寸缩小一点,但所有尺寸仍大于内存。有人成功处理过这个问题吗?

2 个答案:

答案 0 :(得分:3)

可能的原因是在object.size()的结果中没有考虑与对象关联的封闭环境,但在保存时会写入磁盘。使用pryr :: object_size()函数查看包含环境的对象大小。有关更多说明,请访问:http://adv-r.had.co.nz/memory.html#object-size

> object.size(m1)
16200200 bytes
> pryr::object_size(m1)
215 MB
> save(m1, file="m1.rda")
> file.info("m1.rda")$size
[1] 219475772

在另一个问题中也讨论过这个问题:object.size() reports smaller size than .Rdata file

答案 1 :(得分:2)

您在谈论train对象吗?

bagging函数未经过优化,森林中保存了大量冗余对象(例如每个terms模型的每个rpart对象)。

请参阅trim的{​​{1}}选项。如果您只想对该对象进行预测,这将消除模型对象所带来的大量额外内容。在某些情况下,trainControl对象可以包含数据的完整副本。

call并未针对每个模型实施,而是适用于此模型。