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


R recipes step_impute_mode 使用最常見的值估算名義數據


step_impute_mode() 創建配方步驟的規範,該步驟將用這些變量的訓練集模式替換標稱變量的缺失值。

用法

step_impute_mode(
  recipe,
  ...,
  role = NA,
  trained = FALSE,
  modes = NULL,
  ptype = NULL,
  skip = FALSE,
  id = rand_id("impute_mode")
)

step_modeimpute(
  recipe,
  ...,
  role = NA,
  trained = FALSE,
  modes = NULL,
  ptype = NULL,
  skip = FALSE,
  id = rand_id("impute_mode")
)

參數

recipe

一個菜譜對象。該步驟將添加到此配方的操作序列中。

...

一個或多個選擇器函數用於為此步驟選擇變量。有關更多詳細信息,請參閱selections()

role

由於沒有創建新變量,因此此步驟未使用。

trained

指示預處理數量是否已估計的邏輯。

modes

模式的命名字符向量。在由 prep() 計算之前,這是 NULL

ptype

用於將新數據集投射到的 DataFrame 原型。這通常是訓練集的 0 行切片。

skip

一個合乎邏輯的。當bake() 烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在 prep() 運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = TRUE時應小心,因為它可能會影響後續操作的計算。

id

該步驟特有的字符串,用於標識它。

recipe 的更新版本,將新步驟添加到任何現有操作的序列中。

細節

step_impute_mode 根據 prep.recipetraining 參數中使用的數據估計變量模式。 bake.recipe 然後使用這些值將新值應用到新數據集。如果訓練集數據有不止一種模式,則隨機選擇一種。

recipes 0.1.16 開始,該函數名稱從 step_modeimpute() 更改為 step_impute_mode()

整理

當您tidy()此步驟時,將返回包含列terms(選擇的選擇器或變量)和model(模式值)的小標題。

箱重

此步驟執行可以利用案例權重的無監督操作。因此,個案權重僅與頻率權重一起使用。有關更多信息,請參閱 case_weights 中的文檔和 tidymodels.org 中的示例。

也可以看看

例子

data("credit_data", package = "modeldata")

## missing data per column
vapply(credit_data, function(x) mean(is.na(x)), c(num = 0))
#>       Status    Seniority         Home         Time          Age 
#> 0.0000000000 0.0000000000 0.0013471037 0.0000000000 0.0000000000 
#>      Marital      Records          Job     Expenses       Income 
#> 0.0002245173 0.0000000000 0.0004490346 0.0000000000 0.0855410867 
#>       Assets         Debt       Amount        Price 
#> 0.0105523125 0.0040413112 0.0000000000 0.0000000000 

set.seed(342)
in_training <- sample(1:nrow(credit_data), 2000)

credit_tr <- credit_data[in_training, ]
credit_te <- credit_data[-in_training, ]
missing_examples <- c(14, 394, 565)

rec <- recipe(Price ~ ., data = credit_tr)

impute_rec <- rec %>%
  step_impute_mode(Status, Home, Marital)

imp_models <- prep(impute_rec, training = credit_tr)

imputed_te <- bake(imp_models, new_data = credit_te, everything())

table(credit_te$Home, imputed_te$Home, useNA = "always")
#>          
#>           ignore other owner parents priv rent <NA>
#>   ignore      13     0     0       0    0    0    0
#>   other        0   176     0       0    0    0    0
#>   owner        0     0  1171       0    0    0    0
#>   parents      0     0     0     436    0    0    0
#>   priv         0     0     0       0  135    0    0
#>   rent         0     0     0       0    0  519    0
#>   <NA>         0     0     4       0    0    0    0

tidy(impute_rec, number = 1)
#> # A tibble: 3 × 3
#>   terms   value id               
#>   <chr>   <chr> <chr>            
#> 1 Status  NA    impute_mode_Hlm2y
#> 2 Home    NA    impute_mode_Hlm2y
#> 3 Marital NA    impute_mode_Hlm2y
tidy(imp_models, number = 1)
#> # A tibble: 3 × 3
#>   terms   value   id               
#>   <chr>   <chr>   <chr>            
#> 1 Status  good    impute_mode_Hlm2y
#> 2 Home    owner   impute_mode_Hlm2y
#> 3 Marital married impute_mode_Hlm2y
源代碼:R/impute_mode.R

相關用法


注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Impute nominal data using the most common value。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。