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 datamodel <- 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 intreactionsmodel <- 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