break_down_uncertainty: Explanation Level Uncertainty of Sequential Variable...

Description Usage Arguments Value References See Also Examples

View source: R/break_down_uncertainty.R

Description

Function 'break_down_uncertainty()' calls 'B' times the break down algorithm for random orderings. Then it calculated distribution of attributions for these different orderings. Note that the 'shap()' function is just a simplified interface to the 'break_down_uncertainty()' function with a default value set to 'B=25'.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
break_down_uncertainty(x, ..., keep_distributions = TRUE, B = 10)

## S3 method for class 'explainer'
break_down_uncertainty(x, new_observation, ...,
  keep_distributions = TRUE, B = 10)

## Default S3 method:
break_down_uncertainty(x, data,
  predict_function = predict, new_observation, label = class(x)[1],
  ..., path = NULL, keep_distributions = TRUE, B = 10)

shap(x, ..., B = 25)

Arguments

x

an explainer created with function explain or a model.

...

other parameters.

keep_distributions

if TRUE then we will keep distribution for predicted values. It's needed by the describe function.

B

number of random paths

new_observation

a new observation with columns that correspond to variables used in the model.

data

validation dataset, will be extracted from 'x' if it is an explainer.

predict_function

predict function, will be extracted from 'x' if it is an explainer.

label

name of the model. By default it's extracted from the 'class' attribute of the model.

path

if specified, then this path will be highlighed on the plot. Use 'average' in order to show an average effect

Value

an object of the 'break_down_uncertainty' 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
50
51
52
53
54
55
56
57
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")

# there is no explanation level uncertanity linked with additive models
bd_rf <- break_down_uncertainty(explain_titanic_glm, titanic_small[1, ])
bd_rf
plot(bd_rf)


## Not run:
library("randomForest")
set.seed(1313)
model <- randomForest(status ~ . , data = HR)
new_observation <- HR_test[1,]

explainer_rf <- explain(model,
                        data = HR[1:1000, 1:5])

bd_rf <- break_down_uncertainty(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])

bd_rf <- break_down_uncertainty(explainer_rf, apartments_test[1,])
bd_rf
plot(bd_rf)

bd_rf <- break_down_uncertainty(explainer_rf, apartments_test[1,], path = 1:5)
plot(bd_rf)

bd_rf <- break_down_uncertainty(explainer_rf,
                                     apartments_test[1,],
                                     path = c("floor", "no.rooms", "district",
                                         "construction.year", "surface"))
plot(bd_rf)

bd_rf <- shap(explainer_rf,
              apartments_test[1,])
bd_rf
plot(bd_rf)
plot(bd_rf, show_boxplots = FALSE)

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