如何保存防风草模型拟合(来自护林员)?
How to save a parsnip model fit (from ranger)?
我有一个防风草模型(来自 ranger),大致来自 here:
# install.packages("tidymodels")
data(cells, package = "modeldata")
rf_mod <-
rand_forest(trees = 100) %>%
set_engine("ranger") %>%
set_mode("classification")
set.seed(123)
cell_split <- initial_split(cells %>% select(-case), strata = class)
cell_train <- training(cell_split)
rf_fit <-
rf_mod %>%
fit(class ~ ., data = cell_train)
> class(rf_fit)
[1] "_ranger" "model_fit"
如何将它保存到磁盘以便稍后加载它?
我试过 dput
,但出现错误:
dput(rf_fit, file="rf_fit.R")
rf_fit2 <- dget("rf_fit.R")
Error in missing_arg() : could not find function "missing_arg"
确实如此,model_fit.R
文件中有几个 missing_arg
调用,这似乎是某种标记缺失参数的方法。然而,这是一个副线。我不需要使用 dput,我只是希望能够保存和加载模型。
试试这个选项。 save()
和 load()
函数允许您存储模型,然后再次输入。这里的代码:
data(cells, package = "modeldata")
rf_mod <-
rand_forest(trees = 100) %>%
set_engine("ranger") %>%
set_mode("classification")
set.seed(123)
cell_split <- initial_split(cells %>% select(-case), strata = class)
cell_train <- training(cell_split)
rf_fit <-
rf_mod %>%
fit(class ~ ., data = cell_train)
#Export option
save(rf_fit,file='Mymod.RData')
load('Mymod.RData')
另一种选择是使用 saveRDS()
保存模型,然后使用 readRDS()
加载它,但它需要在一个对象中分配:
#Export option 2
saveRDS(rf_fit, file = "Mymod.rds")
# Restore the object
rf_fit <- readRDS(file = "Mymod.rds")
如 Duck 所述,saveRDS()
和 readRDS()
可用于 save/load 任何 R 对象。 save()
& load()
也可以用于相同的目的。网上有很多discussions/blogs比较这两种方法
我有一个防风草模型(来自 ranger),大致来自 here:
# install.packages("tidymodels")
data(cells, package = "modeldata")
rf_mod <-
rand_forest(trees = 100) %>%
set_engine("ranger") %>%
set_mode("classification")
set.seed(123)
cell_split <- initial_split(cells %>% select(-case), strata = class)
cell_train <- training(cell_split)
rf_fit <-
rf_mod %>%
fit(class ~ ., data = cell_train)
> class(rf_fit)
[1] "_ranger" "model_fit"
如何将它保存到磁盘以便稍后加载它?
我试过 dput
,但出现错误:
dput(rf_fit, file="rf_fit.R")
rf_fit2 <- dget("rf_fit.R")
Error in missing_arg() : could not find function "missing_arg"
确实如此,model_fit.R
文件中有几个 missing_arg
调用,这似乎是某种标记缺失参数的方法。然而,这是一个副线。我不需要使用 dput,我只是希望能够保存和加载模型。
试试这个选项。 save()
和 load()
函数允许您存储模型,然后再次输入。这里的代码:
data(cells, package = "modeldata")
rf_mod <-
rand_forest(trees = 100) %>%
set_engine("ranger") %>%
set_mode("classification")
set.seed(123)
cell_split <- initial_split(cells %>% select(-case), strata = class)
cell_train <- training(cell_split)
rf_fit <-
rf_mod %>%
fit(class ~ ., data = cell_train)
#Export option
save(rf_fit,file='Mymod.RData')
load('Mymod.RData')
另一种选择是使用 saveRDS()
保存模型,然后使用 readRDS()
加载它,但它需要在一个对象中分配:
#Export option 2
saveRDS(rf_fit, file = "Mymod.rds")
# Restore the object
rf_fit <- readRDS(file = "Mymod.rds")
如 Duck 所述,saveRDS()
和 readRDS()
可用于 save/load 任何 R 对象。 save()
& load()
也可以用于相同的目的。网上有很多discussions/blogs比较这两种方法