Produce plots and dataframes related to a single model fairness.
Source:R/explain.R
h2o.inspect_model_fairness.RdProduce plots and dataframes related to a single model fairness.
Usage
h2o.inspect_model_fairness(
model,
newdata,
protected_columns,
reference,
favorable_class,
metrics = c("auc", "aucpr", "f1", "p.value", "selectedRatio", "total"),
background_frame = NULL
)Arguments
- model
H2O Model Object
- newdata
H2OFrame
- protected_columns
List of categorical columns that contain sensitive information such as race, gender, age etc.
- reference
List of values corresponding to a reference for each protected columns. If set to NULL, it will use the biggest group as the reference.
- favorable_class
Positive/favorable outcome class of the response.
- metrics
Character vector of metrics to show.
- background_frame
Optional frame, that is used as the source of baselines for the marginal SHAP. Setting it enables calculating SHAP in more models but it can be more time and memory consuming.
Examples
if (FALSE) { # \dontrun{
library(h2o)
h2o.init()
data <- h2o.importFile(paste0("https://s3.amazonaws.com/h2o-public-test-data/smalldata/",
"admissibleml_test/taiwan_credit_card_uci.csv"))
x <- c('LIMIT_BAL', 'AGE', 'PAY_0', 'PAY_2', 'PAY_3', 'PAY_4', 'PAY_5', 'PAY_6', 'BILL_AMT1',
'BILL_AMT2', 'BILL_AMT3', 'BILL_AMT4', 'BILL_AMT5', 'BILL_AMT6', 'PAY_AMT1', 'PAY_AMT2',
'PAY_AMT3', 'PAY_AMT4', 'PAY_AMT5', 'PAY_AMT6')
y <- "default payment next month"
protected_columns <- c('SEX', 'EDUCATION')
for (col in c(y, protected_columns))
data[[col]] <- as.factor(data[[col]])
splits <- h2o.splitFrame(data, 0.8)
train <- splits[[1]]
test <- splits[[2]]
reference <- c(SEX = "1", EDUCATION = "2") # university educated man
favorable_class <- "0" # no default next month
gbm <- h2o.gbm(x, y, training_frame = train)
h2o.inspect_model_fairness(gbm, test, protected_columns = protected_columns,
reference = reference, favorable_class = favorable_class)
} # }