对于至少具有一个已由 prep()
训练的预处理操作的配方,将计算应用于新数据。
参数
- object
-
经过训练的对象,例如具有至少一个预处理操作的
recipe()
。 - ...
-
一个或多个选择器函数用于选择函数将返回哪些变量。有关更多详细信息,请参阅
selections()
。如果未给出选择器,则默认使用everything()
。 - new_data
-
将应用预处理的 DataFrame 或 tibble。如果将
NULL
赋予new_data
,则将返回预处理的训练数据(假设使用了prep(retain = TRUE)
)。 - composition
-
"tibble"、"matrix"、"data.frame" 或 "dgCMatrix" 用于处理数据集的格式。请注意,烘焙过程中的所有计算都是以非稀疏格式完成的。另请注意,应在任何选择器之后调用此参数,并且选择器应仅解析为数字列(否则会引发错误)。
细节
bake()
采用经过训练的配方并将其操作应用于数据集以创建设计矩阵。如果您使用配方作为建模的预处理器,我们强烈建议您使用 workflow()
而不是手动应用配方(请参阅 recipe()
中的示例)。
如果数据集不太大,可以使用prep()
的retain = TRUE
选项来节省时间。这存储训练集的处理版本。设置此选项后,bake(object, new_data = NULL)
将免费返回它。
此外,当使用 new_data
中的数据集调用 bake()
时,任何带有 skip = TRUE
的步骤都不会应用于数据。 bake(object, new_data = NULL)
将始终应用所有步骤。
例子
data(ames, package = "modeldata")
ames <- mutate(ames, Sale_Price = log10(Sale_Price))
ames_rec <-
recipe(Sale_Price ~ ., data = ames[-(1:6), ]) %>%
step_other(Neighborhood, threshold = 0.05) %>%
step_dummy(all_nominal()) %>%
step_interact(~ starts_with("Central_Air"):Year_Built) %>%
step_ns(Longitude, Latitude, deg_free = 2) %>%
step_zv(all_predictors()) %>%
prep()
# return the training set (already embedded in ames_rec)
bake(ames_rec, new_data = NULL)
#> # A tibble: 2,924 × 259
#> Lot_Frontage Lot_Area Year_Built Year_Remod_Add Mas_Vnr_Area
#> <dbl> <int> <int> <int> <dbl>
#> 1 41 4920 2001 2001 0
#> 2 43 5005 1992 1992 0
#> 3 39 5389 1995 1996 0
#> 4 60 7500 1999 1999 0
#> 5 75 10000 1993 1994 0
#> 6 0 7980 1992 2007 0
#> 7 63 8402 1998 1998 0
#> 8 85 10176 1990 1990 0
#> 9 0 6820 1985 1985 0
#> 10 47 53504 2003 2003 603
#> # ℹ 2,914 more rows
#> # ℹ 254 more variables: BsmtFin_SF_1 <dbl>, BsmtFin_SF_2 <dbl>,
#> # Bsmt_Unf_SF <dbl>, Total_Bsmt_SF <dbl>, First_Flr_SF <int>,
#> # Second_Flr_SF <int>, Gr_Liv_Area <int>, Bsmt_Full_Bath <dbl>,
#> # Bsmt_Half_Bath <dbl>, Full_Bath <int>, Half_Bath <int>,
#> # Bedroom_AbvGr <int>, Kitchen_AbvGr <int>, TotRms_AbvGrd <int>,
#> # Fireplaces <int>, Garage_Cars <dbl>, Garage_Area <dbl>, …
# apply processing to other data:
bake(ames_rec, new_data = head(ames))
#> # A tibble: 6 × 259
#> Lot_Frontage Lot_Area Year_Built Year_Remod_Add Mas_Vnr_Area
#> <dbl> <int> <int> <int> <dbl>
#> 1 141 31770 1960 1960 112
#> 2 80 11622 1961 1961 0
#> 3 81 14267 1958 1958 108
#> 4 93 11160 1968 1968 0
#> 5 74 13830 1997 1998 0
#> 6 78 9978 1998 1998 20
#> # ℹ 254 more variables: BsmtFin_SF_1 <dbl>, BsmtFin_SF_2 <dbl>,
#> # Bsmt_Unf_SF <dbl>, Total_Bsmt_SF <dbl>, First_Flr_SF <int>,
#> # Second_Flr_SF <int>, Gr_Liv_Area <int>, Bsmt_Full_Bath <dbl>,
#> # Bsmt_Half_Bath <dbl>, Full_Bath <int>, Half_Bath <int>,
#> # Bedroom_AbvGr <int>, Kitchen_AbvGr <int>, TotRms_AbvGrd <int>,
#> # Fireplaces <int>, Garage_Cars <dbl>, Garage_Area <dbl>,
#> # Wood_Deck_SF <int>, Open_Porch_SF <int>, Enclosed_Porch <int>, …
# only return selected variables:
bake(ames_rec, new_data = head(ames), all_numeric_predictors())
#> # A tibble: 6 × 258
#> Lot_Frontage Lot_Area Year_Built Year_Remod_Add Mas_Vnr_Area
#> <dbl> <int> <int> <int> <dbl>
#> 1 141 31770 1960 1960 112
#> 2 80 11622 1961 1961 0
#> 3 81 14267 1958 1958 108
#> 4 93 11160 1968 1968 0
#> 5 74 13830 1997 1998 0
#> 6 78 9978 1998 1998 20
#> # ℹ 253 more variables: BsmtFin_SF_1 <dbl>, BsmtFin_SF_2 <dbl>,
#> # Bsmt_Unf_SF <dbl>, Total_Bsmt_SF <dbl>, First_Flr_SF <int>,
#> # Second_Flr_SF <int>, Gr_Liv_Area <int>, Bsmt_Full_Bath <dbl>,
#> # Bsmt_Half_Bath <dbl>, Full_Bath <int>, Half_Bath <int>,
#> # Bedroom_AbvGr <int>, Kitchen_AbvGr <int>, TotRms_AbvGrd <int>,
#> # Fireplaces <int>, Garage_Cars <dbl>, Garage_Area <dbl>,
#> # Wood_Deck_SF <int>, Open_Porch_SF <int>, Enclosed_Porch <int>, …
bake(ames_rec, new_data = head(ames), starts_with(c("Longitude", "Latitude")))
#> # A tibble: 6 × 4
#> Longitude_ns_1 Longitude_ns_2 Latitude_ns_1 Latitude_ns_2
#> <dbl> <dbl> <dbl> <dbl>
#> 1 0.570 -0.0141 0.472 0.394
#> 2 0.570 -0.0142 0.481 0.360
#> 3 0.569 -0.00893 0.484 0.348
#> 4 0.563 0.0212 0.496 0.301
#> 5 0.562 -0.212 0.405 0.634
#> 6 0.562 -0.212 0.407 0.630
相关用法
- 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等大神的英文原创作品 Apply a trained preprocessing recipe。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。