當我使用下述R代碼,如何保存沒有數據的glm結果或僅用coeffients進行預測?
model_glm=glm(V1~. , data=xx,family="binomial");
save(file="modelfile",model_glm);
modelfile的大小將是儘可能的數據,這將在我的情況下,可以1GIG。如何刪除model_glm結果中的數據部分,所以我只能保存一個小文件。
當我使用下述R代碼,如何保存沒有數據的glm結果或僅用coeffients進行預測?
model_glm=glm(V1~. , data=xx,family="binomial");
save(file="modelfile",model_glm);
modelfile的大小將是儘可能的數據,這將在我的情況下,可以1GIG。如何刪除model_glm結果中的數據部分,所以我只能保存一個小文件。
在您撥打glm
時設置model = FALSE
應該防止model.frame
被退回。同時設置y = FALSE
將防止返回響應向量。 x = FALSE
是默認設置,可防止返回model.matrix
。
這種組合應該縮小glm對象的大小。
當然,你也可以用coef(model_glm)
提取係數,或標準錯誤,
summary(model_glm)$coef
您可以在保存之前NULL模型對象中的數據。我做了一個快速測試,並且仍然產生了預測。
model_glm$data <- NULL
我有這個問題,我在那裏運行GLM在生產中的R和GLM的大小的部分大大減慢我失望。我發現我需要殺死更多的不僅僅是$data
。 Here是我的貼子,下面有一個例子。
> object.size(sg)
96499472 bytes
> sg$residuals <- NULL
> sg$weights <- NULL
> sg$fitted.values <- NULL
> sg$prior.weights <- NULL
> sg$na.action<- NULL
> sg$linear.predictors <- NULL
> sg$fitted.values <- NULL
> sg$effects <-NULL
> sg$data <- NULL
> object.size(sg)
3483976 bytes
> sg$qr$qr <- NULL
> object.size(sg)
79736 bytes
使用'biglm'包 – hadley
設置'模式= FALSE'在調用'glm'防止model.frame被返回。 – BenBarnes