2016-02-19 2 views
0

Я сохраняю два случайных объекта леса как файлы rda. Когда я их загружаю - один загружается как символ, а другой - как объект randomForest! Может кто-нибудь объяснить это?Случайный объект леса не загружается

Вот мой фрагмент кода:

fit1 <- load("rfModel_pw2.rda") 
fit2 <- load("rfModel_pw3.rda") 
Pred1 <- predict(get(fit1), test, "prob") 
#Error in get(fit1) : invalid first argument 
Pred2 <- predict(get(fit2), test, "prob") 
class(fit1) 
#[1] "randomForest.formula" "randomForest" 
> class(fit2) 
#[1] "character" 
+0

Вы могли бы показать, как модели были обучены и сохранены? –

+0

@SorenHavelundWelling Вот фрагмент кода тренировки: fit_noResponse <- randomForest (as.factor (обновлено) ~ <список свойств>, data = поезд, важность = TRUE, ntree = 1000, mtry = 4, proximity = TRUE) Для сохранения , это мой код: save (fit_noResponse, file = "rfmodel_pw_noResponse.rda") – nutget

ответ

0

load() места, загруженные объекты из .rda файла в глобальной среде автоматически и возвращает только имена персонажей загруженных объектов. Вместо использования get([name]) просто используйте одно и то же имя-объекта перед сохранением и после загрузки, как в примере. В противном случае, если вы хотите, чтобы функция загрузчика возвращала загруженный объект, вы можете заменить load()/save() на saveRDS()/readRDS().

library(randomForest) 
X = replicate(2,rnorm(1000)) 
y = apply(X,1,sum) 
rf = randomForest(X,y) 
save(rf,file="./rf.rda") 

rm(list=ls()) 
load(file="./rf.rda") #object is restored in global enviroment by former name 
predict(rf,replicate(2,rnorm(1000))) 
Смежные вопросы