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


R workflows add_case_weights 將案例權重添加到工作流程


該函數係列圍繞選擇 data 列用於案例權重進行。此列必須是允許的 case 權重類型之一,例如 hardhat::frequency_weights()hardhat::importance_weights() 。具體來說,它必須從 hardhat::is_case_weights() 返回 TRUE 。基礎模型將決定您提供的案例權重類型是否適用。

  • add_case_weights() 指定將被解釋為模型中的個案權重的列。此列必須存在於提供給 fit()data 中。

  • remove_case_weights() 刪除案例權重。此外,如果模型已經擬合,則擬合將被刪除。

  • update_case_weights() 首先刪除案例權重,然後用新的權重替換它們。

用法

add_case_weights(x, col)

remove_case_weights(x)

update_case_weights(x, col)

參數

x

工作流程

col

一個不帶引號的列名稱,指定模型的案例權重。這必須是分類案例權重列,由 hardhat::is_case_weights() 確定。

細節

對於公式和變量預處理器,在評估預處理器之前,會從數據中刪除案例權重 col。這使您可以使用 y ~ . 等公式或 everything() 等 tidyselection ,而不必擔心意外選擇案例權重列。

對於配方預處理器,案例權重 col 不會被刪除,而是會傳遞給配方。通常,您的配方將包括可以利用箱子重量的步驟。

例子

library(parsnip)
library(magrittr)
library(hardhat)

mtcars2 <- mtcars
mtcars2$gear <- frequency_weights(mtcars2$gear)

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

wf <- workflow() %>%
  add_case_weights(gear) %>%
  add_formula(mpg ~ .) %>%
  add_model(spec)

wf <- fit(wf, mtcars2)

# Notice that the case weights (gear) aren't included in the predictors
extract_mold(wf)$predictors
#> # A tibble: 32 × 10
#>    `(Intercept)`   cyl  disp    hp  drat    wt  qsec    vs    am  carb
#>            <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1             1     6  160    110  3.9   2.62  16.5     0     1     4
#>  2             1     6  160    110  3.9   2.88  17.0     0     1     4
#>  3             1     4  108     93  3.85  2.32  18.6     1     1     1
#>  4             1     6  258    110  3.08  3.22  19.4     1     0     1
#>  5             1     8  360    175  3.15  3.44  17.0     0     0     2
#>  6             1     6  225    105  2.76  3.46  20.2     1     0     1
#>  7             1     8  360    245  3.21  3.57  15.8     0     0     4
#>  8             1     4  147.    62  3.69  3.19  20       1     0     2
#>  9             1     4  141.    95  3.92  3.15  22.9     1     0     2
#> 10             1     6  168.   123  3.92  3.44  18.3     1     0     4
#> # … with 22 more rows

# Strip them out of the workflow, which also resets the model
remove_case_weights(wf)
#> ══ Workflow ══════════════════════════════════════════════════════════════
#> Preprocessor: Formula
#> Model: linear_reg()
#> 
#> ── Preprocessor ──────────────────────────────────────────────────────────
#> mpg ~ .
#> 
#> ── Model ─────────────────────────────────────────────────────────────────
#> Linear Regression Model Specification (regression)
#> 
#> Computational engine: lm 
#> 

相關用法


注:本文由純淨天空篩選整理自Davis Vaughan等大神的英文原創作品 Add case weights to a workflow。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。