Python implementation of algorithms and experiments described in Algorithms and Learning for Fair Portfolio Design by Emily Diana, Travis Dick, Hadi Elzayn, Michael Kearns, Aaron Roth, Zachary Schutzman, Saeed Sharifi-Malvajerdi, and Juba Ziani
Suggested citation: coming soon
Usage: python experiments_paper.py e1 e2 e3...
where the e
's are the experiments to run.
E.g. python experiments_paper.py 1 4 11 2
will run Experiments 1, 2, 4, and 11.
- Experiment 1: No regret convergence time as a function of the step size.
- Experiment 2: Comparison of ILP, sparsify, greedy, greedy MM
- Experiment 3: Groups are drawn from gaussians with the same mean, different variance
- Experiment 4: Groups are drawn from gaussians with different means, same variance
- Experiment 5: Groups are drawn from gaussians, the second's mean and variance are scaled multiples of the first
- Experiment 6: One group is relatively small compared to the other
- Experiment 7: Generalization
- Experiment 8: Examining sparsification
- Experiment 9: Comparison of algorithms (Figure 2)
- Experiment 10: Product dependence (+timing)
- Experiment 11: Consumer dependence (+timing)
- Experiment 12: Generalization (Figure 3)
Edit configs.py
to change important global variables, including the solver used by CVXPY
. Currently supported: Gurobi and Mosek; other values will result in the default solvers being called.
Required packages are listed in requirements.txt
and installed with pip install -r requirements.txt
.