group_metric {fairmodels} | R Documentation |
Group metric
Description
Group metric enables to extract data from metrics generated for each subgroup (values in protected variable)
The closer metric values are to each other, the less bias particular model has. If parity_loss
parameter is set to TRUE
, distance between
privileged and unprivileged subgroups will be measured. When plotted shows both fairness metric and chosen performance metric.
Usage
group_metric(
x,
fairness_metric = NULL,
performance_metric = NULL,
parity_loss = FALSE,
verbose = TRUE
)
Arguments
x |
object of class |
fairness_metric |
character, fairness metric name, if |
performance_metric |
character, performance metric name |
parity_loss |
logical, if |
verbose |
logical, whether to print information about metrics on console or not. Default |
Details
Available metrics:
Fairness metrics (Full names explained in fairness_check
documentation):
TPR
TNR
PPV
NPV
FNR
FPR
FDR
FOR
TS
ACC
STP
F1
Performance metrics
recall
precision
accuracy
f1
auc
Value
group_metric
object.
It is a list with following items:
group_metric_data -
data.frame
containing fairness metric scores for each modelperformance_data -
data.frame
containing performance metric scores for each modelfairness_metric - name of fairness metric
performance_metric - name of performance metric
Examples
data("german")
y_numeric <- as.numeric(german$Risk) - 1
lm_model <- glm(Risk ~ .,
data = german,
family = binomial(link = "logit")
)
explainer_lm <- DALEX::explain(lm_model, data = german[, -1], y = y_numeric)
fobject <- fairness_check(explainer_lm,
protected = german$Sex,
privileged = "male"
)
gm <- group_metric(fobject, "TPR", "f1", parity_loss = TRUE)
plot(gm)
rf_model <- ranger::ranger(Risk ~ .,
data = german,
probability = TRUE,
num.trees = 200
)
explainer_rf <- DALEX::explain(rf_model, data = german[, -1], y = y_numeric)
fobject <- fairness_check(explainer_rf, fobject)
gm <- group_metric(fobject, "TPR", "f1", parity_loss = TRUE)
plot(gm)