tidymodels / workflowsets

Create a collection of modeling workflows
https://workflowsets.tidymodels.org/
Other
88 stars 8 forks source link

`workflow_map()` does not allow passing `eval_time` #139

Closed simonpcouch closed 5 months ago

simonpcouch commented 5 months ago

workflowsets:::check_tune_args doesn't allow passing eval_time as an argument, which means that censored regression models can't be evaluated with the package:

suppressPackageStartupMessages(library(tidymodels))
suppressPackageStartupMessages(library(censored))
suppressPackageStartupMessages(library(baguette))

set.seed(1)
sim_dat <- prodlim::SimSurv(500) %>%
  mutate(event_time = Surv(time, event)) %>%
  select(event_time, X1, X2)

set.seed(2)
split <- initial_split(sim_dat)
sim_tr <- training(split)
sim_te <- testing(split)
sim_rs <- vfold_cv(sim_tr)

time_points <- c(10, 1, 5, 15)

spec_bt <-
  bag_tree() %>%
  set_mode("censored regression")

spec_ph <-
  proportional_hazards(penalty = .5) %>%
  set_engine("glmnet") %>%
  set_mode("censored regression")

wflow_set <-
  workflow_set(
    preproc = list(form = event_time ~ X1 + X2),
    models = list(bt = spec_bt, ph = spec_ph)
  )

wflow_set_fit_stc <-
  workflow_map(
    wflow_set,
    "fit_resamples",
    seed = 2193,
    resamples = sim_rs,
    metrics = metric_set(brier_survival_integrated),
    eval_time = time_points
  )
#> Error in `halt()`:
#> ! The following options cannot be used as arguments for `fit_resamples()` or the `tune_*()` functions: 'eval_time'
#> Execution stopped; returning current results

Created on 2024-01-23 with reprex v2.1.0