這些函數從工作流對象中提取各種元素。如果它們尚不存在,則會拋出錯誤。
-
extract_preprocessor()
返回用於預處理的公式、配方或變量表達式。 -
extract_spec_parsnip()
返回防風草模型規範。 -
extract_fit_parsnip()
返回防風草模型擬合對象。 -
extract_fit_engine()
返回嵌入防風草模型擬合中的引擎特定擬合。例如,當將parsnip::linear_reg()
與"lm"
引擎一起使用時,這將返回底層lm
對象。 -
extract_mold()
返回從hardhat::mold()
返回的預處理的 "mold" 對象。它包含有關預處理的信息,包括準備好的配方、公式術語對象或變量選擇器。 -
extract_recipe()
返回配方。estimated
參數指定是返回擬合配方還是原始配方。 -
extract_parameter_dials()
返回單個撥號參數對象。 -
extract_parameter_set_dials()
返回一組撥號參數對象。
用法
# S3 method for workflow
extract_spec_parsnip(x, ...)
# S3 method for workflow
extract_recipe(x, ..., estimated = TRUE)
# S3 method for workflow
extract_fit_parsnip(x, ...)
# S3 method for workflow
extract_fit_engine(x, ...)
# S3 method for workflow
extract_mold(x, ...)
# S3 method for workflow
extract_preprocessor(x, ...)
# S3 method for workflow
extract_parameter_set_dials(x, ...)
# S3 method for workflow
extract_parameter_dials(x, parameter, ...)
細節
提取底層引擎擬合有助於說明模型(通過 print()
、 summary()
、 plot()
等)或變量重要性/解釋器。
但是,用戶不應在提取的模型上調用predict()
方法。 workflows
在將數據提供給模型之前可能已對數據執行了預處理操作。繞過這些可能會導致錯誤或默默地生成不正確的預測。
好的:
workflow_fit %>% predict(new_data)
壞的:
workflow_fit %>% extract_fit_engine() %>% predict(new_data)
# or
workflow_fit %>% extract_fit_parsnip() %>% predict(new_data)
例子
library(parsnip)
library(recipes)
library(magrittr)
model <- linear_reg() %>%
set_engine("lm")
recipe <- recipe(mpg ~ cyl + disp, mtcars) %>%
step_log(disp)
base_wf <- workflow() %>%
add_model(model)
recipe_wf <- add_recipe(base_wf, recipe)
formula_wf <- add_formula(base_wf, mpg ~ cyl + log(disp))
variable_wf <- add_variables(base_wf, mpg, c(cyl, disp))
fit_recipe_wf <- fit(recipe_wf, mtcars)
fit_formula_wf <- fit(formula_wf, mtcars)
# The preprocessor is a recipe, formula, or a list holding the
# tidyselect expressions identifying the outcomes/predictors
extract_preprocessor(recipe_wf)
#>
#> ── Recipe ────────────────────────────────────────────────────────────────
#>
#> ── Inputs
#> Number of variables by role
#> outcome: 1
#> predictor: 2
#>
#> ── Operations
#> • Log transformation on: disp
extract_preprocessor(formula_wf)
#> mpg ~ cyl + log(disp)
#> <environment: 0x5603e9f1eed0>
extract_preprocessor(variable_wf)
#> $outcomes
#> <quosure>
#> expr: ^mpg
#> env: 0x5603e9f1eed0
#>
#> $predictors
#> <quosure>
#> expr: ^c(cyl, disp)
#> env: 0x5603e9f1eed0
#>
#> attr(,"class")
#> [1] "workflow_variables"
# The `spec` is the parsnip spec before it has been fit.
# The `fit` is the fitted parsnip model.
extract_spec_parsnip(fit_formula_wf)
#> Linear Regression Model Specification (regression)
#>
#> Computational engine: lm
#>
extract_fit_parsnip(fit_formula_wf)
#> parsnip model object
#>
#>
#> Call:
#> stats::lm(formula = ..y ~ ., data = data)
#>
#> Coefficients:
#> (Intercept) cyl `log(disp)`
#> 67.6674 -0.1755 -8.7971
#>
extract_fit_engine(fit_formula_wf)
#>
#> Call:
#> stats::lm(formula = ..y ~ ., data = data)
#>
#> Coefficients:
#> (Intercept) cyl `log(disp)`
#> 67.6674 -0.1755 -8.7971
#>
# The mold is returned from `hardhat::mold()`, and contains the
# predictors, outcomes, and information about the preprocessing
# for use on new data at `predict()` time.
extract_mold(fit_recipe_wf)
#> $predictors
#> # A tibble: 32 × 2
#> cyl disp
#> <dbl> <dbl>
#> 1 6 5.08
#> 2 6 5.08
#> 3 4 4.68
#> 4 6 5.55
#> 5 8 5.89
#> 6 6 5.42
#> 7 8 5.89
#> 8 4 4.99
#> 9 4 4.95
#> 10 6 5.12
#> # … with 22 more rows
#>
#> $outcomes
#> # A tibble: 32 × 1
#> mpg
#> <dbl>
#> 1 21
#> 2 21
#> 3 22.8
#> 4 21.4
#> 5 18.7
#> 6 18.1
#> 7 14.3
#> 8 24.4
#> 9 22.8
#> 10 19.2
#> # … with 22 more rows
#>
#> $blueprint
#> Recipe blueprint:
#>
#> # Predictors: 2
#> # Outcomes: 1
#> Intercept: FALSE
#> Novel Levels: FALSE
#> Composition: tibble
#>
#> $extras
#> $extras$roles
#> NULL
#>
#>
# A useful shortcut is to extract the fitted recipe from the workflow
extract_recipe(fit_recipe_wf)
#>
#> ── Recipe ────────────────────────────────────────────────────────────────
#>
#> ── Inputs
#> Number of variables by role
#> outcome: 1
#> predictor: 2
#>
#> ── Training information
#> Training data contained 32 data points and no incomplete rows.
#>
#> ── Operations
#> • Log transformation on: disp | Trained
# That is identical to
identical(
extract_mold(fit_recipe_wf)$blueprint$recipe,
extract_recipe(fit_recipe_wf)
)
#> [1] TRUE
相關用法
- R workflows add_model 將模型添加到工作流程
- R workflows workflow 創建工作流程
- R workflows add_variables 將變量添加到工作流程
- R workflows add_formula 將公式術語添加到工作流程
- R workflows predict-workflow 從工作流程進行預測
- R workflows augment.workflow 通過預測增強數據
- R workflows add_recipe 將配方添加到工作流程
- R workflows glance.workflow 工作流程模型一覽
- R workflows is_trained_workflow 確定工作流程是否經過訓練
- R workflows fit-workflow 適合工作流對象
- R workflows add_case_weights 將案例權重添加到工作流程
- R workflows control_workflow 工作流的控製對象
- R workflowsets extract_workflow_set_result 提取工作流集的元素
- R workflowsets comment_add 為工作流程添加注釋和評論
- R workflowsets option_add 添加和編輯工作流程集中保存的選項
- R workflowsets fit_best.workflow_set 將模型擬合到數值最優配置
- R workflowsets leave_var_out_formulas 創建沒有每個預測變量的公式
- R workflowsets collect_metrics.workflow_set 獲取並格式化通過調整工作流集函數生成的結果
- R workflowsets workflow_map 處理一係列工作流程
- R workflowsets as_workflow_set 將現有對象轉換為工作流集
- R workflowsets option_list 製作一個分類的選項列表
- R workflowsets rank_results 按指標對結果進行排名
- R workflowsets workflow_set 從預處理和模型對象生成一組工作流對象
- R workflowsets pull_workflow_set_result 從工作流集中提取元素
- R workflowsets autoplot.workflow_set 繪製工作流程集的結果
注:本文由純淨天空篩選整理自Davis Vaughan等大神的英文原創作品 Extract elements of a workflow。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。