首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保存parsnip模型拟合(来自ranger)?

如何保存parsnip模型拟合(来自ranger)?
EN

Stack Overflow用户
提问于 2020-10-17 07:46:23
回答 2查看 463关注 0票数 0

我有一个parsnip模型(来自ranger),大致来自here

代码语言:javascript
复制
# 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)
代码语言:javascript
复制
> class(rf_fit)
[1] "_ranger"   "model_fit"

如何将其保存到磁盘,以便稍后加载?

我尝试过dput,但得到了一个错误:

代码语言:javascript
复制
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,我只希望能够保存和加载模型。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-17 07:53:20

尝试使用此选项。save()load()函数允许您存储模型,然后再次添加墨迹。代码如下:

代码语言:javascript
复制
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()加载模型,但需要在对象中进行分配:

代码语言:javascript
复制
#Export option 2
saveRDS(rf_fit, file = "Mymod.rds")
# Restore the object
rf_fit <- readRDS(file = "Mymod.rds")
票数 2
EN

Stack Overflow用户

发布于 2020-10-17 14:23:38

正如Duck提到的,saveRDS()readRDS()可以用来保存/加载任何R对象。同样,save()load()也可以用于相同的目的。有许多比较这两种方法的在线讨论/博客。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64397754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档