对于至少具有一个预处理操作的配方,从训练集中估计所需的参数,然后将其应用于其他数据集。
用法
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
的结果。
细节
给定一个数据集,该函数会估计任何操作所需的数量和统计数据。 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 recipes step_unknown 将缺失的类别分配给“未知”
- R recipes step_relu 应用(平滑)修正线性变换
- R recipes step_poly_bernstein 广义伯恩斯坦多项式基
- R recipes step_impute_knn 通过 k 最近邻进行插补
- R recipes step_impute_mean 使用平均值估算数值数据
- R recipes step_inverse 逆变换
- R recipes step_pls 偏最小二乘特征提取
- R recipes update.step 更新菜谱步骤
- R recipes step_ratio 比率变量创建
- R recipes step_geodist 两个地点之间的距离
- R recipes step_nzv 近零方差滤波器
- R recipes step_nnmf 非负矩阵分解信号提取
- R recipes step_normalize 中心和比例数值数据
- R recipes step_depth 数据深度
- R recipes step_other 折叠一些分类级别
- R recipes step_harmonic 添加正弦和余弦项以进行谐波分析
- R recipes step_corr 高相关滤波器
- R recipes step_novel 新因子水平的简单赋值
- R recipes step_select 使用 dplyr 选择变量
- R recipes formula.recipe 从准备好的食谱创建配方
- R recipes step_regex 检测正则表达式
- R recipes step_spline_b 基础样条
- R recipes step_window 移动窗口函数
- R recipes step_ica ICA 信号提取
- R recipes check_range 检查范围一致性
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Estimate a preprocessing recipe。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。