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


R recipes step_impute_mean 使用平均值估算数值数据


step_impute_mean() 创建配方步骤的规范,该步骤将用这些变量的训练集平均值替换数值变量的缺失值。

用法

step_impute_mean(
  recipe,
  ...,
  role = NA,
  trained = FALSE,
  means = NULL,
  trim = 0,
  skip = FALSE,
  id = rand_id("impute_mean")
)

step_meanimpute(
  recipe,
  ...,
  role = NA,
  trained = FALSE,
  means = NULL,
  trim = 0,
  skip = FALSE,
  id = rand_id("impute_mean")
)

参数

recipe

一个菜谱对象。该步骤将添加到此配方的操作序列中。

...

一个或多个选择器函数用于为此步骤选择变量。有关更多详细信息,请参阅selections()

role

由于没有创建新变量,因此此步骤未使用。

trained

指示预处理数量是否已估计的逻辑。

means

均值的命名数值向量。在由 prep() 计算之前,这是 NULL 。请注意,如果原始数据是整数,均值将转换为整数以保持相同的数据类型。

trim

在计算平均值之前要从变量每一端修剪的观测值分数(0 到 0.5)。超出该范围的修剪值被视为最近的端点。

skip

一个合乎逻辑的。当bake() 烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在 prep() 运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE时应小心,因为它可能会影响后续操作的计算。

id

该步骤特有的字符串,用于标识它。

recipe 的更新版本,将新步骤添加到任何现有操作的序列中。

细节

step_impute_mean 根据 prep.recipetraining 参数中使用的数据估计变量均值。 bake.recipe 然后使用这些平均值将新值应用于新数据集。

recipes 0.1.16 开始,该函数名称从 step_meanimpute() 更改为 step_impute_mean()

整理

当您tidy()此步骤时,将返回包含列terms(选定的选择器或变量)和model(平均值)的小标题。

调整参数

此步骤有 1 个调整参数:

  • trim :修剪量(类型:double,默认值:0)

箱重

此步骤执行可以利用案例权重的无监督操作。因此,个案权重仅与频率权重一起使用。有关更多信息,请参阅 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_mean(Income, Assets, Debt)

imp_models <- prep(impute_rec, training = credit_tr)

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

credit_te[missing_examples, ]
#>      Status Seniority  Home Time Age Marital Records     Job Expenses
#> 28     good        15 owner   36  43 married      no   fixed       75
#> 688    good         2  rent   60  32 married      no partime       87
#> 1002   good        21  rent   60  39 married      no   fixed      124
#>      Income Assets Debt Amount Price
#> 28      251   4000    0   1800  2557
#> 688     115   2000    0   1250  1517
#> 1002    191   2000    0   2000  2536
imputed_te[missing_examples, names(credit_te)]
#> # A tibble: 3 × 14
#>   Status Seniority Home   Time   Age Marital Records Job   Expenses Income
#>   <fct>      <int> <fct> <int> <int> <fct>   <fct>   <fct>    <int>  <int>
#> 1 good          15 owner    36    43 married no      fixed       75    251
#> 2 good           2 rent     60    32 married no      part…       87    115
#> 3 good          21 rent     60    39 married no      fixed      124    191
#> # ℹ 4 more variables: Assets <int>, Debt <int>, Amount <int>, Price <int>

tidy(impute_rec, number = 1)
#> # A tibble: 3 × 3
#>   terms  value id               
#>   <chr>  <dbl> <chr>            
#> 1 Income    NA impute_mean_Hlm2y
#> 2 Assets    NA impute_mean_Hlm2y
#> 3 Debt      NA impute_mean_Hlm2y
tidy(imp_models, number = 1)
#> # A tibble: 3 × 3
#>   terms  value id               
#>   <chr>  <dbl> <chr>            
#> 1 Income   142 impute_mean_Hlm2y
#> 2 Assets  5378 impute_mean_Hlm2y
#> 3 Debt     364 impute_mean_Hlm2y
源代码:R/impute_mean.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Impute numeric data using the mean。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。