← Back to all sparks
W

workflowsets

ANALYTICS
Velocity0.0

Create and evaluate many combinations of preprocessors and models at once in R

workflowsets keeps widening what counts as a model worth comparing.

tidymodelsmodel-comparisonclusteringtuningcensored-regressionapi-cleanup
Current state
workflowsets holds a grid of preprocessor and model combinations and evaluates all of them under one call to workflow_map(). The releases in view widen that grid — clustering specifications via tidyclust, censored regression via an eval_time argument, case weights — and fill in the accessors around it with collect_notes(), collect_extracts() and fit_best(). The long-running pull_*() deprecation finally reached the error stage in 1.1.1.
Where it's heading
The package's job is comparison, so its direction is set by what tidymodels can express: every time a new model paradigm lands elsewhere, workflowsets has to learn to rank it. Clustering was the largest of those steps because it has no outcome column to score against. Alongside that runs a slower cleanup — named-only optional arguments, type checking on inputs, informative errors when someone passes a workflow set to fit() — that reads as a package hardening after its API settled.
Prediction
Expect the tailor postprocessors that workflows added in 1.3.0 to need representation here next, since a workflow set that cannot vary the postprocessor cannot compare calibration choices.

Recent moves

  1. 1y ago

    collect_extracts() added; pull_*() functions now error

    Adds a collect_extracts() method and escalates the pull_*() functions from warning to error, closing a deprecation that has been running since 0.1.0. The minimum R version moves to 4.1, matching workflows in the same period.

    View source ↗
  2. 2y ago

    Censored regression evaluation; eval_time breaks positional args

    Enables evaluating censored regression models and adds collect_notes(), a wflow_id colouring option for autoplot(), and input type checking. The new eval_time argument to rank_results() breaks positional passing of select_best, which is a quiet break for anyone who never named their arguments.

    View source ↗
  3. 3y ago

    Clustering models enter workflow sets via tidyclust

    ⚡ SPARK

    Brings clustering model specifications into workflow sets via tidyclust, so unsupervised models can be gridded and tuned in the same object as supervised ones. It also adds fit_best() to go straight from an evaluated set to a fitted best model.

    View source ↗
  4. 4y ago

    Case weights supported across a workflow set

    Adds case weight support through a case_weights argument to workflow_set(), plus parameter extraction methods. Case weights arriving at the set level means an imbalanced-data strategy can be held constant across every combination being compared.

    View source ↗
  5. 4y ago

    Update models and recipes across a set; mixed inputs accepted

    Adds update_workflow_model() and update_workflow_recipe() as set-level analogues of the workflows functions, and lets as_workflow_set() accept a mixture of workflows and tune_results objects. The mixed input is the useful part — results computed separately can be pulled into one comparison.

    View source ↗
  6. 5y ago

    extract_*() supersedes pull_*() across tidymodels

    Introduces the extract_*() functions that supersede pull_*(), described explicitly as part of a wider move to a shared family of extractors across tidymodels. Also fixes an autoplot() bug that ranked workflows by the wrong metric when a ranking metric was not specified.

    View source ↗