In machine learning, recourse describes the ability for the individual to achieve a desired outcome under a fixed prediction model. Consider, for example, a classifier built to automate lending decisions. If this model does not provide recourse to a person who is denied a loan, then this person cannot change any of the input variables of the model to be approved for a loan, and will be denied credit so long as the model is deployed.
NOTE: THIS PACKAGE IS CURRENTLY UNDER ACTIVE DEVELOPMENT. THE CODE WILL CHANGE SUBSTANTIALLY WITH EACH COMMIT.
Please install from source, as this project is still in development and updating:
$ git clone [email protected]:ustunb/actionable-recourse.git
$ python setup.py
- Python 3.5+
- CPLEX 12.6+
The code may still work with older versions of Python and CPLEX, but this will not be tested or supported. If you're hesitant about switching to Python 3, check out this migration guide
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:
- Register for IBM OnTheHub
- Download the IBM ILOG CPLEX Optimization Studio from the software catalog
- Install the CPLEX Optimization Studio.
- Setup the CPLEX Python API as described here.
If you have problems installing CPLEX, check the CPLEX user manual or the CPLEX forums.
Actionable Recourse in Linear Classification
@inproceedings{recourse2018fatml,
Author = {Spangher, Alexander and Ustun, Berk},
Booktitle = {Proceedings of the 5th Workshop on Fairness, Accountability and Transparency in Machine Learning},
Title = {{Actionable Recourse in Linear Classification}},
Year = {2018}}
}