This repository is a reproduction of Fairness and Bias in Online Selection. This readme contains a high-level explanation of the repository. Inside the files, all functions have docstrings that explain their functionality.
To install requirements:
pip install -r requirements.txt
It is advisible to run this command in a new environment to avoid package conflicts (python venv or a conda environment).
📋 The datasets required to run the code are included in the repository.
By running the main.ipynb notebook, all algorithms will be called. The plots and values from the reproduction will run and the results will be printed.
This paper does not contain any trainable or pre-trained models.
The selection algorithms are stored in files prefixed with fair and unfair. synthetic_data.py contains the code to generate the data used for the Equal P, Unequal P and Prophet experiment results. All code used to preprocess the datasets is contained in secretary_data.py. Lastly, random_handler.py, distributions.py and utils.py contain helper functions and classes.
secretary_eval.py contains the code that generates evaluation metrics for the algorithms. prophet_experiments.py, secretary_experiments.py, serve as files that aggregate all previous code and run it to generate the results.
The content of files that have names present in the original C++ repository have the same functionality, but the implementation might differ.
📋 The synthetic data generation can be changed by altering the RNG seed in random_handler.py.
The images in the plots folder with the __ suffix are the plots used in our reproduction paper. Similarly, the distributions folder contains distributions for the datasets.