Możesz użyć biglm
, aby dopasować swoje modele, obiekt modelu biglm
jest mniejszy niż obiekt modelu LM. Możesz użyć predict.biglm
utworzyć funkcję, do której możesz przekazać matrycę projektowania newdata, która zwraca przewidywane wartości.
Inną opcją jest użycie saveRDS
do zapisania plików, które wydają się być nieco mniejsze, ponieważ mają mniej narzutów, jako pojedynczy obiekt, a nie jak zapis, który może zapisać wiele obiektów.
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
Również w duchu [to], (http://stackoverflow.com/questions/2929776/how-to-save-a-fitted-r-model-for-later-use?rq= 1) pytanie, próbowałem ustawić 'model = FALSE', ale który nie miał zauważalnego efektu. –
Jeśli duże dane powodują Twój problem, może to być "biglm". Obiekt klasy 'biglm' jest mniejszy niż' lm', a istnieją inne 'duże dane' efektywność – mnel
W rzeczywistości problem nie jest wielkości danych w pamięci, jest to szybkość, której szukałem za pomocą funkcji przewidywania() funkcjonować. Mój skrypt tworzył model aktualizowany co noc, który był wywoływany za pośrednictwem RPy2, aby tworzyć prognozy dla użytkowników końcowych. W modelu 142 mb pobieranie każdej prośby trwało wiecznie. –