Explaining Machine Learning Classifiers through Diverse Counterfactual Explanations