Print Generic for Break Down Uncertainty Objects

# S3 method for break_down_uncertainty
print(x, ...)

Arguments

x

an explanation created with break_down_uncertainty

...

other parameters.

Value

a data frame.

References

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

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")
#> Preparation of a new explainer is initiated #> -> model label : glm #> -> data : 2207 rows 8 cols #> -> target variable : 2207 values #> -> predict function : yhat.glm will be used ( default ) #> -> predicted values : No value for predict function target column. ( default ) #> -> model_info : package stats , ver. 4.1.1 , task classification ( default ) #> -> predicted values : numerical, min = 0.1490412 , mean = 0.3221568 , max = 0.9878987 #> -> residual function : difference between y and yhat ( default ) #> -> residuals : numerical, min = -0.8898433 , mean = 4.198546e-13 , max = 0.8448637 #> A new explainer has been created!
bd_glm <- break_down_uncertainty(explain_titanic_glm, titanic_imputed[1, ]) bd_glm
#> min q1 median mean #> glm: age = 42 -0.01492541 -0.01492541 -0.01434645 -0.01446344 #> glm: class = 3rd 0.00000000 0.00000000 0.00000000 0.00000000 #> glm: embarked = Southampton 0.00000000 0.00000000 0.00000000 0.00000000 #> glm: fare = 7.11 -0.01823177 -0.01784977 -0.01784977 -0.01773120 #> glm: gender = male -0.10843751 -0.10725651 -0.10725651 -0.10725810 #> glm: parch = 0 0.00000000 0.00000000 0.00000000 0.00000000 #> glm: sibsp = 0 0.00000000 0.00000000 0.00000000 0.00000000 #> glm: survived = 0 0.00000000 0.00000000 0.00000000 0.00000000 #> q3 max #> glm: age = 42 -0.01405996 -0.01396446 #> glm: class = 3rd 0.00000000 0.00000000 #> glm: embarked = Southampton 0.00000000 0.00000000 #> glm: fare = 7.11 -0.01741824 -0.01705077 #> glm: gender = male -0.10725293 -0.10667755 #> glm: parch = 0 0.00000000 0.00000000 #> glm: sibsp = 0 0.00000000 0.00000000 #> glm: survived = 0 0.00000000 0.00000000
plot(bd_glm)
# \dontrun{ ## 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], y = HR$status[1:1000], verbose = FALSE) bd_rf <- break_down_uncertainty(explainer_rf, new_observation) bd_rf
#> min q1 median mean #> randomForest.fired: age = 57.73 -0.021328 0.0247710 0.253395 0.1946016 #> randomForest.fired: evaluation = 2 -0.018856 0.0073270 0.032725 0.0216108 #> randomForest.fired: gender = male -0.009380 0.0054740 0.019250 0.0911182 #> randomForest.fired: hours = 42.32 0.167650 0.1953890 0.220689 0.2461712 #> randomForest.fired: salary = 2 -0.270298 -0.1751675 -0.160058 -0.1610878 #> randomForest.ok: age = 57.73 -0.346842 -0.3468420 -0.199269 -0.1834688 #> randomForest.ok: evaluation = 2 0.028666 0.1002960 0.125760 0.1215018 #> randomForest.ok: gender = male -0.282642 -0.1062540 -0.021756 -0.0845928 #> randomForest.ok: hours = 42.32 -0.106876 -0.0970580 -0.046824 -0.0447352 #> randomForest.ok: salary = 2 0.046824 0.1184785 0.118552 0.1311450 #> randomForest.promoted: age = 57.73 -0.126732 -0.0061320 -0.006132 -0.0111328 #> randomForest.promoted: evaluation = 2 -0.201822 -0.1749640 -0.166262 -0.1431126 #> randomForest.promoted: gender = male -0.045880 -0.0019940 -0.000019 -0.0065254 #> randomForest.promoted: hours = 42.32 -0.247972 -0.2398625 -0.189205 -0.2014360 #> randomForest.promoted: salary = 2 -0.003902 0.0069900 0.034329 0.0299428 #> q3 max #> randomForest.fired: age = 57.73 0.3529740 0.362800 #> randomForest.fired: evaluation = 2 0.0418870 0.045408 #> randomForest.fired: gender = male 0.1521340 0.280686 #> randomForest.fired: hours = 42.32 0.3072255 0.351330 #> randomForest.fired: salary = 2 -0.1390850 -0.070866 #> randomForest.ok: age = 57.73 -0.0178415 0.005860 #> randomForest.ok: evaluation = 2 0.1307830 0.196252 #> randomForest.ok: gender = male -0.0061560 -0.003480 #> randomForest.ok: hours = 42.32 0.0010015 0.030996 #> randomForest.ok: salary = 2 0.1542220 0.268992 #> randomForest.promoted: age = 57.73 0.0129425 0.015468 #> randomForest.promoted: evaluation = 2 -0.0957510 -0.058120 #> randomForest.promoted: gender = male 0.0023685 0.023564 #> randomForest.promoted: hours = 42.32 -0.1719955 -0.156930 #> randomForest.promoted: salary = 2 0.0415060 0.077562
# 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])
#> Preparation of a new explainer is initiated #> -> model label : randomForest ( default ) #> -> data : 1000 rows 5 cols #> -> target variable : 1000 values #> -> predict function : yhat.randomForest will be used ( default ) #> -> predicted values : No value for predict function target column. ( default ) #> -> model_info : package randomForest , ver. 4.6.14 , task regression ( default ) #> -> predicted values : numerical, min = 2052.033 , mean = 3487.71 , max = 5776.623 #> -> residual function : difference between y and yhat ( default ) #> -> residuals : numerical, min = -632.8469 , mean = 1.070017 , max = 1328.352 #> A new explainer has been created!
bd_rf <- break_down_uncertainty(explainer_rf, apartments_test[1,]) bd_rf
#> min q1 median #> randomForest: construction.year = 1976 -128.5908 -119.3910 -75.48837 #> randomForest: district = Srodmiescie 981.8193 1036.9753 1054.79081 #> randomForest: floor = 3 178.8471 189.5230 194.12751 #> randomForest: no.rooms = 5 -229.8610 -225.7194 -212.31243 #> randomForest: surface = 131 -272.2211 -266.0785 -250.70512 #> mean q3 max #> randomForest: construction.year = 1976 -82.87975 -50.06424 -47.64365 #> randomForest: district = Srodmiescie 1046.73182 1054.79081 1091.59037 #> randomForest: floor = 3 197.65920 210.33113 215.52532 #> randomForest: no.rooms = 5 -200.17988 -203.34626 -130.21186 #> randomForest: surface = 131 -250.99715 -234.39585 -229.21426
# }