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. |
Loaders¶
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. |
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. |
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. |