This repository contains the code to run SPECTRE (SPECTral uncertainty set for Robust Estimation), a framework to enhance minimax fairness guarantees without explicit access to demographic information.
SPECTRE is rooted in the mapping of the data using a set of random Fourier basis functions and modifying the spectrum to retain only the essential response frequencies. Additionaly, it constraints, in the frequency domain, the extent to which the worst-case distributions can deviate from the empirical distribution. Specifically, SPECTRE uses and adjusts the uncertainty set of a Minimax Risk Classifier, in the response frequency domain with the goal of attaining optimal fairness guarantees, measured by worst-group accuracy.
This repository contains several files to carry out different experiments:
SPECTRE.pyto run the main experiments with SPECTRE.SPECTRE_bounds.pyto run the experiments regarding the out-of-sample guarantees of SPECTRE.
The implementation of the MRC is based on its original code.
Currently, the available code supports the following datasets:
- American Community Survey datasets (through the
folktablespackage in python) - COMPAS
- Toy dataset
However, new datasets can easily be integrated into the code :)