local_interactions function

Model Agnostic Sequential Variable Attributions with Interactions

Model Agnostic Sequential Variable Attributions with Interactions

This function implements decomposition of model predictions with identification of interactions. The complexity of this function is O(2p) for additive models and O(2p^2) for interactions. This function works in a similar way to step-up and step-down greedy approximations in function break_down(). The main difference is that in the first step the order of variables and interactions is determined. And in the second step the impact is calculated.

local_interactions(x, ...) ## S3 method for class 'explainer' local_interactions(x, new_observation, keep_distributions = FALSE, ...) ## Default S3 method: local_interactions( x, data, predict_function = predict, new_observation, label = class(x)[1], keep_distributions = FALSE, order = NULL, interaction_preference = 1, ... )

Arguments

  • x: an explainer created with function explain or a model.
  • ...: other parameters.
  • new_observation: a new observation with columns that correspond to variables used in the model.
  • keep_distributions: if TRUE, then the distribution of partial predictions is stored in addition to the average.
  • data: validation dataset, will be extracted from x if it's an explainer.
  • predict_function: predict function, will be extracted from x if it's an explainer.
  • label: character - the name of the model. By default it's extracted from the 'class' attribute of the model.
  • order: if not NULL, then it will be a fixed order of variables. It can be a numeric vector or vector with names of variables/interactions.
  • interaction_preference: an integer specifying which interactions will be present in an explanation. The larger the integer, the more frequently interactions will be presented.

Returns

an object of the break_down class.

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 <- local_interactions(explain_titanic_glm, titanic_imputed[1, ], interaction_preference = 500) bd_glm plot(bd_glm, max_features = 2) ## Not run: library("randomForest") # 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_interactions(explainer_rf, new_observation) bd_rf plot(bd_rf) # 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]) new_observation <- apartments_test[1,] bd_rf <- local_interactions(explainer_rf, new_observation, 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

See Also

break_down, local_attributions