Skip to contents

Plot the raw or summarized feature selection errors as a boxplot, scatter plot, line plot, or bar plot with or without 1 SD error bars.

Usage

plot_feature_selection_err(
  fit_results,
  eval_results = NULL,
  evaluator_name = NULL,
  vary_params = NULL,
  metrics = NULL,
  show = c("point", "line", "errorbar"),
  ...
)

Arguments

fit_results

A tibble, as returned by the fit method.

eval_results

A list of result tibbles, as returned by the evaluate method.

evaluator_name

Name of Evaluator containing results to plot. To compute the evaluation summary results from scratch or if the evaluation summary results have not yet been evaluated, set to NULL.

vary_params

A vector of parameter names that are varied across in the Experiment.

metrics

A metric_set object indicating the metrics to plot. See yardstick::metric_set() for more details. Default NULL will use the default metrics in yardstick::metrics().

show

Character vector with elements being one of "boxplot", "point", "line", "bar", "errorbar", "ribbon" indicating what plot layer(s) to construct.

...

Additional arguments to pass to plot_eval_summary(). This includes arguments for plotting and for passing into summarize_feature_selection_err().

Value

If interactive = TRUE, returns a plotly object if plot_by is NULL and a list of plotly objects if plot_by is not NULL. If interactive = FALSE, returns a ggplot object if plot_by is NULL and a list of ggplot objects if plot_by is not NULL.

Examples

# generate example fit_results data
fit_results <- tibble::tibble(
  .rep = rep(1:2, times = 2),
  .dgp_name = c("DGP1", "DGP1", "DGP2", "DGP2"),
  .method_name = c("Method"),
  feature_info = lapply(
    1:4,
    FUN = function(i) {
      tibble::tibble(
        # feature names
        feature = c("featureA", "featureB", "featureC"),  
        # true feature support
        true_support = c(TRUE, FALSE, TRUE),  
        # estimated feature support
        est_support = c(TRUE, FALSE, FALSE),  
        # estimated feature importance scores
        est_importance = c(10, runif(2, min = -2, max = 2))  
      )
    }
  )
)

# generate example eval_results data
eval_results <- list(
  `Feature Selection Errors` = summarize_feature_selection_err(
    fit_results, 
    nested_data = "feature_info",
    truth_col = "true_support", 
    estimate_col = "est_support",
    imp_col = "est_importance"
  )
)

# create bar plot using pre-computed evaluation results
plt <- plot_feature_selection_err(fit_results = fit_results, 
                                  eval_results = eval_results,
                                  evaluator_name = "Feature Selection Errors",
                                  show = c("bar"))
# or alternatively, create the same plot without pre-computing evaluation results
plt <- plot_feature_selection_err(fit_results,
                                  show = c("bar"),
                                  nested_data = "feature_info",
                                  truth_col = "true_support",
                                  estimate_col = "est_support",
                                  imp_col = "est_importance")

# can customize plot (see plot_eval_summary() for possible arguments)
plt <- plot_feature_selection_err(fit_results = fit_results, 
                                  eval_results = eval_results,
                                  evaluator_name = "Feature Selection Errors",
                                  show = c("bar"),
                                  color_str = ".dgp_name",
                                  interactive = TRUE)