Black-box models may have very different structures. This function creates a unified representation of a model, which can be further processed by various explainers.

explain.default(model, data = NULL, y = NULL,
  predict_function = yhat, link = I, ..., label = tail(class(model),
  1))

explain(model, data = NULL, y = NULL, predict_function = yhat,
  link = I, ..., label = tail(class(model), 1))

Arguments

model

object - a model to be explained

data

data.frame or matrix - data that was used for fitting. If not provided then will be extracted from the model

y

numeric vector with outputs / scores. Currently used only by variable_dropout() explainer.

predict_function

function that takes two arguments: model and new data and returns numeric vector with predictions

link

function - a transformation/link function that shall be applied to raw model predictions

...

other parameters

label

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

Value

An object of the class 'explainer'.

It's a list with following fields:

  • model the explained model

  • data the dataset used for training

  • predict_function function that may be used for model predictions, shall return a single numerical value for each observation.

  • class class/classes of a model

  • label label, by default it's the last value from the class vector, but may be set to any character.

Details

Please NOTE, that the model is actually the only required argument. But some explainers may require that others will be provided too.

Examples

library("breakDown") wine_lm_model4 <- lm(quality ~ pH + residual.sugar + sulphates + alcohol, data = wine) wine_lm_explainer4 <- explain(wine_lm_model4, data = wine, label = "model_4v") wine_lm_explainer4
#> Model label: model_4v #> Model class: lm #> Data head : #> fixed.acidity volatile.acidity citric.acid residual.sugar chlorides #> 1 7.0 0.27 0.36 20.7 0.045 #> 2 6.3 0.30 0.34 1.6 0.049 #> free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol #> 1 45 170 1.001 3.0 0.45 8.8 #> 2 14 132 0.994 3.3 0.49 9.5 #> quality #> 1 6 #> 2 6
library("randomForest") wine_rf_model4 <- randomForest(quality ~ pH + residual.sugar + sulphates + alcohol, data = wine) wine_rf_explainer4 <- explain(wine_rf_model4, data = wine, label = "model_rf") wine_rf_explainer4
#> Model label: model_rf #> Model class: randomForest.formula,randomForest #> Data head : #> fixed.acidity volatile.acidity citric.acid residual.sugar chlorides #> 1 7.0 0.27 0.36 20.7 0.045 #> 2 6.3 0.30 0.34 1.6 0.049 #> free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol #> 1 45 170 1.001 3.0 0.45 8.8 #> 2 14 132 0.994 3.3 0.49 9.5 #> quality #> 1 6 #> 2 6