-
add_model()
將防風草模型添加到工作流程中。 -
remove_model()
刪除模型規範以及任何擬合的模型對象。任何額外的公式也將被刪除。 -
update_model()
首先刪除模型,然後將新規範添加到工作流程中。
用法
add_model(x, spec, ..., formula = NULL)
remove_model(x)
update_model(x, spec, ..., formula = NULL)
參數
- x
-
一個工作流程。
- spec
-
防風草模型規格。
- ...
-
這些點用於將來的擴展,並且必須為空。
- formula
-
用於指定模型項的可選公式覆蓋。通常,這些術語是從公式或配方預處理方法中提取的。但是,某些模型(如生存模型和貝葉斯模型)使用公式不是為了預處理,而是為了指定模型的結構。在這些情況下,指定模型結構的公式必須原封不動地傳遞到模型調用本身中。此參數用於這些目的。
指標變量詳細信息
當您使用模型公式時,R 中的某些建模函數會根據分類數據創建指標/虛擬變量,而有些則不會。當您使用 workflow()
指定並擬合模型時,防風草和工作流程會匹配並重現用戶指定模型的計算引擎的基礎行為。
公式預處理器
在房地產價格modeldata::Sacramento數據集中,type
變量具有三個級別:"Residential"
、"Condo"
和"Multi-Family"
。此基礎 workflow()
包含通過 add_formula()
添加的公式,用於根據房產類型、平方英尺、床位數量和浴室數量預測房產價格:
set.seed(123)
library(parsnip)
library(recipes)
library(workflows)
library(modeldata)
data("Sacramento")
base_wf <- workflow() %>%
add_formula(price ~ type + sqft + beds + baths)
第一個模型確實創建了虛擬/指標變量:
lm_spec <- linear_reg() %>%
set_engine("lm")
base_wf %>%
add_model(lm_spec) %>%
fit(Sacramento)
## == Workflow [trained] ================================================
## Preprocessor: Formula
## Model: linear_reg()
##
## -- Preprocessor ------------------------------------------------------
## price ~ type + sqft + beds + baths
##
## -- Model -------------------------------------------------------------
##
## Call:
## stats::lm(formula = ..y ~ ., data = data)
##
## Coefficients:
## (Intercept) typeMulti_Family typeResidential
## 32919.4 -21995.8 33688.6
## sqft beds baths
## 156.2 -29788.0 8730.0
此 OLS 線性回歸的擬合模型中有五個自變量。使用此模型類型和引擎,房地產的因子預測變量 type
轉換為兩個二元預測變量 typeMulti_Family
和 typeResidential
。 (第三種類型,對於公寓,不需要自己的列,因為它是基線水平)。
第二個模型不創建虛擬/指標變量:
rf_spec <- rand_forest() %>%
set_mode("regression") %>%
set_engine("ranger")
base_wf %>%
add_model(rf_spec) %>%
fit(Sacramento)
## == Workflow [trained] ================================================
## Preprocessor: Formula
## Model: rand_forest()
##
## -- Preprocessor ------------------------------------------------------
## price ~ type + sqft + beds + baths
##
## -- Model -------------------------------------------------------------
## Ranger result
##
## Call:
## ranger::ranger(x = maybe_data_frame(x), y = y, num.threads = 1, verbose = FALSE, seed = sample.int(10^5, 1))
##
## Type: Regression
## Number of trees: 500
## Sample size: 932
## Number of independent variables: 4
## Mtry: 2
## Target node size: 5
## Variable importance mode: none
## Splitrule: variance
## OOB prediction error (MSE): 7058847504
## R squared (OOB): 0.5894647
請注意,該護林員隨機森林的擬合模型中有四個自變量。使用此模型類型和引擎,不會為正在出售的房地產的 type
創建指示變量。基於樹的模型(例如隨機森林模型)可以直接處理因子預測變量,並且不需要任何到數字二進製變量的轉換。
配方預處理器
當您通過 workflow()
指定模型並通過 add_recipe()
指定配方預處理器時,配方控製是否創建虛擬變量;該配方會覆蓋模型計算引擎的任何底層行為。
例子
library(parsnip)
lm_model <- linear_reg()
lm_model <- set_engine(lm_model, "lm")
regularized_model <- set_engine(lm_model, "glmnet")
workflow <- workflow()
workflow <- add_model(workflow, lm_model)
workflow
#> ══ Workflow ══════════════════════════════════════════════════════════════
#> Preprocessor: None
#> Model: linear_reg()
#>
#> ── Model ─────────────────────────────────────────────────────────────────
#> Linear Regression Model Specification (regression)
#>
#> Computational engine: lm
#>
workflow <- add_formula(workflow, mpg ~ .)
workflow
#> ══ Workflow ══════════════════════════════════════════════════════════════
#> Preprocessor: Formula
#> Model: linear_reg()
#>
#> ── Preprocessor ──────────────────────────────────────────────────────────
#> mpg ~ .
#>
#> ── Model ─────────────────────────────────────────────────────────────────
#> Linear Regression Model Specification (regression)
#>
#> Computational engine: lm
#>
remove_model(workflow)
#> ══ Workflow ══════════════════════════════════════════════════════════════
#> Preprocessor: Formula
#> Model: None
#>
#> ── Preprocessor ──────────────────────────────────────────────────────────
#> mpg ~ .
fitted <- fit(workflow, data = mtcars)
fitted
#> ══ Workflow [trained] ════════════════════════════════════════════════════
#> Preprocessor: Formula
#> Model: linear_reg()
#>
#> ── Preprocessor ──────────────────────────────────────────────────────────
#> mpg ~ .
#>
#> ── Model ─────────────────────────────────────────────────────────────────
#>
#> Call:
#> stats::lm(formula = ..y ~ ., data = data)
#>
#> Coefficients:
#> (Intercept) cyl disp hp drat
#> 12.30337 -0.11144 0.01334 -0.02148 0.78711
#> wt qsec vs am gear
#> -3.71530 0.82104 0.31776 2.52023 0.65541
#> carb
#> -0.19942
#>
remove_model(fitted)
#> ══ Workflow ══════════════════════════════════════════════════════════════
#> Preprocessor: Formula
#> Model: None
#>
#> ── Preprocessor ──────────────────────────────────────────────────────────
#> mpg ~ .
remove_model(workflow)
#> ══ Workflow ══════════════════════════════════════════════════════════════
#> Preprocessor: Formula
#> Model: None
#>
#> ── Preprocessor ──────────────────────────────────────────────────────────
#> mpg ~ .
update_model(workflow, regularized_model)
#> ══ Workflow ══════════════════════════════════════════════════════════════
#> Preprocessor: Formula
#> Model: linear_reg()
#>
#> ── Preprocessor ──────────────────────────────────────────────────────────
#> mpg ~ .
#>
#> ── Model ─────────────────────────────────────────────────────────────────
#> Linear Regression Model Specification (regression)
#>
#> Computational engine: glmnet
#>
update_model(fitted, regularized_model)
#> ══ Workflow ══════════════════════════════════════════════════════════════
#> Preprocessor: Formula
#> Model: linear_reg()
#>
#> ── Preprocessor ──────────────────────────────────────────────────────────
#> mpg ~ .
#>
#> ── Model ─────────────────────────────────────────────────────────────────
#> Linear Regression Model Specification (regression)
#>
#> Computational engine: glmnet
#>
相關用法
- R workflows add_variables 將變量添加到工作流程
- R workflows add_formula 將公式術語添加到工作流程
- R workflows add_recipe 將配方添加到工作流程
- R workflows add_case_weights 將案例權重添加到工作流程
- R workflows augment.workflow 通過預測增強數據
- R workflows workflow 創建工作流程
- R workflows extract-workflow 提取工作流程的元素
- R workflows predict-workflow 從工作流程進行預測
- R workflows glance.workflow 工作流程模型一覽
- R workflows is_trained_workflow 確定工作流程是否經過訓練
- R workflows fit-workflow 適合工作流對象
- 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等大神的英文原創作品 Add a model to a workflow。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。