Explaining machine learning classifiers through diverse counterfactual explanations