Skip to content

Latest commit

 

History

History
66 lines (48 loc) · 2.53 KB

README.md

File metadata and controls

66 lines (48 loc) · 2.53 KB

PMCBoost

PMCBoost is a sklearn-compatible package for Proportional MultiCalibration Boosting. PMCBoost is a post-processing method that improves the calibration of a given classifier among subpopulations in the data. PMCBoost supports both Multicalibration (Hébert-Johnson et al 2018) and Proportional Mulicalibration Boosting.

"Proportional" multicalibration extends multicalibration by controlling both the absolute calibration error in each (group,bin) category, as well as the proportion of calibration error relative to the true (group,bin) risk. This makes it control both multicalibration and differential calibration (Foulds et al 2019) simultaneously.

Cite

The following paper describes PMC in more detail:

La Cava, W., Lett, E., and Wan, G. (2023). Fair admission risk prediction with proportional multicalibration. Conference on Health, Inference, and Learning. (Best Paper Award!) PMLR | arXiv | experiments

Installation

pip install git+https://github.com/cavalab/pmcboost

Usage

from pmc import MultiCalibrator, Auditor

# start with a baseline estimator
from sklearn.linear_model import LogisticRegression
estimator = LogisticRegression()

# setup your data
X = pd.DataFrame()
y = pd.Series()
# groups correspond to columns in X that should be audited for fairness. 
groups = ['race','gender','income']
# create a Mutlicabrator
est = MultiCalibrator(
    estimator = estimator,
    auditor_type = Auditor(groups=groups)
    )
# train
est.fit(X,y)

Type help(pmc.MultiCalibrator) in Python to see additional parameters, or look here.

Related Work

Contact

  • William La Cava
    • @lacava
    • william lacava at gmail dot com
    • cavalab.org