  We tackle the problem of computing counterfactual explanations -- minimal
changes to the features that flip an undesirable model prediction. We propose a
solution to this question for linear Support Vector Machine (SVMs) models.
Moreover, we introduce a way to account for weighted actions that allow for
more changes in certain features than others. In particular, we show how to
find counterfactual explanations with the purpose of increasing model
interpretability. These explanations are valid, change only actionable
features, are close to the data distribution, sparse, and take into account
correlations between features. We cast this as a mixed integer programming
optimization problem. Additionally, we introduce two novel scale-invariant cost
functions for assessing the quality of counterfactual explanations and use them
to evaluate the quality of our approach with a real medical dataset. Finally,
we build a support vector machine model to predict whether law students will
pass the Bar exam using protected features, and used our algorithms to uncover
the inherent biases of the SVM.
