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


R tune fit_best 將模型擬合到數值最優配置


fit_best() 獲取模型調整的結果,並使用與最佳性能相關的調整參數將其擬合到訓練集。

用法

fit_best(x, ...)

# S3 method for default
fit_best(x, ...)

# S3 method for tune_results
fit_best(
  x,
  metric = NULL,
  parameters = NULL,
  verbose = FALSE,
  add_validation_set = NULL,
  ...
)

參數

x

tune_results 的結果(來自 tune_grid()tune_bayes() 等函數)。應該使用控製選項save_workflow = TRUE

...

目前未使用。

metric

要優化的指標的字符串(或 NULL )。如果是 NULL ,則使用第一個指標。

parameters

可選的 1 行調整參數設置小標題,每個調整參數有一列。該小標題應包含每個調整參數標識符的列(例如,如果使用tune("my_param"),則為"my_param")。如果是 NULL ,則此參數將設置為 select_best(metric)

verbose

打印日誌記錄的邏輯。

add_validation_set

x 中嵌入的重采樣分為訓練集和驗證集時,驗證集是否應該包含在用於訓練模型的數據集中?如果沒有,則僅使用訓練集。如果是 NULL ,則驗證集不用於源自 rsample::validation_set() 的重新采樣,而用於源自 rsample::validation_split() 的重新采樣。

合適的工作流程。

細節

此函數是以下手動步驟的快捷方式:


  best_param <- select_best(tune_results, metric) # or other `select_*()`
  wflow <- finalize_workflow(wflow, best_param)  # or just `finalize_model()`
  wflow_fit <- fit(wflow, data_set)

last_fit() 相比,該函數需要一個最終模型,將模型擬合到 rsample::initial_split() 定義的訓練集上,並根據測試集計算指標。

例子

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

data(meats, package = "modeldata")
meats <- meats %>% select(-water, -fat)

set.seed(1)
meat_split <- initial_split(meats)
meat_train <- training(meat_split)
meat_test  <- testing(meat_split)

set.seed(2)
meat_rs <- vfold_cv(meat_train, v = 10)

pca_rec <-
  recipe(protein ~ ., data = meat_train) %>%
  step_normalize(all_numeric_predictors()) %>%
  step_pca(all_numeric_predictors(), num_comp = tune())

knn_mod <- nearest_neighbor(neighbors = tune()) %>% set_mode("regression")

ctrl <- control_grid(save_workflow = TRUE)

set.seed(128)
knn_pca_res <-
  tune_grid(knn_mod, pca_rec, resamples = meat_rs, grid = 10, control = ctrl)

knn_fit <- fit_best(knn_pca_res, verbose = TRUE)
#> Using rmse as the metric, the optimal parameters were:
#>   neighbors: 6
#>   num_comp:  4
#> 
#> ℹ Fitting using 161 data points...
#> ✔ Done.
predict(knn_fit, meat_test)
#> # A tibble: 54 × 1
#>    .pred
#>    <dbl>
#>  1  19.7
#>  2  20.1
#>  3  15.0
#>  4  13.2
#>  5  19.6
#>  6  21.1
#>  7  19.9
#>  8  18.5
#>  9  19.6
#> 10  17.9
#> # ℹ 44 more rows
源代碼:R/fit_best.R

相關用法


注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Fit a model to the numerically optimal configuration。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。