local_interactions: Model Agnostic Sequential Variable Attributions with...

Description Usage Arguments Value References See Also Examples

View source: R/local_interactions.R

Description

This function implements decomposition of model predictions with identification of interactions. The complexity of this function is O(2*p) for additive models and O(2*p^2) for interactions. This function works in a similar way to step-up and step-down greedy approximations in function 'breakDown::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.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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.

Value

an object of the 'break_down' class.

References

Predictive Models: Visual Exploration, Explanation and Debugging https://pbiecek.github.io/PM_VEE

See Also

break_down, local_attributions

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
library("DALEX")
library("iBreakDown")
# Toy examples, because CRAN angels ask for them
titanic <- na.omit(titanic)
set.seed(1313)
titanic_small <- titanic[sample(1:nrow(titanic), 500), c(1,2,6,9)]
model_titanic_glm <- glm(survived == "yes" ~ gender + age + fare,
                       data = titanic_small, family = "binomial")
explain_titanic_glm <- explain(model_titanic_glm,
                           data = titanic_small[,-9],
                           y = titanic_small$survived == "yes")

bd_rf <- local_interactions(explain_titanic_glm, titanic_small[1, ], interaction_preference = 500)
bd_rf
plot(bd_rf, max_features = 2)


library("DALEX")
# 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],
                 y = HR$status[1:1000])

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)

DrWhy2/breakDown2 documentation built on Dec. 16, 2019, 3:31 a.m.