biglm
을 모델에 맞게 사용할 수 있습니다. biglm
모델 개체가 모델 개체보다 작습니다. predict.biglm
을 사용하여 예측 값을 반환하는 newdata 디자인 행렬을 전달할 수있는 함수를 만들 수 있습니다.
또 다른 옵션은을 사용하여 파일을 저장하는 것입니다. 파일 크기는 다소 작아 보이지만 오버 헤드가 적기 때문에 단일 개체가되고 다른 개체를 저장할 수는 없습니다.
library(biglm)
m <- lm(log(Volume)~log(Girth)+log(Height), trees)
mm <- lm(log(Volume)~log(Girth)+log(Height), trees, model = FALSE, x =FALSE, y = FALSE)
bm <- biglm(log(Volume)~log(Girth)+log(Height), trees)
pred <- predict(bm, make.function = TRUE)
save(m, file = 'm.rdata')
save(mm, file = 'mm.rdata')
save(bm, file = 'bm.rdata')
save(pred, file = 'pred.rdata')
saveRDS(m, file = 'm.rds')
saveRDS(mm, file = 'mm.rds')
saveRDS(bm, file = 'bm.rds')
saveRDS(pred, file = 'pred.rds')
file.info(paste(rep(c('m','mm','bm','pred'),each=2) ,c('.rdata','.rds'),sep=''))
# size isdir mode mtime ctime atime exe
# m.rdata 2806 FALSE 666 2013-03-07 11:29:30 2013-03-07 11:24:23 2013-03-07 11:29:30 no
# m.rds 2798 FALSE 666 2013-03-07 11:29:30 2013-03-07 11:29:30 2013-03-07 11:29:30 no
# mm.rdata 2113 FALSE 666 2013-03-07 11:29:30 2013-03-07 11:24:28 2013-03-07 11:29:30 no
# mm.rds 2102 FALSE 666 2013-03-07 11:29:30 2013-03-07 11:29:30 2013-03-07 11:29:30 no
# bm.rdata 592 FALSE 666 2013-03-07 11:29:30 2013-03-07 11:24:34 2013-03-07 11:29:30 no
# bm.rds 583 FALSE 666 2013-03-07 11:29:30 2013-03-07 11:29:30 2013-03-07 11:29:30 no
# pred.rdata 1007 FALSE 666 2013-03-07 11:29:30 2013-03-07 11:24:40 2013-03-07 11:29:30 no
# pred.rds 995 FALSE 666 2013-03-07 11:29:30 2013-03-07 11:27:30 2013-03-07 11:29:30 no
[이 (의 정신 http://stackoverflow.com/questions/2929776/how-to-save-a-fitted-r-model-for-later-use?rq= 1) 질문에'model = FALSE'를 설정하려했지만 눈에 띄는 효과가 없었습니다. –
빅 데이터가 문제를 일으키는 경우 'biglm'이 답이 될 수 있습니다. 'biglm' 클래스의 객체는'lm'보다 작고 다른 '큰 데이터'효율성이 있습니다 – mnel
실제로 문제는 메모리에있는 데이터의 크기가 아니며 predict()로 찾던 속도입니다. 기능. 필자의 스크립트는 최종 사용자를위한 예측을하기 위해 RPy2를 통해 호출 된 야간 업데이트 모델을 작성하고있었습니다. 142mb 모델에서는 각 요청을로드하는 데 영원히 걸렸습니다. –