當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R recipes bake 應用經過訓練的預處理配方


對於至少具有一個已由 prep() 訓練的預處理操作的配方,將計算應用於新數據。

用法

bake(object, ...)

# S3 method for recipe
bake(object, new_data, ..., composition = "tibble")

參數

object

經過訓練的對象,例如具有至少一個預處理操作的 recipe()

...

一個或多個選擇器函數用於選擇函數將返回哪些變量。有關更多詳細信息,請參閱selections()。如果未給出選擇器,則默認使用 everything()

new_data

將應用預處理的 DataFrame 或 tibble。如果將 NULL 賦予 new_data ,則將返回預處理的訓練數據(假設使用了prep(retain = TRUE))。

composition

"tibble"、"matrix"、"data.frame" 或 "dgCMatrix" 用於處理數據集的格式。請注意,烘焙過程中的所有計算都是以非稀疏格式完成的。另請注意,應在任何選擇器之後調用此參數,並且選擇器應僅解析為數字列(否則會引發錯誤)。

一個 tibble、矩陣或稀疏矩陣,其列可能與 new_data 中的原始列不同。

細節

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/recipe.R

相關用法


注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Apply a trained preprocessing recipe。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。