Skip to content

ustunb/ctfdist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ctfdist

ctfdist is a package to repair classification models that perform differently on the basis of protected attributes (e.g., gender, age group).

Highlights

  • works with any binary classification model
  • repairs disparities without training a new model
  • address popular fairness criteria (e.g., group-specific differences in TPR, FPR, equalized odds)
  • can be used to address disparities for more than 2 protected groups

Paper

Repairing without Retraining: Avoiding Disparate Impact with Counterfactual Distributions
Hao Wang, Berk Ustun, and Flavio P. Calmon

@article{wang2019ctf,
      author = {{Wang}, Hao and {Ustun}, Berk and {Calmon}, Flavio P.},
       title = "{Repairing without Retraining: Avoiding Disparate Impact with Counterfactual Distributions}",
     journal = {arXiv e-prints},
    keywords = {Computer Science - Machine Learning, Computer Science - Computers and Society, Computer Science - Information Theory, Statistics - Machine Learning},
        year = "2019",
         eid = {arXiv:1901.10501},
       pages = {arXiv:1901.10501},
archivePrefix = {arXiv},
      eprint = {1901.10501},
}

Installation

Minimum requirements:

  • Python 3.6+
  • CPLEX 12.6+,

The code may work with older versions of Python and CPLEX, but this will not be tested or supported.

Getting CPLEX

CPLEX is cross-platform commercial optimization tool with a Python API. It is freely available to students and faculty members at accredited institutions. To get CPLEX:

  1. Register for IBM OnTheHub
  2. Download the IBM ILOG CPLEX Optimization Studio from the software catalog
  3. Install the CPLEX Optimization Studio.
  4. Setup the CPLEX Python API as described here.

If you have problems installing CPLEX, check the CPLEX user manual or the CPLEX forums.

Development Timeline

This package is in active development. Code may change substantially with each commit

  • simplify installation
  • refactoring for future development
  • open-source LP solver to create preprocessor
  • scikit-learn API compatability

About

repair classifiers with disparate impact

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages