當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。