{
"cells": [
{
"cell_type": "markdown",
"id": "b1db8c9a",
"metadata": {},
"source": [
"# Sufficient Reasons"
]
},
{
"cell_type": "markdown",
"id": "514a5144",
"metadata": {},
"source": [
"Formally, an **abductive explanation** $t$ for an instance $x$ given a classifier $f$ (that is binary or not) \n",
"is a subset $t$ of the characteristics of $x$ such that every instance $x'$ sharing this set t of characteristics is classified by $f$ as $x$ is. A **sufficient reason** $t$ for $x$ given $f$ is an abductive explanation for $x$ given $f$ such that no proper subset $t'$ of $t$ is an abductive explanation for $x$ given $f$ (i.e., minimal w.r.t. set inclusion).\n",
"\n",
"Considering the boosted tree of the [Building Models](/documentation/learning/builder/BTbuilder/) page consisting of $4$ features ($A_1$, $A_2$, $A_3$ and $A_4$), we can derive as an example the sufficient reason $t$ = ($A_1 = 4$, $A_4 = 1$) for the instance $x$ = ($A_1=4$, $A_2 = 3$, $A_3 = 1$, $A_4 = 1$). In this figure, this sufficient reason is shown in red:\n",
"\n",
"\n",
"\n",
"As you can see on the figure, some leaves of this sufficient reason corresponds to positive or negative predictions. \n",
"However, all the instances $x'$ extending $t$ can be gathered into four categories, obtained by considering the truth values of the Boolean conditions over the two remaining attributes ($A_2$ and $A_3$) as encountered in the trees of $BT$. This table shows that, in every case, we have $W(F, x') > 0$, showing that $f(x') = 1$.\n",
"\n",
"
$A_1 = 4$ | \n", "$A_2 = 3$ | \n", "$A_3 = 1$ | \n", "$A_4 = 4$ | \n", "$w(T_1,x')$ | \n", "$w(T_2,x')$ | \n", "$w(T_3,x')$ | \n", "$W(F,x)$ | \n", "
---|---|---|---|---|---|---|---|
1 | \n", "0 | \n", "0 | \n", "1 | \n", "0.4 | \n", "0.3 | \n", "0.2 | \n", "0.9 | \n", "
1 | \n", "0 | \n", "1 | \n", "1 | \n", "0.4 | \n", "0.3 | \n", "-0.4 | \n", "0.3 | \n", "
1 | \n", "1 | \n", "0 | \n", "1 | \n", "-0.3 | \n", "0.5 | \n", "0.3 | \n", "0.5 | \n", "
1 | \n", "1 | \n", "1 | \n", "1 | \n", "0.3 | \n", "0.5 | \n", "0.1 | \n", "0.9 | \n", "