# Mitigations#

In this section, we discuss the various mitigation techniques implemented in Fairlearn. One thing which should always be remembered: all the algorithms herein will provide mathematical guarantees as to how close they can drive some unfairness metric to zero. However this does not mean that the results are fair.

Fairlearn contains the following algorithms for mitigating unfairness:

algorithm

description

binary classification

regression

supported fairness definitions

`ExponentiatedGradient`

A wrapper (reduction) approach to fair classification described in A Reductions Approach to Fair Classification 1.

DP, EO, TPRP, FPRP, ERP, BGL

`GridSearch`

A wrapper (reduction) approach described in Section 3.4 of A Reductions Approach to Fair Classification 1. For regression it acts as a grid-search variant of the algorithm described in Section 5 of Fair Regression: Quantitative Definitions and Reduction-based Algorithms 2.

DP, EO, TPRP, FPRP, ERP, BGL

`ThresholdOptimizer`

Postprocessing algorithm based on the paper Equality of Opportunity in Supervised Learning 3. This technique takes as input an existing classifier and the sensitive feature, and derives a monotone transformation of the classifier’s prediction to enforce the specified parity constraints.

DP, EO, TPRP, FPRP

`CorrelationRemover`

Preprocessing algorithm that removes correlation between sensitive features and non-sensitive features through linear transformations.

`AdversarialFairnessClassifier`

An optimization algorithm based on the paper Mitigating Unwanted Biases with Adversarial Learning 4. This method trains a neural network classifier that minimizes training error while preventing an adversarial network from inferring sensitive features. The neural networks can be defined either as a PyTorch module or TensorFlow2 model.

DP, EO

`AdversarialFairnessRegressor`

The regressor variant of the above `AdversarialFairnessClassifier`. Useful to train a neural network with continuous valued output(s).

DP, EO

DP refers to demographic parity, EO to equalized odds, TPRP to true positive rate parity, FPRP to false positive rate parity, ERP to error rate parity, and BGL to bounded group loss. For more information on the definitions refer to Fairness in Machine Learning. To request additional algorithms or fairness definitions, please open a new issue on GitHub.

Note

Fairlearn mitigation algorithms largely follow the conventions of scikit-learn, meaning that they implement the `fit` method to train a model and the `predict` method to make predictions. However, in contrast with scikit-learn, Fairlearn algorithms can produce randomized predictors. Randomization of predictions is required to satisfy many definitions of fairness. Because of randomization, it is possible to get different outputs from the predictor’s `predict` method on identical data. For each of our algorithms, we provide explicit access to the probability distribution used for randomization.