plot.break_down function

Plot Generic for Break Down Objects

Plot Generic for Break Down Objects

Displays a waterfall break down plot for objects of break_down class.

## S3 method for class 'break_down' plot( x, ..., baseline = NA, max_features = 10, min_max = NA, vcolors = DALEX::colors_breakdown_drwhy(), digits = 3, rounding_function = round, add_contributions = TRUE, shift_contributions = 0.05, plot_distributions = FALSE, vnames = NULL, title = "Break Down profile", subtitle = "", max_vars = NULL )

Arguments

  • x: an explanation created with break_down
  • ...: other parameters.
  • baseline: if numeric then veritical line starts in baseline.
  • max_features: maximal number of features to be included in the plot. default value is 10.
  • min_max: a range of OX axis. By default NA, therefore it will be extracted from the contributions of x. But it can be set to some constants, useful if these plots are to be used for comparisons.
  • vcolors: If NA (default), DrWhy colors are used.
  • digits: number of decimal places (round) or significant digits (signif) to be used. See the rounding_function argument.
  • rounding_function: a function to be used for rounding numbers. This should be signif which keeps a specified number of significant digits or round (which is default) to have the same precision for all components.
  • add_contributions: if TRUE, variable contributions will be added to the plot
  • shift_contributions: number describing how much labels should be shifted to the right, as a fraction of range. By default equal to 0.05.
  • plot_distributions: if TRUE then distributions of conditional propotions will be plotted. This requires keep_distributions=TRUE in the break_down, local_attributions, or local_interactions.
  • vnames: a character vector, if specified then will be used as labels on OY axis. By default NULL
  • title: a character. Plot title. By default "Break Down profile".
  • subtitle: a character. Plot subtitle. By default "".
  • max_vars: alias for the max_features parameter.

Returns

a ggplot2 object.

Examples

library("DALEX") library("iBreakDown") set.seed(1313) model_titanic_glm <- glm(survived ~ gender + age + fare, data = titanic_imputed, family = "binomial") explain_titanic_glm <- explain(model_titanic_glm, data = titanic_imputed, y = titanic_imputed$survived, label = "glm") bd_glm <- break_down(explain_titanic_glm, titanic_imputed[1, ]) bd_glm plot(bd_glm, max_features = 3) plot(bd_glm, max_features = 3, vnames = c("average","+ male","+ young","+ cheap ticket", "+ other factors", "final")) ## Not run: ## Not run: library("randomForest") set.seed(1313) # example with interaction # classification for HR data model <- randomForest(status ~ . , data = HR) new_observation <- HR_test[1,] explainer_rf <- explain(model, data = HR[1:1000,1:5]) bd_rf <- local_attributions(explainer_rf, new_observation) bd_rf plot(bd_rf) plot(bd_rf, baseline = 0) plot(bd_rf, min_max = c(0,1)) bd_rf <- local_attributions(explainer_rf, new_observation, keep_distributions = TRUE) bd_rf plot(bd_rf, plot_distributions = TRUE) bd_rf <- local_interactions(explainer_rf, new_observation, keep_distributions = TRUE) bd_rf plot(bd_rf) plot(bd_rf, plot_distributions = TRUE) # example for regression - apartment prices # here we do not have intreactions model <- randomForest(m2.price ~ . , data = apartments) explainer_rf <- explain(model, data = apartments_test[1:1000,2:6], y = apartments_test$m2.price[1:1000]) bd_rf <- local_attributions(explainer_rf, apartments_test[1,]) bd_rf plot(bd_rf, digits = 1) plot(bd_rf, digits = 1, baseline = 0) bd_rf <- local_attributions(explainer_rf, apartments_test[1,], keep_distributions = TRUE) plot(bd_rf, plot_distributions = TRUE) bd_rf <- local_interactions(explainer_rf, new_observation = apartments_test[1,], keep_distributions = TRUE) bd_rf plot(bd_rf) plot(bd_rf, plot_distributions = TRUE) ## End(Not run)

References

Explanatory Model Analysis. Explore, Explain and Examine Predictive Models. https://ema.drwhy.ai