R/explain.R
h2o.fair_shap_plot.RdSHAP summary plot for one feature with protected groups on y-axis.
h2o.fair_shap_plot(
model,
newdata,
protected_columns,
column,
autoscale = TRUE,
background_frame = NULL
)H2O Model Object
H2OFrame
List of categorical columns that contain sensitive information such as race, gender, age etc.
String containing column name.
If TRUE, try to guess when to use log transformation on X axis.
Optional frame, that is used as the source of baselines for the marginal SHAP.
list of ggplot2 objects
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.fair_shap_plot(gbm, test, protected_columns, "AGE")
} # }