View source: R/fairness_check_regression.R
fairness_check_regression | R Documentation |
This is an experimental approach. Please have it in mind when using it. Fairness_check_regression enables to check fairness in regression models. It uses so-called probabilistic classification to approximate fairness measures. The metrics in use are independence, separation, and sufficiency. The intuition behind this method is that the closer to 1 the metrics are the better. When all metrics are close to 1 then it means that from the perspective of a predictive model there are no meaningful differences between subgroups.
fairness_check_regression( x, ..., protected = NULL, privileged = NULL, label = NULL, epsilon = NULL, verbose = TRUE, colorize = TRUE )
x |
object created with |
... |
possibly more objects created with |
protected |
factor, protected variable (also called sensitive attribute), containing privileged and unprivileged groups |
privileged |
factor/character, one value of |
label |
character, vector of labels to be assigned for explainers, default is explainer label. |
epsilon |
numeric, boundary for fairness checking, lowest/maximal acceptable metric values for unprivileged. Default value is 0.8. |
verbose |
logical, whether to print information about creation of fairness object |
colorize |
logical, whether to print information in color |
Sometimes during metric calculation faze approximation algorithms (logistic regression models) might not coverage properly. This might indicate that the membership to subgroups has strong predictive power.
Steinberg, Daniel & Reid, Alistair & O'Callaghan, Simon. (2020). Fairness Measures for Regression via Probabilistic Classification. - https://arxiv.org/pdf/2001.06089.pdf
set.seed(123) data <- data.frame( x = c(rnorm(500, 500, 100), rnorm(500, 400, 200)), pop = c(rep("A", 500), rep("B", 500)) ) data$y <- rnorm(length(data$x), 1.5 * data$x, 100) # create model model <- lm(y ~ ., data = data) # create explainer exp <- DALEX::explain(model, data = data, y = data$y) # create fobject fobject <- fairness_check_regression(exp, protected = data$pop, privileged = "A") # results fobject plot(fobject) model_ranger <- ranger::ranger(y ~ ., data = data, seed = 123) exp2 <- DALEX::explain(model_ranger, data = data, y = data$y) fobject <- fairness_check_regression(exp2, fobject) # results fobject plot(fobject)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.