# scikit-learn-Compatible API Reference¶

This is the class and function reference for the scikit-learn-compatible version of the AIF360 API. It is functionally equivalent to the normal API but it uses scikit-learn paradigms (where possible) and pandas.DataFrame for datasets. Not all functionality from AIF360 is supported yet. See Getting Started for a demo of the capabilities.

Note: This is under active development. Visit our GitHub page if you’d like to contribute!

## aif360.sklearn.datasets: Dataset loading functions¶

The dataset format for aif360.sklearn is a pandas.DataFrame with protected attributes in the index.

Warning

Currently, while all scikit-learn classes will accept DataFrames as inputs, most classes will return a numpy.ndarray. Therefore, many pre- processing steps, when placed before an aif360.sklearn step in a Pipeline, will cause errors.

### Utils¶

 datasets.ColumnAlreadyDroppedWarning Warning used if a column is attempted to be dropped twice.
 datasets.check_already_dropped(labels, …) Check if columns have already been dropped and return only those that haven’t. datasets.standardize_dataset(df, prot_attr, …) Separate data, targets, and possibly sample weights and populate protected attributes as sample properties. datasets.to_dataframe(data) Format an OpenML dataset Bunch as a DataFrame with categorical features if needed.

 datasets.fetch_adult([subset, data_home, …]) Load the Adult Census Income Dataset. datasets.fetch_german([data_home, …]) Load the German Credit Dataset. datasets.fetch_bank([data_home, percent10, …]) Load the Bank Marketing Dataset. datasets.fetch_compas([data_home, …]) Load the COMPAS Recidivism Risk Scores dataset. datasets.fetch_lawschool_gpa([subset, …]) Load the Law School GPA dataset

## aif360.sklearn.metrics: Fairness metrics¶

aif360.sklearn implements a number of fairness metrics for group fairness and individual fairness. For guidance on which metric to use for a given application, see our Guidance page.

### Meta-metrics¶

 metrics.difference(func, y, *args[, …]) Compute the difference between unprivileged and privileged subsets for an arbitrary metric. metrics.ratio(func, y, *args[, prot_attr, …]) Compute the ratio between unprivileged and privileged subsets for an arbitrary metric.

### Scorers¶

 metrics.make_scorer(score_func[, is_ratio]) Make a scorer from a ‘difference’ or ‘ratio’ metric (e.g.

### Generic metrics¶

 metrics.specificity_score(y_true, y_pred[, …]) Compute the specificity or true negative rate. metrics.sensitivity_score(y_true, y_pred[, …]) Alias of sklearn.metrics.recall_score() for binary classes only. metrics.base_rate(y_true[, y_pred, …]) Compute the base rate, $$Pr(Y = \text{pos_label}) = \frac{P}{P+N}$$. metrics.selection_rate(y_true, y_pred[, …]) Compute the selection rate, $$Pr(\hat{Y} = \text{pos_label}) = \frac{TP + FP}{P + N}$$. metrics.generalized_fpr(y_true, probas_pred) Return the ratio of generalized false positives to negative examples in the dataset, $$GFPR = \tfrac{GFP}{N}$$. metrics.generalized_fnr(y_true, probas_pred) Return the ratio of generalized false negatives to positive examples in the dataset, $$GFNR = \tfrac{GFN}{P}$$.

### Group fairness metrics¶

 metrics.statistical_parity_difference(*y[, …]) Difference in selection rates. metrics.mean_difference(*y[, prot_attr, …]) Alias of statistical_parity_difference(). metrics.disparate_impact_ratio(*y[, …]) Ratio of selection rates. metrics.equal_opportunity_difference(y_true, …) A relaxed version of equality of opportunity. metrics.average_odds_difference(y_true, y_pred) A relaxed version of equality of odds. metrics.average_odds_error(y_true, y_pred[, …]) A relaxed version of equality of odds. metrics.between_group_generalized_entropy_error(…) Compute the between-group generalized entropy.

### Individual fairness metrics¶

 metrics.generalized_entropy_index(b[, alpha]) Generalized entropy index measures inequality over a population. metrics.generalized_entropy_error(y_true, y_pred) Compute the generalized entropy. metrics.theil_index(b) The Theil index is the generalized_entropy_index() with $$\alpha = 1$$. metrics.coefficient_of_variation(b) The coefficient of variation is two times the square root of the generalized_entropy_index() with $$\alpha = 2$$. metrics.consistency_score(X, y[, n_neighbors]) Compute the consistency score.

## aif360.sklearn.preprocessing: Pre-processing algorithms¶

Pre-processing algorithms modify a dataset to be more fair (data in, data out).

### Pre-processors¶

 preprocessing.Reweighing([prot_attr]) Sample reweighing.

### Meta-Estimator¶

 preprocessing.ReweighingMeta(estimator[, …]) A meta-estimator which wraps a given estimator with a reweighing preprocessing step.

## aif360.sklearn.inprocessing: In-processing algorithms¶

In-processing algorithms train a fair classifier (data in, predictions out).

### In-processors¶

 inprocessing.AdversarialDebiasing([…]) Debiasing with adversarial learning. inprocessing.ExponentiatedGradientReduction(…) Exponentiated gradient reduction for fair classification. inprocessing.GridSearchReduction(prot_attr, …) Grid search reduction for fair classification or regression.

## aif360.sklearn.postprocessing: Post-processing algorithms¶

Post-processing algorithms modify predictions to be more fair (predictions in, predictions out).

### Post-processors¶

 postprocessing.CalibratedEqualizedOdds([…]) Calibrated equalized odds post-processor.

### Meta-Estimator¶

 postprocessing.PostProcessingMeta(estimator) A meta-estimator which wraps a given estimator with a post-processing step.

## aif360.sklearn.utils: Utility functions¶

### Validation¶

 utils.check_inputs(X, y[, sample_weight, …]) Input validation for debiasing algorithms. utils.check_groups(arr, prot_attr[, …]) Get groups from the index of arr.