Сохранить случайный лесной объект - PullRequest
13 голосов
/ 23 октября 2011

У меня есть объект 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

Есть предложения?

Ответы [ 4 ]

24 голосов
/ 23 октября 2011

Я не совсем уверен, что вы пытаетесь сделать здесь, так как обычно вы 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
4 голосов
/ 26 мая 2015

У меня была такая же проблема (загрузка объекта RandomForest привела к строке символов), и что-то вроде этого, похоже, сработало для меня:

forest = get(load("forestGOOG.RData"))

(У меня есть случайный объект леса 'forestGOOG', сохраненный в рабочем каталоге)

1 голос
/ 06 декабря 2017

Вот решение, если вы хотите загрузить модель под другим именем

  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)
0 голосов
/ 13 февраля 2019

Сохранение и чтение моделей случайных лесов

#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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...