如何在食谱中添加自定义步骤
how to add custom step in recipe
我想使用自定义转换将我的特征转换为机器学习模型。
我的功能是:
step_customFunc <- function(x){ 1/(max(x+1) -x)}
有没有办法像这样使用配方和 tidymodels 在转换管道中添加它:
model_rec <- recipe(target ~ ., data) %>%
step_customFunc(all_predictors)
我想您会在这里找到一些文档:https://www.tidymodels.org/learn/develop/recipes/ 在“新步骤定义”下
如果您的自定义函数相当简单,即没有参数,您也可以使用 step_mutate_at()
来应用该函数。与创建新步骤相比,这将大大减少工作量。
library(recipes)
step_customFunc <- function(x){ 1 / (max(x + 1) - x)}
recipe(mpg ~ ., data = mtcars) %>%
step_mutate_at(all_predictors(), fn = step_customFunc) %>%
prep() %>%
bake(new_data = NULL)
#> # A tibble: 32 x 11
#> cyl disp hp drat wt qsec vs am gear carb mpg
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 0.333 0.00319 0.00442 0.493 0.263 0.134 0.5 1 0.5 0.2 21
#> 2 0.333 0.00319 0.00442 0.493 0.282 0.145 0.5 1 0.5 0.2 21
#> 3 0.2 0.00274 0.00412 0.481 0.244 0.189 1 1 0.5 0.125 22.8
#> 4 0.333 0.00465 0.00442 0.351 0.312 0.224 1 0.5 0.333 0.125 21.4
#> 5 1 0.00885 0.00621 0.360 0.335 0.145 0.5 0.5 0.333 0.143 18.7
#> 6 0.333 0.00403 0.00433 0.315 0.337 0.272 1 0.5 0.333 0.125 18.1
#> 7 1 0.00885 0.0110 0.368 0.350 0.124 0.5 0.5 0.333 0.2 14.3
#> 8 0.2 0.00306 0.00365 0.446 0.309 0.256 1 0.5 0.5 0.143 24.4
#> 9 0.2 0.00301 0.00415 0.498 0.305 1 1 0.5 0.5 0.143 22.8
#> 10 0.333 0.00327 0.00469 0.498 0.335 0.179 1 0.5 0.5 0.2 19.2
#> # … with 22 more rows
由 reprex package (v0.3.0)
于 2021 年 3 月 18 日创建
我想使用自定义转换将我的特征转换为机器学习模型。 我的功能是:
step_customFunc <- function(x){ 1/(max(x+1) -x)}
有没有办法像这样使用配方和 tidymodels 在转换管道中添加它:
model_rec <- recipe(target ~ ., data) %>%
step_customFunc(all_predictors)
我想您会在这里找到一些文档:https://www.tidymodels.org/learn/develop/recipes/ 在“新步骤定义”下
如果您的自定义函数相当简单,即没有参数,您也可以使用 step_mutate_at()
来应用该函数。与创建新步骤相比,这将大大减少工作量。
library(recipes)
step_customFunc <- function(x){ 1 / (max(x + 1) - x)}
recipe(mpg ~ ., data = mtcars) %>%
step_mutate_at(all_predictors(), fn = step_customFunc) %>%
prep() %>%
bake(new_data = NULL)
#> # A tibble: 32 x 11
#> cyl disp hp drat wt qsec vs am gear carb mpg
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 0.333 0.00319 0.00442 0.493 0.263 0.134 0.5 1 0.5 0.2 21
#> 2 0.333 0.00319 0.00442 0.493 0.282 0.145 0.5 1 0.5 0.2 21
#> 3 0.2 0.00274 0.00412 0.481 0.244 0.189 1 1 0.5 0.125 22.8
#> 4 0.333 0.00465 0.00442 0.351 0.312 0.224 1 0.5 0.333 0.125 21.4
#> 5 1 0.00885 0.00621 0.360 0.335 0.145 0.5 0.5 0.333 0.143 18.7
#> 6 0.333 0.00403 0.00433 0.315 0.337 0.272 1 0.5 0.333 0.125 18.1
#> 7 1 0.00885 0.0110 0.368 0.350 0.124 0.5 0.5 0.333 0.2 14.3
#> 8 0.2 0.00306 0.00365 0.446 0.309 0.256 1 0.5 0.5 0.143 24.4
#> 9 0.2 0.00301 0.00415 0.498 0.305 1 1 0.5 0.5 0.143 22.8
#> 10 0.333 0.00327 0.00469 0.498 0.335 0.179 1 0.5 0.5 0.2 19.2
#> # … with 22 more rows
由 reprex package (v0.3.0)
于 2021 年 3 月 18 日创建