当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。