tune_grid() and gam model incl. gam-formula

Question:
How to use tune_grid() and a gam model (gen_additive_mod()) incl. gam-formula. please provide a code-snippet. thx.

Here's an example:

library(tidymodels)
#> Registered S3 method overwritten by 'tune':
#>   method                   from   
#>   required_pkgs.model_spec parsnip
#> Warning: package 'broom' was built under R version 4.1.2
tidymodels_prefer()

gam_spec <- gen_additive_mod(select_features = tune()) %>% set_mode("regression")

gam_wflow <- 
  workflow() %>% 
  # smoothing must be specified here:
  add_model(gam_spec, formula = mpg ~ s(disp) + wt + gear) %>% 
  add_variables(predictors = c(everything()), outcomes = mpg)

set.seed(1)
car_folds <- bootstraps(mtcars, times = 5)

gam_res <- 
  gam_wflow %>% tune_grid(resamples = car_folds)

show_best(gam_res, metric = "rmse")
#> # A tibble: 2 × 7
#>   select_features .metric .estimator  mean     n std_err .config             
#>   <lgl>           <chr>   <chr>      <dbl> <int>   <dbl> <chr>               
#> 1 FALSE           rmse    standard    3.48     5   0.848 Preprocessor1_Model2
#> 2 TRUE            rmse    standard    3.48     5   0.848 Preprocessor1_Model1

Created on 2022-01-24 by the reprex package (v2.0.1)

You can't optimize the smoothing parameters in tune_grid(). You could set up multiple workflows with different smoothing specifications and use a workflow set to try different ideas.

1 Like

Thank you Max. Post must be at least 20 characters.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.