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=1, 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].

References

[2]R. Zemel, Y. Wu, K. Swersky, T. Pitassi, and C. Dwork, “Learning Fair Representations.” International Conference on Machine Learning, 2013.

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=1, 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, **kwargs)[source]

Compute the transformation parameters that leads to fair representations.

Parameters:dataset (BinaryLabelDataset) – Dataset containing true labels.
Returns:LFR – Returns self.
fit_transform(dataset, seed=None)[source]

fit and transform methods sequentially

transform(dataset, threshold=0.5, **kwargs)[source]

Transform the dataset using learned model parameters.

Parameters:
  • dataset (BinaryLabelDataset) – Dataset containing labels that needs to be transformed.
  • threshold (float, optional) – threshold parameter used for binary label prediction.
Returns:

dataset (BinaryLabelDataset) – Transformed Dataset.