對於至少具有一個已由 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。