aif360.algorithms.preprocessing.LFR

class aif360.algorithms.preprocessing.LFR(unprivileged_groups, privileged_groups, k=5, Ax=0.01, Ay=1.0, Az=50.0, print_interval=250, verbose=0, seed=None)[source]

Learning fair representations is a pre-processing technique that finds a latent representation which encodes the data well but obfuscates information about protected attributes [2]. .. rubric:: References

Based on code from https://github.com/zjelveh/learning-fair-representations

Parameters:
  • unprivileged_groups (tuple) – Representation for unprivileged group.

  • privileged_groups (tuple) – Representation for privileged group.

  • k (int, optional) – Number of prototypes.

  • Ax (float, optional) – Input recontruction quality term weight.

  • Az (float, optional) – Fairness constraint term weight.

  • Ay (float, optional) – Output prediction error.

  • print_interval (int, optional) – Print optimization objective value every print_interval iterations.

  • verbose (int, optional) – If zero, then no output.

  • seed (int, optional) – Seed to make predict repeatable.

Methods

fit

Compute the transformation parameters that leads to fair representations.

fit_predict

Train a model on the input and predict the labels.

fit_transform

Fit and transform methods sequentially.

predict

Return a new dataset with labels predicted by running this Transformer on the input.

transform

Transform the dataset using learned model parameters.

__init__(unprivileged_groups, privileged_groups, k=5, Ax=0.01, Ay=1.0, Az=50.0, print_interval=250, verbose=0, seed=None)[source]
Parameters:
  • unprivileged_groups (tuple) – Representation for unprivileged group.

  • privileged_groups (tuple) – Representation for privileged group.

  • k (int, optional) – Number of prototypes.

  • Ax (float, optional) – Input recontruction quality term weight.

  • Az (float, optional) – Fairness constraint term weight.

  • Ay (float, optional) – Output prediction error.

  • print_interval (int, optional) – Print optimization objective value every print_interval iterations.

  • verbose (int, optional) – If zero, then no output.

  • seed (int, optional) – Seed to make predict repeatable.

fit(dataset, maxiter=5000, maxfun=5000)[source]

Compute the transformation parameters that leads to fair representations. :param dataset: Dataset containing true labels. :type dataset: BinaryLabelDataset :param maxiter: Maximum number of iterations. :type maxiter: int :param maxfun: Maxinum number of function evaluations. :type maxfun: int

Returns:

LFR – Returns self.

fit_transform(dataset, maxiter=5000, maxfun=5000, threshold=0.5)[source]

Fit and transform methods sequentially.

Parameters:
  • dataset (BinaryLabelDataset) – Dataset containing labels that needs to be transformed.

  • maxiter (int) – Maximum number of iterations.

  • maxfun (int) – Maxinum number of function evaluations.

  • threshold (float, optional) – threshold parameter used for binary label prediction.

Returns:

dataset (BinaryLabelDataset) – Transformed Dataset.

transform(dataset, threshold=0.5)[source]

Transform the dataset using learned model parameters. :param dataset: Dataset containing labels that needs to be transformed. :type dataset: BinaryLabelDataset :param threshold: threshold parameter used for binary label prediction. :type threshold: float, optional

Returns:

dataset (BinaryLabelDataset) – Transformed Dataset.