我正在为多个加法多项式模型运行 gbm() 函数,每个模型在一个大型数据集上具有 6 个响应类别(每个模型约 0.5-1 条线)。模型是这样的(几乎是默认值)。
gbm <-
gbm(Y ~ A + B + C + D + E + F,
data=data,
var.monotone=c(0,0,0,0,0,0),
distribution="multinomial",
n.trees=500,
shrinkage=0.1,
interaction.depth=1,
bag.fraction = 0.5,
train.fraction = 0.5,
n.minobsinnode = 5,
cv.folds = 0,
keep.data=TRUE,
verbose=FALSE,
weights=sampleWeight)
Y是一个有6个类别的因子,解释变量是度量和因子。data
是一个data.table
。这段代码运行良好。预测不错。完成后,我保存预测并使用以下命令清理工作区:rm(list=ls(all=TRUE))
并另外运行gc()
,但它不会释放内存。我希望在清理所有工作区时,我的内存使用量应该与 R 会话开始时大致相同。
在我的具体情况下,加载数据后的 RAM 使用量约为 1.5GB。拟合模型后,它在我的电脑的极限处约为 14GB。清理工作区后,它的大小约为 12GB。目前对我来说唯一的解决方案是重新启动整个 R 会话,重新加载数据并运行下一个模型。
有没有解决方案,这样我就不必一直重新启动会话?
非常感谢!