R/binary_label_dataset_metric.R

Defines functions binary_label_dataset_metric

Documented in binary_label_dataset_metric

#' Binary Label Dataset Metric
#' @description Class for computing metrics on an aif360 compatible dataset with binary labels.
#' @param data A aif360 compatible dataset.
#' @param privileged_groups Privileged groups. List containing privileged protected attribute name and value of the privileged protected attribute.
#' @param unprivileged_groups Unprivileged groups. List containing unprivileged protected attribute name and value of the unprivileged protected attribute.
#' @usage
#' binary_label_dataset_metric(data, privileged_groups, unprivileged_groups)
#' @examples
#' \donttest{
#' load_aif360_lib()
#' # Load the adult dataset
#' adult_dataset <- adult_dataset()
#'
#' # Define the groups
#' privileged_groups <- list("race", 1)
#' unprivileged_groups <- list("race", 0)
#'
#' # Metric for Binary Label Dataset
#' bm <- binary_label_dataset_metric(data = adult_dataset,
#'                                   privileged_groups = privileged_groups,
#'                                   unprivileged_groups = unprivileged_groups)
#'
#' # Difference in mean outcomes between unprivileged and privileged groups
#' bm$mean_difference()
#' }
#' @seealso
#' \href{https://aif360.readthedocs.io/en/latest/modules/metrics.html#aif360.metrics.BinaryLabelDatasetMetric}{Explore available binary label dataset metrics here}
#'
#' Available metrics are: base_rate, consistency, disparate_impact, mean_difference, num_negatives, num_positives and statistical_parity_difference.
#' @export
#' @importFrom reticulate py_suppress_warnings py_to_r
#'
binary_label_dataset_metric <- function(data,
                                        privileged_groups,
                                        unprivileged_groups){

   p_dict <- dict_fn(privileged_groups)
   u_dict <- dict_fn(unprivileged_groups)

   return(metrics$BinaryLabelDatasetMetric(data,
                                           privileged_groups = p_dict,
                                           unprivileged_groups = u_dict))
}

Try the aif360 package in your browser

Any scripts or data that you put into this service are public.

aif360 documentation built on July 1, 2020, 5:34 p.m.