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


R recipes prep 估计预处理配方


对于至少具有一个预处理操作的配方,从训练集中估计所需的参数,然后将其应用于其他数据集。

用法

prep(x, ...)

# S3 method for recipe
prep(
  x,
  training = NULL,
  fresh = FALSE,
  verbose = FALSE,
  retain = TRUE,
  log_changes = FALSE,
  strings_as_factors = TRUE,
  ...
)

参数

x

一个东西

...

传入或传出其他方法的更多参数(当前未使用)。

training

将用于估计预处理参数的 DataFrame 或标题。

fresh

指示是否应重新训练已训练操作的逻辑。如果是 TRUE ,您应该将数据集传递给参数 training

verbose

控制是否在执行操作时报告进度的逻辑。

retain

逻辑:训练后预处理的训练集是否应该保存到配方的template槽中?如果您想稍后添加更多步骤但希望避免重新训练现有步骤,这是一个好主意。此外,如果任何步骤使用选项 skip = FALSE ,建议使用 retain = TRUE 。请注意,这可能会使最终的配方尺寸变大。当 verbose = TRUE 时,消息是用内存中的近似对象大小写入的,但可能会低估,因为它没有考虑环境。

log_changes

用于打印每个步骤的摘要的逻辑,该摘要涉及训练期间添加或删除的列(如果有)。

strings_as_factors

逻辑:字符列应该转换为因子吗?这会影响预处理的训练集(当 retain = TRUE 时)以及 bake.recipe 的结果。

配方的步骤对象已更新为所需数量(例如参数估计、模型对象等)。此外,term_info 对象可能会在执行操作时被修改。

细节

给定一个数据集,该函数会估计任何操作所需的数量和统计数据。 prep() 返回包含估计值的更新配方。如果您使用配方作为建模的预处理器,我们强烈建议您使用 workflow() 而不是手动估计配方(请参阅 recipe() 中的示例)。

请注意,丢失的数据是在步骤中处理的;配方级别或 prep() 中没有全局 na.rm 选项。

此外,如果使用 prep() 训练配方,然后添加步骤,prep() 将仅更新新操作。如果是 fresh = TRUE ,所有操作都将被(重新)估计。

执行这些步骤时,training 集会更新。例如,如果第一步是使数据居中,第二步是缩放数据,则缩放步骤将给出居中的数据。

例子

data(ames, package = "modeldata")

library(dplyr)

ames <- mutate(ames, Sale_Price = log10(Sale_Price))

ames_rec <-
  recipe(
    Sale_Price ~ Longitude + Latitude + Neighborhood + Year_Built + Central_Air,
    data = ames
  ) %>%
  step_other(Neighborhood, threshold = 0.05) %>%
  step_dummy(all_nominal()) %>%
  step_interact(~ starts_with("Central_Air"):Year_Built) %>%
  step_ns(Longitude, Latitude, deg_free = 5)

prep(ames_rec, verbose = TRUE)
#> oper 1 step other [training] 
#> oper 2 step dummy [training] 
#> oper 3 step interact [training] 
#> oper 4 step ns [training] 
#> The retained training set is ~ 0.48 Mb  in memory.
#> 
#> 
#> ── Recipe ────────────────────────────────────────────────────────────────
#> 
#> ── Inputs 
#> Number of variables by role
#> outcome:   1
#> predictor: 5
#> 
#> ── Training information 
#> Training data contained 2930 data points and no incomplete rows.
#> 
#> ── Operations 
#> • Collapsing factor levels for: Neighborhood | Trained
#> • Dummy variables from: Neighborhood, Central_Air | Trained
#> • Interactions with: Central_Air_Y:Year_Built | Trained
#> • Natural splines on: Longitude, Latitude | Trained

prep(ames_rec, log_changes = TRUE)
#> step_other (other_AAhJh): same number of columns
#> 
#> step_dummy (dummy_kTnm6): 
#>  new (9): Neighborhood_College_Creek, Neighborhood_Old_Town, ...
#>  removed (2): Neighborhood, Central_Air
#> 
#> step_interact (interact_95l5E): 
#>  new (1): Central_Air_Y_x_Year_Built
#> 
#> step_ns (ns_FzcMd): 
#>  new (10): Longitude_ns_1, Longitude_ns_2, Longitude_ns_3, ...
#>  removed (2): Longitude, Latitude
#> 
#> 
#> ── Recipe ────────────────────────────────────────────────────────────────
#> 
#> ── Inputs 
#> Number of variables by role
#> outcome:   1
#> predictor: 5
#> 
#> ── Training information 
#> Training data contained 2930 data points and no incomplete rows.
#> 
#> ── Operations 
#> • Collapsing factor levels for: Neighborhood | Trained
#> • Dummy variables from: Neighborhood, Central_Air | Trained
#> • Interactions with: Central_Air_Y:Year_Built | Trained
#> • Natural splines on: Longitude, Latitude | Trained
源代码:R/recipe.R

相关用法


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