当我从 R caret 转换为 tidymodels 时如何获得 beta 估计
how to get beta estimates when I convert from R caret to tidymodels
我没有看到使用 tidymodels 生态系统从交叉验证模型中获取参数估计的简单方法。我该怎么做?
有了插入符号,我可以做一个交叉验证模型并得到这样的参数估计值:
library(caret)
library(tidyverse)
library(tidymodels)
data(ames)
set.seed(123)
mod_wo_Garage_Cars <- train(
Sale_Price ~ .,
data = select(ames, -Garage_Cars),
method="lm",
trControl=trainControl(method= "cv", number = 10)
)
summary(mod_wo_Garage_Cars) %>%
broom::tidy() %>%
filter(term == "Garage_Area")
我有一个我认为可以进行相同建模的工作流程(在 train()
与 vfold_cv()
重采样方面存在差异):
library(tidyverse)
library(tidymodels)
data(ames)
set.seed(123)
folds <- vfold_cv(ames, v = 10)
the_rec <-
recipe(Sale_Price ~ ., data = ames) %>%
step_rm(Garage_Cars)
the_lm_model <-
linear_reg() %>%
set_engine("lm")
the_workflow <-
workflow() %>%
add_recipe(the_rec) %>%
add_model(the_lm_model)
mod_wo_Garage_Cars <-
fit_resamples(the_workflow, folds)
我可以看到如何使用 show_best(mod_wo_Garage_Cars, metric = "rmse")
获得 RMSE。我如何从这个工作流中获得关于 beta 的整体模型估计值?
你需要从你的拟合模型中提取系数,然后整理它。
best_rmse <- the_workflow %>%
fit_resamples(folds) %>%
select_best('rmse')
the_workflow %>%
finalize_workflow(best_rmse) %>%
fit(ames) %>%
pull_workflow_fit() %>%
tidy()
我没有看到使用 tidymodels 生态系统从交叉验证模型中获取参数估计的简单方法。我该怎么做?
有了插入符号,我可以做一个交叉验证模型并得到这样的参数估计值:
library(caret)
library(tidyverse)
library(tidymodels)
data(ames)
set.seed(123)
mod_wo_Garage_Cars <- train(
Sale_Price ~ .,
data = select(ames, -Garage_Cars),
method="lm",
trControl=trainControl(method= "cv", number = 10)
)
summary(mod_wo_Garage_Cars) %>%
broom::tidy() %>%
filter(term == "Garage_Area")
我有一个我认为可以进行相同建模的工作流程(在 train()
与 vfold_cv()
重采样方面存在差异):
library(tidyverse)
library(tidymodels)
data(ames)
set.seed(123)
folds <- vfold_cv(ames, v = 10)
the_rec <-
recipe(Sale_Price ~ ., data = ames) %>%
step_rm(Garage_Cars)
the_lm_model <-
linear_reg() %>%
set_engine("lm")
the_workflow <-
workflow() %>%
add_recipe(the_rec) %>%
add_model(the_lm_model)
mod_wo_Garage_Cars <-
fit_resamples(the_workflow, folds)
我可以看到如何使用 show_best(mod_wo_Garage_Cars, metric = "rmse")
获得 RMSE。我如何从这个工作流中获得关于 beta 的整体模型估计值?
你需要从你的拟合模型中提取系数,然后整理它。
best_rmse <- the_workflow %>%
fit_resamples(folds) %>%
select_best('rmse')
the_workflow %>%
finalize_workflow(best_rmse) %>%
fit(ames) %>%
pull_workflow_fit() %>%
tidy()