  This paper presents a Prolog-based reasoning module to generate
counterfactual explanations given the predictions computed by a black-box
classifier. The proposed symbolic reasoning module can also resolve what-if
queries using the ground-truth labels instead of the predicted ones. Overall,
our approach comprises four well-defined stages that can be applied to any
structured pattern classification problem. Firstly, we pre-process the given
dataset by imputing missing values and normalizing the numerical features.
Secondly, we transform numerical features into symbolic ones using fuzzy
clustering such that extracted fuzzy clusters are mapped to an ordered set of
predefined symbols. Thirdly, we encode instances as a Prolog rule using the
nominal values, the predefined symbols, the decision classes, and the
confidence values. Fourthly, we compute the overall confidence of each Prolog
rule using fuzzy-rough set theory to handle the uncertainty caused by
transforming numerical quantities into symbols. This step comes with an
additional theoretical contribution to a new similarity function to compare the
previously defined Prolog rules involving confidence values. Finally, we
implement a chatbot as a proxy between human beings and the Prolog-based
reasoning module to resolve natural language queries and generate
counterfactual explanations. During the numerical simulations using synthetic
datasets, we study the performance of our system when using different fuzzy
operators and similarity functions. Towards the end, we illustrate how our
reasoning module works using different use cases.

Machine Learning