#r
#r
Вопрос:
У меня есть объект randomForest, который я хочу сохранить для последующего использования. Я пробовал некоторые из следующих действий, но безуспешно.
save(topDawg , file="myRFobject.RData")
Это просто сохраняет строку «topDawg»
> formula(topDawg)
Error in formula.default(topDawg) : invalid formula
> save(getTree(topDawg))
Error in save(getTree(topDawg)) : object ‘getTree(topDawg)’ not found
Есть предложения?
Ответ №1:
Я не совсем уверен, что вы пытаетесь здесь сделать, поскольку обычно вы save
создаете объект, а затем load
его позже, вот так:
set.seed(71)
> irisrf <- randomForest(Species ~ ., data=iris, importance=TRUE,
proximity=TRUE)
> save(irisrf,file = "irisrf.RData")
>
> rm(irisrf)
> print(irisrf)
Error in print(irisrf) : object 'irisrf' not found
>
> load("irisrf.RData")
> print(irisrf)
Call:
randomForest(formula = Species ~ ., data = iris, importance = TRUE, proximity = TRUE)
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 2
OOB estimate of error rate: 4.67%
Confusion matrix:
setosa versicolor virginica class.error
setosa 50 0 0 0.00
versicolor 0 47 3 0.06
virginica 0 4 46 0.08
Комментарии:
1. Очень хороший трюк, если вы хотите запустить классификатор r с функцией вызова подпроцесса в python
Ответ №2:
У меня была та же проблема (загрузка объекта randomForest привела к символьной строке), и что-то вроде этого, похоже, сработало для меня:
forest = get(load("forestGOOG.RData"))
(У меня есть случайный лесной объект ‘forestGOOG’, сохраненный в рабочем каталоге)
Ответ №3:
Вот решение, если вы хотите загрузить модель под другим именем
library(randomForest)
# 1. Create data set
set.seed(100)
df_iris <- randomForest(Species ~ ., data = iris, importance = TRUE, proximity = TRUE)
# 2. Save model
file_name <- "model_iris.rds"
saveRDS(df_iris, file_name)
# 2.3. Load model under another name
df_iris_loaded <- readRDS(file_name)
df_iris_loaded
# 2.4. Test two models
identical(df_iris, df_iris_loaded, ignore.environment = TRUE)
Ответ №4:
После создания случайной модели леса сохраните модель в виде файла, чтобы вы могли использовать ее позже.
#model
model_rf <- randomForest(y~ ., data = dataset, mtry=7,ntree=500)
#write model
saveRDS(model_rf , "model_rf.RDS")
#load model
readRDS("model_rf.RDS")