This function plots What-If Plots for a single prediction / observation.

# S3 method for ceteris_paribus_2d_explainer
plot(
  x,
  ...,
  facet_ncol = NULL,
  add_raster = TRUE,
  add_contour = TRUE,
  bins = 3,
  add_observation = TRUE,
  pch = "+",
  size = 6
)

Arguments

x

a ceteris paribus explainer produced with the ceteris_paribus_2d() function

...

currently will be ignored

facet_ncol

number of columns for the facet_wrap

add_raster

if TRUE then geom_raster will be added to present levels with diverging colors

add_contour

if TRUE then geom_contour will be added to present contours

bins

number of contours to be added

add_observation

if TRUE then geom_point will be added to present observation that is explained

pch

character, symbol used to plot observations

size

numeric, size of individual datapoints

Value

a ggplot2 object

References

Explanatory Model Analysis. Explore, Explain, and Examine Predictive Models. https://ema.drwhy.ai/

Examples

library("DALEX") library("ingredients") library("ranger") # \donttest{ apartments_rf_model <- ranger(m2.price ~., data = apartments) explainer_rf <- explain(apartments_rf_model, data = apartments_test[,-1], y = apartments_test[,1], verbose = FALSE) new_apartment <- apartments_test[1,] new_apartment
#> m2.price construction.year surface floor no.rooms district #> 1001 4644 1976 131 3 5 Srodmiescie
wi_rf_2d <- ceteris_paribus_2d(explainer_rf, observation = new_apartment) head(wi_rf_2d)
#> y_hat new_x1 new_x2 vname1 vname2 label #> 1 5222.393 1920 20.0 construction.year surface ranger #> 2 5227.252 1920 21.3 construction.year surface ranger #> 3 5247.392 1920 22.6 construction.year surface ranger #> 4 5232.506 1920 23.9 construction.year surface ranger #> 5 5242.054 1920 25.2 construction.year surface ranger #> 6 5237.366 1920 26.5 construction.year surface ranger
plot(wi_rf_2d)
#> Warning: Raster pixels are placed at uneven horizontal intervals and will be shifted. Consider using geom_tile() instead.
#> Warning: Raster pixels are placed at uneven vertical intervals and will be shifted. Consider using geom_tile() instead.
plot(wi_rf_2d, add_contour = FALSE)
#> Warning: Raster pixels are placed at uneven horizontal intervals and will be shifted. Consider using geom_tile() instead.
#> Warning: Raster pixels are placed at uneven vertical intervals and will be shifted. Consider using geom_tile() instead.
plot(wi_rf_2d, add_observation = FALSE)
#> Warning: Raster pixels are placed at uneven horizontal intervals and will be shifted. Consider using geom_tile() instead.
#> Warning: Raster pixels are placed at uneven vertical intervals and will be shifted. Consider using geom_tile() instead.
plot(wi_rf_2d, add_raster = FALSE)
# HR data model <- ranger(status ~ gender + age + hours + evaluation + salary, data = HR, probability = TRUE) pred1 <- function(m, x) predict(m, x)$predictions[,1] explainer_rf_fired <- explain(model, data = HR[,1:5], y = as.numeric(HR$status == "fired"), predict_function = pred1, label = "fired")
#> Preparation of a new explainer is initiated #> -> model label : fired #> -> data : 7847 rows 5 cols #> -> target variable : 7847 values #> -> predict function : pred1 #> -> predicted values : No value for predict function target column. ( default ) #> -> model_info : package ranger , ver. 0.13.1 , task classification ( default ) #> -> predicted values : numerical, min = 0.0003492977 , mean = 0.3636236 , max = 0.9849971 #> -> residual function : difference between y and yhat ( default ) #> -> residuals : numerical, min = -0.7439001 , mean = 0.0002096664 , max = 0.8139948 #> A new explainer has been created!
new_emp <- HR[1,] new_emp
#> gender age hours evaluation salary status #> 1 male 32.58267 41.88626 3 1 fired
wi_rf_2d <- ceteris_paribus_2d(explainer_rf_fired, observation = new_emp) head(wi_rf_2d)
#> y_hat new_x1 new_x2 vname1 vname2 label #> 1 0.4340871 20.00389 35.00000 age hours fired #> 2 0.4958088 20.00389 35.44978 age hours fired #> 3 0.5366813 20.00389 35.89955 age hours fired #> 4 0.5343380 20.00389 36.34933 age hours fired #> 5 0.5209654 20.00389 36.79911 age hours fired #> 6 0.5449915 20.00389 37.24889 age hours fired
plot(wi_rf_2d)
#> Warning: Raster pixels are placed at uneven horizontal intervals and will be shifted. Consider using geom_tile() instead.
#> Warning: Raster pixels are placed at uneven vertical intervals and will be shifted. Consider using geom_tile() instead.
# }