In this folder you can find Python + Jupyter notebook code 
implementing the algorithms and experiments in the paper 
"Batch Multivalid Conformal Prediction".

There are two main subfolders: "src" and "experiments":

1) "src" contains the implementations for the algorithms + useful utilities
such as data generating code, conformal scorers, and plotting tools. In particular:
---> BatchGCP is implemented in src/MultivalidAlgorithms/GroupCoverage.py
---> BatchMVP is implemented in src/MultivalidAlgorithms/MultivalidCoverage.py
2) "experiments" contains Jupyter notebooks for the performed experiments.
These call upon methods in src to test the performance of BatchGCP and BatchMVP
on three different datasets: Folktables, and two synthetic datasets with group 
heterogeneity.

When running any of the Jupyter notebooks included here, 
please install any missing Python packages via running: !pip install <packagename>
(In particular, aside from standard libraries such as numpy, matplotlib etc., 
it will be necessary to pip install folktables, and pip install optax --- folktables
is the package with Folktables data, whereas optax is a jax-compatible optimization
library used by our implementation of BatchGCP.) 