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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。