当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R tune last_fit 将最终的最佳模型拟合到训练集并评估测试集


last_fit() 模拟在确定最佳模型后,需要对整个训练集进行最终拟合,然后在测试集上进行评估的过程。

用法

last_fit(object, ...)

# S3 method for model_spec
last_fit(
  object,
  preprocessor,
  split,
  ...,
  metrics = NULL,
  control = control_last_fit(),
  add_validation_set = FALSE
)

# S3 method for workflow
last_fit(
  object,
  split,
  ...,
  metrics = NULL,
  control = control_last_fit(),
  add_validation_set = FALSE
)

参数

object

parsnip 模型规范或 workflows::workflow() 。不允许调整参数。

...

目前未使用。

preprocessor

使用 recipes::recipe() 创建的传统模型公式或配方。

split

rsample::initial_split()rsample::initial_validation_split() 创建的 rsplit 对象。

metrics

yardstick::metric_set()NULL 用于计算一组标准指标。

control

用于微调最后一次拟合过程的 control_last_fit() 对象。

add_validation_set

对于通过 rsample::initial_validation_split() 分为训练集、验证集和测试集的 3 路分割,验证集是否包含在用于训练模型的数据集中。如果没有,则仅使用训练集。

模拟 fit_resamples() 结构的单行 tibble。但是,名为 .workflow 的列表列还附加了使用训练集的拟合模型(和配方,如果有)。

细节

该函数旨在在拟合各种模型并且最终调整参数(如果有)确定后使用。下一步是使用整个训练集进行拟合并使用测试数据验证性能。

例子

library(recipes)
library(rsample)
library(parsnip)

set.seed(6735)
tr_te_split <- initial_split(mtcars)

spline_rec <- recipe(mpg ~ ., data = mtcars) %>%
  step_ns(disp)

lin_mod <- linear_reg() %>%
  set_engine("lm")

spline_res <- last_fit(lin_mod, spline_rec, split = tr_te_split)
spline_res
#> # Resampling results
#> # Manual resampling 
#> # A tibble: 1 × 6
#>   splits         id              .metrics .notes   .predictions .workflow 
#>   <list>         <chr>           <list>   <list>   <list>       <list>    
#> 1 <split [24/8]> train/test spl… <tibble> <tibble> <tibble>     <workflow>

# test set results
spline_res$.metrics[[1]]
#> # A tibble: 2 × 4
#>   .metric .estimator .estimate .config             
#>   <chr>   <chr>          <dbl> <chr>               
#> 1 rmse    standard       3.80  Preprocessor1_Model1
#> 2 rsq     standard       0.729 Preprocessor1_Model1

# or use a workflow

library(workflows)
spline_wfl <-
  workflow() %>%
  add_recipe(spline_rec) %>%
  add_model(lin_mod)

last_fit(spline_wfl, split = tr_te_split)
#> # Resampling results
#> # Manual resampling 
#> # A tibble: 1 × 6
#>   splits         id              .metrics .notes   .predictions .workflow 
#>   <list>         <chr>           <list>   <list>   <list>       <list>    
#> 1 <split [24/8]> train/test spl… <tibble> <tibble> <tibble>     <workflow>
源代码:R/last_fit.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Fit the final best model to the training set and evaluate the test set。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。