{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction to `explainy` - black-box model explanations for humans\n", "In this notebook, we will go over the main algorithms of the `explainy` package." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [] }, "outputs": [], "source": [ "import pandas as pd\n", "from sklearn.datasets import load_diabetes\n", "from sklearn.ensemble import RandomForestRegressor\n", "from sklearn.model_selection import train_test_split" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "### Installing Explainy\n", "We recommend using some virtual environment. Then there are mainly two ways.\n", "\n", "With pip:\n", "\n", "`pip install explainy`" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%%capture\n", "!pip install explainy --upgrade" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.2.8\n" ] } ], "source": [ "import explainy\n", "\n", "print(explainy.__version__)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "`explainy` allows you to create machine learning model explanations based on four different explanation characteristics:\n", "\n", "- **global**: explanation of system functionality\n", "- **local**: explanation of decision rationale\n", "- **contrastive**: tracing of decision path\n", "- **non-contrastive**: parameter weighting\n", "\n", "The explanations algorithms in `explainy` can be categorized as follows:\n", "\n", "| | non-contrastive\t\t\t\t|contrastive | \n", "| --- \t\t\t| --- \t\t\t\t| --- | \n", "|global|Permutation Feature Importance\t| Surrogate Model | \n", "|local|Shap Values\t| Counterfactual Example|\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true, "tags": [] }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "%matplotlib inline\n", "\n", "diabetes = load_diabetes()\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(\n", " diabetes.data, diabetes.target, random_state=0\n", ")\n", "X_test = pd.DataFrame(X_test, columns=diabetes.feature_names)\n", "y_test = pd.DataFrame(y_test)\n", "\n", "model = RandomForestRegressor(random_state=0).fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 251.6.\n", "The feature importance was calculated using the Permutation Feature Importance method.\n", "The four features which were most important for the predictions were: 'bmi' (0.15), 's5' (0.12), 'bp' (0.04), and 'age' (0.02).\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from explainy.explanations import PermutationExplanation\n", "\n", "number_of_features = 4\n", "sample_index = 1\n", "\n", "explainer = PermutationExplanation(X_test, y_test, model, number_of_features)\n", "explanation = explainer.explain(sample_index)\n", "print(explanation)\n", "explainer.plot(kind=\"bar\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "explainer.plot(kind=\"box\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Generate explanations with multiple numbers of features to explain the outcoume.\n", "Since the `PermuationExplanation` method is a global explaination method, all samples will have the same feature importance explanation." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 250.6.\n", "The feature importance was calculated using the Permutation Feature Importance method.\n", "The three features which were most important for the predictions were: 'bmi' (0.15), 's5' (0.12), and 'bp' (0.04).\n", "\n", "\n", "\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 250.6.\n", "The feature importance was calculated using the Permutation Feature Importance method.\n", "The six features which were most important for the predictions were: 'bmi' (0.15), 's5' (0.12), 'bp' (0.04), 'age' (0.02), 's2' (-0.00), and 'sex' (-0.00).\n", "\n", "\n", "\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 250.6.\n", "The feature importance was calculated using the Permutation Feature Importance method.\n", "The nine features which were most important for the predictions were: 'bmi' (0.15), 's5' (0.12), 'bp' (0.04), 'age' (0.02), 's2' (-0.00), 'sex' (-0.00), 's3' (-0.00), 's1' (-0.01), and 's6' (-0.01).\n", "\n", "\n", "\n" ] } ], "source": [ "# Global, Non-contrastive\n", "sample_index = 0\n", "for number_of_features in [3, 6, 9]:\n", " explainer = PermutationExplanation(X_test, y_test, model, number_of_features)\n", " explanation = explainer.explain(sample_index)\n", " explainer.plot(kind=\"box\")\n", " print(explanation)\n", " print(\"\\n\" * 2)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Let's use the `ShapExplanation` to create local explantions for each sample individually." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 250.6.\n", "The feature importance was calculated using the SHAP method.\n", "The four features which contributed most to the prediction of this particular sample were: 'bmi' (76.30), 'bp' (22.85), 's5' (-5.94), and 's3' (4.48).\n", "\n", "\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAACICAYAAACyaX9CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAMd0lEQVR4nO3df4xlZX3H8feni4piIyCjAQGnVsLKz4WOW2ghCimGtrTQSJXSJpDUIEpbamrLqglKkVokKdJYSNYWoYFSKAiSUlwJsqkiAQfZ7q6uUNS1CNSdLQU0qVTcb/84Z7K3wyw7O3fu3MPc9ysh95zn3nPOdx5y9jPnnDvPk6pCkqSu+ZlhFyBJ0mwMKElSJxlQkqROMqAkSZ1kQEmSOmm3YRcAsM8++9T4+Piwy5AkDcGDDz64tarGZrZ3IqDGx8eZnJwcdhmSpCFI8r3Z2r3FJ0nqJANKktRJBpQkqZM68QzqpWZ81R3DLkGShm7zX/76QPfvFZQkqZN2GlBJxpNsnM/Ok+yX5Ob5bCtJGm0DvcVXVU8Apw/yGJKkpWmut/h2S3J9kk1Jbk7yqiSbk3wiybokk0mOTrImybeTnAv9XX1JkkbbXAPqYODKqnoL8Czw/rb9P6pqBfBl4Bqaq6VjgIt2tsMk57TBNjk1NbWrdUuSlri5BtRjVXVvu3wdcFy7fHv7ugG4v6p+WFVTwHNJ9nyxHVbV6qqaqKqJsbEXjHAhSRpxcw2omdPuTq8/175u61meXvcr7JKkeZtrQB2Y5Nh2+UzgKwOqR5IkYO4B9TBwXpJNwF7AVYMrSZKkOdyGq6rNwPJZ3hrv+cw1NF+SmF6ffm8rcNj8y5MkjSqfE83DoIf3kCQ51JEkqaMMKElSJxlQkqROMqAkSZ1kQEmSOsmAkiR1kgElSeokA0qS1EkGlCSpkwwoSVInGVCSpE5yLL55GF91x7BLkPQS5Dieu8YrKElSJxlQkqROWvCASnJNku8mWdf+t2KhjyFJWvoG9QzqT6vq5gHtW5I0AvoKqCR7ADcB+wPLgIsXoihJkvq9xXcy8ERVHVlVhwFfaNsvSbI+yeVJXjHbhknOSTKZZHJqaqrPMiRJS02/AbUBOCnJpUmOr6pngA8By4G3AnsDF8y2YVWtrqqJqpoYGxvrswxJ0lLTV0BV1SPA0TRB9fEkF1bVk9V4DvgssHIB6pQkjZh+n0HtBzxVVdcleRp4T5J9q+rJJAFOAzb2X6YkadT0+y2+w4HLkmwDfgK8D7g+yRgQYB1wbp/HkCSNoL4CqqrWAGtmNJ/Yzz4lSQLH4psXx9OSpMFzqCNJUicZUJKkTjKgJEmdZEBJkjrJgJIkdZIBJUnqJANKktRJBpQkqZMMKElSJxlQkqROMqAkSZ3kWHzzML7qjmGXsOgcf1DSYvMKSpLUSQaUJKmT5h1QScaTOFuuJGkgvIKSJHVSvwG1W5Lrk2xKcnOSVyXZnOSTSTYkeSDJmxekUknSSOk3oA4GrqyqtwDPAu9v25+pqsOBTwOfmm3DJOckmUwyOTU11WcZkqSlpt+Aeqyq7m2XrwOOa5dv6Hk9drYNq2p1VU1U1cTY2FifZUiSlpp+A6p2sF4v8hlJknaq34A6MMn0FdKZwFfa5Xf3vN7X5zEkSSOo34B6GDgvySZgL+Cqtn2vJOuB84EP9HkMSdIImvdQR1W1GVg+sz0JwGVVdcH8y5IkjTrH4psHx6WTpMFb8ICqqvGF3qckafQ4koQkqZMMKElSJxlQkqROMqAkSZ1kQEmSOsmAkiR1kgElSeokA0qS1EkGlCSpkwwoSVInLZmx+MZX3bFox3IsPkkaPK+gJEmdZEBJkjppwQMqjUuSPJJkU5I/WuhjSJKWvkE8gzobOABYXlXbkrxuAMeQJC1xfQVUkj2Am4D9gWXAxcD7gDOrahtAVW3pt0hJ0ujp9xbfycATVXVkVR0GfAH4eeDdSSaT3JnkoNk2THJO+5nJqampPsuQJC01/QbUBuCkJJcmOb6qngFeAfy4qiaAzwBXz7ZhVa2uqomqmhgbG+uzDEnSUtNXQFXVI8DRNEH18SQXAt8HPtd+5FbgiL4qlCSNpH6fQe0HPFVV1yV5GngPcBtwAvBd4G3AI33WKEkaQf1+i+9w4LIk24Cf0HxB4lHg+iQfAH5EE1qSJO2SvgKqqtYAa2Z5y7GAJEl9WTJj8Tk+niQtLQ51JEnqJANKktRJBpQkqZNSVcOugSRTwPeGXccu2AfYOuwihsw+sA/APphmP/TXB2+sqheM2NCJgHqpSTLZjpQxsuwD+wDsg2n2w2D6wFt8kqROMqAkSZ1kQM3P6mEX0AH2gX0A9sE0+2EAfeAzKElSJ3kFJUnqJANKktRJBtQuSHJykoeTPJpk1bDrWSxJrk6yJcnGnra9k9yV5N/b172GWeOgJTkgyT1JvpnkG0nOb9tHph+S7J7kgST/1vbBRW37zyW5vz0vbkzy8mHXOmhJliV5KMk/t+sj1QdJNifZkGRdksm2bcHPBQNqjpIsA/4G+FXgEOB3khwy3KoWzTXAyTPaVgF3V9VBwN3t+lL2PPAnVXUIcAxwXvv/f5T64TngxKo6ElgBnJzkGOBS4PKqejPw38DvD6/ERXM+sKlnfRT74ISqWtHzt08Lfi4YUHO3Eni0qr5TVf8L/CNw6pBrWhRV9a/AUzOaTwWubZevBU5bzJoWW1U9WVVfb5d/SPOP0xsYoX6oxo/a1Ze1/xVwInBz276k+wAgyf40Uwr9bbseRqwPdmDBzwUDau7eADzWs/79tm1Uvb6qnmyX/xN4/TCLWUxJxoGjgPsZsX5ob22tA7YAdwHfBp6uqufbj4zCefEp4M+Abe36axm9Pijgi0keTHJO27bg58KSmQ9Kw1NVlWQk/l4hyauBW4A/rqpnm1+eG6PQD1X1U2BFkj2BW4Hlw61ocSU5BdhSVQ8mefuQyxmm46rq8SSvA+5K8q3eNxfqXPAKau4eBw7oWd+/bRtVP0iyL0D7umXI9QxckpfRhNP1VfW5tnnk+gGgqp4G7gGOBfZMMv3L7lI/L34Z+M0km2lu858IXMFo9QFV9Xj7uoXmF5WVDOBcMKDm7mvAQe23dV4OnAHcPuSahul24Kx2+Szg80OsZeDa5wx/B2yqqr/qeWtk+iHJWHvlRJJXAifRPIu7Bzi9/diS7oOq+lBV7V9V4zT/Bnypqn6XEeqDJHsk+dnpZeAdwEYGcC44ksQuSPJrNPeflwFXV9Ulw61ocSS5AXg7zXD6PwA+CtwG3AQcSDNVyruqauYXKZaMJMcBXwY2sP3Zw4dpnkONRD8kOYLm4fcyml9ub6qqP0/yJpqrib2Bh4Dfq6rnhlfp4mhv8X2wqk4ZpT5of9Zb29XdgH+oqkuSvJYFPhcMKElSJ3mLT5LUSQaUJKmTDChJUicZUJKkTjKgJEmdZEBJPZJ8pB2pe307UvMvtu2bk+yzwMf6bJL3zmg7LcmdL7LNNUlO39H70lJiQEmtJMcCpwBHV9URwK/w/8dfXGg30PyxZ68z2nZp5BlQ0nb7Alun/8CyqrZW1RM97/9hkq+38+AsB0iyMsl97dxAX01ycNt+dpLPJ1nbzo/z0VmOdzewvGd4mD1oQvG2JBcm+VqSjUlWp3fQv1bvVV2SiSRrp/eTZg6vB9q6Tm3bD23b1rVXiActUL9JA2FASdt9ETggySNJrkzythnvb62qo4GrgA+2bd8Cjq+qo4ALgb/o+fxK4J3AEcBvJ5no3Vk78OotwLvapt8A1lbVs8Cnq+qtVXUY8EqaK7u5+gjNEDwrgROAy9rwOxe4oqpWABM0o25LnWVASa12rqNfAM4BpoAbk5zd85HpAWIfBMbb5dcA/5RmtuHLgUN7Pn9XVf1XVf1Pu+1xsxy29zZf7+29E9oZWjfQDEh66Czb7sg7gFXttBhrgd1php+5D/hwkguAN7Z1SZ3ldBtSj/aqZi2wtg2Hs2hmFIZmRlmAn7L93LkYuKeqfqudJ2pt7+5m7n6WQ34V2DfJkcAvAWck2R24EpioqseSfIwmZGZ6nu2/ZPa+H+CdVfXwjM9vSnI/zWR7/5LkvVX1pVn2K3WCV1BSK8nBM57LrKAZ9PLFvIbtUyucPeO9k5Ls3Y78fRpw78yNqxkM80aaQVjvrKofsz1strbzT+3oW3ubaa74oLmVOG0NzfOytD/XUe3rm4DvVNVf04w0fcROfjZpqAwoabtXA9cm+WaS9cAhwMd2ss0ngU8keYgX3pF4gOYZ03rglqqa3ME+bgCObF+n51r6DM0UBmtopnqZzUXAFUkmaa7qpl1MMx37+iTfaNeheda1sb31dxjw9zv52aShcjRzaQDaZ1cTVfUHw65FeqnyCkqS1EleQUmSOskrKElSJxlQkqROMqAkSZ1kQEmSOsmAkiR10v8BYu+l2RDGhGcAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 251.6.\n", "The feature importance was calculated using the SHAP method.\n", "The four features which contributed most to the prediction of this particular sample were: 'bmi' (49.60), 's5' (41.64), 'bp' (9.31), and 's6' (-4.04).\n", "\n", "\n", "\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 169.2.\n", "The feature importance was calculated using the SHAP method.\n", "The four features which contributed most to the prediction of this particular sample were: 'bmi' (22.48), 's5' (-11.53), 'bp' (9.70), and 's6' (-7.94).\n", "\n", "\n", "\n" ] } ], "source": [ "from explainy.explanations import ShapExplanation\n", "\n", "# Local, Non-contrastive\n", "number_of_features = 4\n", "for sample_index in [0, 1, 2]:\n", " explainer = ShapExplanation(X_test, y_test, model, number_of_features)\n", " explanation = explainer.explain(sample_index)\n", " explainer.plot(sample_index)\n", " print(explanation)\n", " print(\"\\n\" * 2)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Let's use the `SurrogateModelExplanation` to create global explantions." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Surrogate Model score (coefficient of determination of the prediction): 0.53\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "Tree\n", "\n", "\n", "\n", "0\n", "\n", "s5 <= 0.03\n", "samples = 111\n", "value = 158.36\n", "\n", "\n", "\n", "1\n", "\n", "samples = 72\n", "value = 127.7\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "True\n", "\n", "\n", "\n", "2\n", "\n", "samples = 39\n", "value = 214.95\n", "\n", "\n", "\n", "0->2\n", "\n", "\n", "False\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "Surrogate Model score (coefficient of determination of the prediction): 0.78\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 250.6.\n", "The feature importance was calculated using a DecisionTreeRegressor surrogate model. Two tree nodes are shown.\n", "The following thresholds were important for the predictions: \n", "The sample has a value of 127.70 if 's5' was less or equal than 0.03. \n", "The sample has a value of 214.95 if 's5' was greater than 0.03.\n", "\n", "\n", "\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "Tree\n", "\n", "\n", "\n", "0\n", "\n", "s5 <= 0.03\n", "samples = 111\n", "value = 158.36\n", "\n", "\n", "\n", "1\n", "\n", "bmi <= 0.01\n", "samples = 72\n", "value = 127.7\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "True\n", "\n", "\n", "\n", "4\n", "\n", "bmi <= 0.01\n", "samples = 39\n", "value = 214.95\n", "\n", "\n", "\n", "0->4\n", "\n", "\n", "False\n", "\n", "\n", "\n", "2\n", "\n", "samples = 49\n", "value = 109.8\n", "\n", "\n", "\n", "1->2\n", "\n", "\n", "\n", "\n", "\n", "3\n", "\n", "samples = 23\n", "value = 165.84\n", "\n", "\n", "\n", "1->3\n", "\n", "\n", "\n", "\n", "\n", "5\n", "\n", "samples = 14\n", "value = 171.55\n", "\n", "\n", "\n", "4->5\n", "\n", "\n", "\n", "\n", "\n", "6\n", "\n", "samples = 25\n", "value = 239.26\n", "\n", "\n", "\n", "4->6\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 250.6.\n", "The feature importance was calculated using a DecisionTreeRegressor surrogate model. Four tree nodes are shown.\n", "The following thresholds were important for the predictions: \n", "The sample has a value of 109.80 if 's5' was less or equal than 0.03, and 'bmi' was less or equal than 0.01. \n", "The sample has a value of 165.84 if 's5' was less or equal than 0.03, and 'bmi' was greater than 0.01. \n", "The sample has a value of 171.55 if 's5' was greater than 0.03, and 'bmi' was less or equal than 0.01. \n", "The sample has a value of 239.26 if 's5' was greater than 0.03, and 'bmi' was greater than 0.01.\n", "\n", "\n", "\n" ] } ], "source": [ "from explainy.explanations import SurrogateModelExplanation\n", "\n", "# Global, Contrastive\n", "list_number_of_features = [2, 4]\n", "sample_index = 0\n", "for number_of_features in list_number_of_features:\n", " explainer = SurrogateModelExplanation(X_test, y_test, model, number_of_features)\n", " explanation = explainer.explain(sample_index)\n", " explainer.plot(sample_index)\n", "\n", " print(explanation)\n", " print(\"\\n\" * 2)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Let's use the `CounterfactualExplanation` to create local explantions and show, how the feature would have had to change to achieve a desired y value." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "No delta value set, therefore using the value '8.461'\n", "Start to calculate the counterfactual example. This may take a while...\n", "y_counter_factual: 184.50, lambda: 0.01, local_delta: 4.5, random_seed: 0\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEYCAYAAACUdWs9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAraklEQVR4nO3de3hM97oH8O8QMslM7iERYtIiIUG0ZZOqhqet0zYupdoEcam2KIpuR+PWUrejJY522xRpQzfRQxWtUC0PW1S3SzF2QsU1ciFExGRyk8t7/rCtdmQSl6xkJP1+nmceM2u9s9ZvjXfyzZqVWUsjIiAiIlJDPVsPgIiI6g6GChERqYahQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKphqBARkWoYKkREpBqGChERqYahQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKphqBARkWoYKkREpBqGChERqYahQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKphqBARkWoYKkREpBqGChERqYahQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKphqBARkWoYKkREpBqGChERqcbO1gOojRwcHK4UFhZ62Xoc9Oek1WrLCgsL+Qsh2YxWq80sKCjwtjZPIyI1PZ5aT6PRCF83shWNRgP2H9nSf3pQY20ef9shIiLVMFSIiEg1DBUiIlINQ4WIiFTDUCEiItUwVIiISDUMFSIiUg1DhR55s2bNQmRkpK2HQTZ0+vRpdOjQAU5OTvjss89sPRxF9+7dERMTY+thVOrixYvQaDQoKSmpkfUxVKhS+/fvx9NPPw0XFxe4u7uja9euOHz4sK2HRQ8hLi4OHTt2hF6vR5MmTfDSSy9h//791b5ejUaDs2fPVmkZn3zyCXr06IHc3FyMHz/+oZczfPhwzJgxo0pjuV85OTkYMWIEvL294eTkBH9/fyxYsKBG1m1LDBWqkMlkQq9evfDuu+8iOzsb6enpmDlzJuzt7W09NHpAixcvxsSJEzFt2jRkZmbi0qVLGDNmDLZu3WrroVXqzm/XKSkpCAoKsvFoHsx7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fnb98edFQUGBvPrqq+Ll5SVarVYCAwNl7dq1Nbl5jzRU8vEXr/z4EHjlPbIl9h/ZGq/8SERENYKhQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKqp9ISSWq02U6PReNXUYGoLrVZbptFoGMhkE+w/sjWtVptZ0bxKz/1FRET0IPjbDhERqYahQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKphqBARkWoYKkREpBqGChERqYahQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKphqBARkWoYKkREpBqGChERqYahQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKphqBARkWoYKkREpBqGChERqYahQkREqmGoEBGRahgqRESkGoYKERGphqFCRESqYagQEZFqGCpERKQahgoREamGoUJERKphqBARkWoYKkREpBqGChERqYahQkREqvl/AiYPFURWeYgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "No delta value set, therefore using the value '8.461'\n", "Start to calculate the counterfactual example. This may take a while...\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 169.2.\n", "The feature importance is shown using a counterfactual example.\n", "The sample would have had the desired prediction of '184.5', if the 'bmi' was '0.03', the 's4' was '0.07', the 'age' was '0.01', and the 'bp' was '0.04'.\n", "\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "y_counter_factual: 184.50, lambda: 0.01, local_delta: 4.5, random_seed: 0\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEbCAYAAAAS4RmTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6u0lEQVR4nO3de1xUdfoH8M8IwsAM96soDd5AwRy7uEpm6FaWi5fVrUAlM7to6mq7ZuQldb2tW+FauRpqaa1gP8vNNi9ZuJqSW9omU6CCeSEBRQFxGGW4Pr8/ylPIgBcODODn/Xqdl3POeeac7/f4DM+cOTeNiICIiEgNbezdACIiaj1YVIiISDUsKkREpBoWFSIiUg2LChERqYZFhYiIVONo7wa0RC4uLmetVmuAvdtBtyatVltttVr5hZDsRqvV5peWlgbamqfhdSo3TqPRCLcb2YtGowHzj+zp5xzU2JrHbztERKQaFhUiIlINiwoREamGRYWIiFTDokJERKphUaFmb/78+YiLi7N3M8iOMjMz0atXL7i5ueGNN96wd3MUAwYMwNq1a+3djHqdOnUKGo0GlZWVTbI+FhWqV2pqKu655x54eHjA29sb/fr1w8GDB+3dLLoJycnJuPvuu6HX69GuXTsMHjwYqampjb5ejUaDH374oUHLeOWVVzBw4ECUlJRg6tSpN72ccePGYc6cOQ1qy/UqLi7G+PHjERgYCDc3N4SGhmLp0qVNsm57YlGhOpnNZgwZMgR//OMfUVRUhNzcXMybNw/Ozs72bhrdoGXLluH555/HrFmzkJ+fjx9//BGTJk3Cxx9/bO+m1evKt+vs7GxERETYuTU35k9/+hMsFguOHDmCixcv4t///je6dOli72Y1PhHhcIPDT5ut9Tt48KB4eHjYnPfDDz/IwIEDxdvbW3x8fGT06NFy4cIFZb7BYJBXXnlFbr/9dnF1dZXx48fL2bNn5eGHHxa9Xi/333+/FBUViYjIyZMnBYAkJiZKu3btJDAwUF599VVlWfPmzZMxY8Yo4//9738lMjJSPDw8pGfPnrJ79+7G6H6zdaP5V1xcLDqdTjZt2lRnjNVqlWnTpkm7du2kXbt2Mm3aNLFarSIism7dOunXr1+tNhw7dkxERJ544gmZNGmS/O53vxO9Xi+/+c1v5IcffhARkf79+wsAcXV1FZ1OJ++//76IiHzyySdiNBrFw8NDIiMjxWQyKcs2GAyydOlSuf3228XJyUkGDhwobdq0EWdnZ9HpdJKZmSlbt26VXr16iZubm3To0EHmzZtXo3379u1TcqRDhw6ybt06SUxMFEdHR2nbtq3odDoZMmRIrb5c6c/s2bNFRKSoqEiio6PF19dXPD09JTo6Wk6fPq3ERkVFyZo1a2xu04iICPnoo4/q3OZTp06VDh06iJubm9x5552yd+9eZd68efPkkUcekTFjxoher5cePXpIZmamLFmyRPz8/KRDhw6yc+fOGu146aWXpHfv3uLm5ibDhg2TwsJCEfnl81VRUSEiP+XD+PHjJTAwUIKCgmT27NlSWVlZZztt+TkHbf99rGsGBxaVixcvire3t4wdO1a2b9+uFAERkWPHjslnn30mVqtVzp07J/3795dp06Yp8w0Gg/Tp00fOnj0rOTk54ufnJ3fccYd8++23UlpaKgMHDpT58+eLyC9JHxsbKxaLRb777jvx9fWVzz//XERqFpWcnBzx9vaWbdu2SVVVlXz22Wfi7e0t586da7oNY2c3mn87duwQBwcH5Y+KLS+//LL06dNH8vPz5dy5cxIZGSlz5swRkesrKt7e3vL1119LRUWFjB49WmJiYmzGioh8++234ufnJ1999ZVUVlbK+vXrxWAwKEXMYDCI0WiUH3/8US5fviwitf947969W7777jupqqoSk8kk/v7+yh/wU6dOiV6vl+TkZCkvL5eCggI5dOiQ0tYrBaOu9v06pqCgQD788EO5dOmSmM1meeSRR2T48OFKbH1F5amnnpLw8HB55513JCsrq9b8f/7zn1JQUCAVFRXy2muvSUBAgJSWlorITznv7Owsn376qVRUVMjjjz8uISEhsmjRIikvL5fVq1dLSEhIjXYEBQXJ999/LxaLRUaOHKl8Zq4uKr///e/l2WefFYvFIvn5+dK7d2956623bPahLiwqLCo37fDhw/LEE09I+/btxcHBQYYOHSpnz56tFffRRx9Jr169lHGDwSAbNmxQxkeOHCkTJ05Uxt944w3lw3kl6Y8cOaLMnzFjhowfP15EahaVpUuXSlxcXI11Dxo0SNavX9/wzrYQN5p/GzZskICAgHpjOnXqJNu2bVPGP/30UzEYDCJyfUXlqaeeUuZt27ZNwsLCbMaKiEycOFEpWFeEhobKnj17ROSn3Hn77bdrzK/vj7eIyLRp0+T5558XEZElS5bI73//e5txN1pUrnbo0CHx9PS8rnZdvnxZFi9eLHfeeac4OjpK586dZfv27XX2wdPTU9LS0kTkp5x/4IEHlHn//ve/RafTKXsUZrNZACi/DkRFRUl8fLwSn5GRIW3btpXKysoaReXs2bPi5OSkFGsRkeTkZBkwYECd7bKlvqLCYypUr+7du2P9+vXIyclBeno68vLy8PzzzyM/Px+xsbFo37493N3dERcXh4KCghrvDQj45Z6bLi4utcYtFkuN+ODgYOW1wWBAXl5erfZkZ2fjgw8+gKenpzKkpqbizJkzanW51fHx8UFBQUG9Z//k5eXBYDAo43Vt/7oEBv5yb0FXV9da/7e/lp2djYSEhBr/h6dPn66xvl/ngi1ff/01Bg4cCD8/P3h4eOCtt95S8u/06dPo3Lnzdbe9PpcvX8aECRNgMBjg7u6O++67D8XFxaiqqrrme11cXDBr1iz873//Q2FhIR577DE8+uijKCoqAgC89tpr6N69Ozw8PODp6YmLFy/W+Axd/Xnx9fWFg4ODMg6gxna++vNTUVFR6zOZnZ2NiooKtGvXTtn2EyZMwLlz525i69jGokLXrVu3bhg3bhzS09Mxa9YsaDQafP/99zCbzdiwYcOVvbibdvr0aeX1jz/+iKCgoFoxwcHBePzxx1FcXKwMly5dwksvvdSgdbdmkZGRcHZ2xpYtW+qMCQoKQnZ2tjL+6+2v0+lw+fJlZd7Zs2cb1J7g4GDMnj27xv/h5cuXMWrUKCVGo7F5r0LF6NGjMWzYMJw+fRoXL17ExIkTlfwLDg7G8ePHbb7P1nJdXV3r7F9CQgIyMzPx9ddfw2w2Y+/evQBww7nu7u6OWbNm4dKlSzh58iT27duHV155BZs2bcKFCxdQXFwMDw+PBn2Grv78tG3bFr6+vjVigoOD4ezsjIKCAmXbm81mZGRk3PR6r8aiQnU6evQoEhISkJOTA+CnpN24cSP69u2LkpIS6PV6eHh4IDc3F6+++mqD17dw4UJcvnwZGRkZWLduHWJiYmrFxMXF4ZNPPsHOnTtRVVUFq9WKPXv2KG2k2jw8PLBgwQJMnjwZW7ZsweXLl1FRUYEdO3bgxRdfBACMGjUKixYtwvnz51FQUIAFCxYo1wYZjUZkZGQgLS0NVqsV8+fPv6H1BwQE4MSJE8r4M888g7feegtff/01RASXLl3Ctm3bUFJSct3LLCkpgbe3N7RaLQ4cOIDk5GRl3pgxY5CSkoJNmzahsrIShYWFSEtLs9kWAOjVqxeSk5NRVVWFTz/9FF988UWN9bi4uMDT0xNFRUX4y1/+ct1tXLhwIQ4ePIjy8nJYrVa8/vrr8PT0RFhYGEpKSuDo6Ag/Pz9UVlZiwYIFMJvN171sWzZs2IDDhw/j8uXLmDt3Lh555BFlz+aKdu3aYdCgQZg+fTrMZjOqq6tx/PjxGn1uKBYVqpObmxu+/vpr9OnTBzqdDn379kWPHj2QkJCAefPm4dtvv4WHhweio6MxcuTIBq8vKioKXbp0wf33348XXngBgwYNqhUTHByMjz/+GEuWLIGfnx+Cg4Px6quvorq6usHrb82mT5+OZcuWYdGiRcp2W7FiBX7/+98DAObMmYO7774bPXv2xO23344777xTuZ4jNDQUc+fOxQMPPICuXbvi3nvvvaF1z58/H0888QQ8PT2xadMm3H333VizZg2mTJkCLy8vdOnSBevXr7+hZa5cuRJz586Fm5sbFixYgMcee0yZd9ttt2H79u1ISEiAt7c3evXqBZPJBAB46qmncPjwYXh6eip9f/311/HJJ5/A09MTSUlJynQAeP7551FaWgpfX1/07dsXDz/88HW3UaPR4Mknn4Svry+CgoLw+eefY9u2bdDr9XjooYfw8MMPIzQ0FAaDAVqt9po/+V3L448/jnHjxiEwMBBWq7XOi0Tfe+89lJeXIzw8HF5eXnjkkUdU/fmYz1O5CXyeirpOnTqFjh07oqKiAo6OfG7ctfB5KnS1AQMGIC4uDk8//XSTrI/PUyEioibBokJERKrhz183gT9/kT3x5y+yN/78RURETYJFhYiIVMOiQkREqmFRISIi1bCoEBGRalhUiIhINfVevuzi4nLWarUG1BdzK9Jqtde84R1RY2H+kb1ptdo674tU73UqvB7DNl4nQPbE/CN743UqRETUJFhUiIhINSwqRESkGhYVIiJSDYsKERGppkFFJSQkBCkpKQ1uxJIlS5rs4TJERNR4msWeyqxZs7B27Vp7N4NuUlFREUaMGAGdTgeDwVDjeeG/JiKIj4+Hj48PfHx8EB8fX+PU2GeffRZhYWFo06bNDT9elm5tauRgQUEB+vXrBx8fH3h6eiIyMhJffvllU3ajVeCzW6nBJk+eDCcnJ+Tn5yMtLQ3R0dEwGo2IiIioEbd69Wps2bIFJpMJGo0GDz74IDp27IiJEycCAIxGI2JiYhAfH2+PblALpkYO6vV6vPPOO+jatSs0Gg0+/vhjDB06FOfOneNjrm+EiNQ5/DS7bgaDQZYsWSLdu3cXT09PGTdunJSWlsru3bulffv28re//U38/PwkMDBQPvroI9m2bZt07dpVvLy8ZPHixcpy5s2bJ2PGjKl3Xc3JtbbLrcRisUjbtm0lMzNTmRYXFyfx8fG1YiMjIyUxMVEZX7t2rfTp06dWXL9+/WTdunWN0t7WgPlXU2PkYFVVlfz73/8WAJKfn984DW/Bfs5Bm3WjwT9/JSUlYefOnTh+/DiysrKwaNEiAMDZs2dhtVqRm5uLBQsW4JlnnsGGDRvwv//9D/v27cPChQtx8uTJhq6e7CwrKwuOjo4IDQ1VphmNRmRkZNSKzcjIgNFovGYc0Y1QOwd79uwJrVaLYcOG4emnn4a/v3/jNb4VanBRmTJlCoKDg+Ht7Y3Zs2dj48aNAIC2bdti9uzZaNu2LWJjY1FQUIBp06bBzc0NERERCA8Ph8lkanAHyL4sFgvc3d1rTPPw8EBJSYnNWA8PjxpxFouFtxyhBlE7B7/77juYzWYkJyfj3nvvbbyGt1IN/qEwODhYeW0wGJCXlwcA8PHxgYODAwDAxcUFABAQ8Mu9KV1cXGCxWBq6erIzvV4Ps9lcY5rZbIabm9s1Y81mM/R6PW+OSA3SGDmo1WoxatQodO/eHb169aqxd0P1a/CeyunTp5XXP/74I4KCghq6SGpBQkNDUVlZiWPHjinTTCZTrQOkABAREVFj77SuOKIb0Zg5WFFRgRMnTqjb4FauwUXlH//4B3JyclBUVITFixcjJiZGjXZRC6HT6TBy5EjMnTsXly5dwpdffomPP/4Yjz/+eK3YsWPHYtmyZcjNzUVeXh4SEhIwbtw4ZX55eTmsVitEBBUVFbBaraiurvMO20QA1MvBr776CqmpqSgvL0dpaSn+9re/IT8/H3369GniHrVsDS4qo0ePxqBBg9CpUyd07twZc+bMUaNd1IKsXLkSpaWl8Pf3x6hRo7Bq1SpERERg37590Ov1StyECRMwdOhQ3H777ejRoweio6MxYcIEZf6gQYPg4uKC/fv349lnn4WLiwv27t1rjy5RC6NGDpaVlWHy5Mnw8fFB+/btsX37dmzbto2/vtwgPk/lJvB5FmRPzD+yNz5PhYiImgSLChERqYZFhYiIVMOiQkREqmFRISIi1bCoEBGRalhUiIhINSwqRESkmnpvKKnVaqs1Gg0Lz1W0Wi1vgkh2w/wje9NqtXXeP4lX1N8EXtFM9sT8I3vjFfVERNQkWFSIiEg1LCpERKQaFhUiIlINiwoREamGRYWIiFTDokJERKpp9KJy//33Q6PRoLKysrFXRc3M3//+dwQGBsLd3R3jx49HWVlZnbG7du1Ct27d4OrqioEDByI7O7sJW0otXVFREUaMGAGdTgeDwYDk5GSbcSKC+Ph4+Pj4wMfHB/Hx8co1P1cePfzrQaPRYPPmzU3ZlRavUYtKUlISKioqGnMV1Ezt3LkTS5cuxa5du5CdnY0TJ05g3rx5NmMLCgowcuRILFy4EEVFRbj77rsRExPTxC2mlmzy5MlwcnJCfn4+kpKS8NxzzyEjI6NW3OrVq7FlyxaYTCZ89913+OSTT5CYmAgA6N+/PywWizJs3boVer0eDz/8cFN3p2UTkTqHn2bXb+nSpRIUFCR6vV5CQ0MlJSVFRESKi4ula9eu8t///lcASEVFxTWX1VJcz3a51Y0aNUpmzpypjKekpEhAQIDN2MTERImMjFTGLRaLaLVaOXLkSKO3syVi/tVksVikbdu2kpmZqUyLi4uT+Pj4WrGRkZGSmJiojK9du1b69Oljc7njxo2TcePGqd/gVuDnHLRZNxq0p5KZmYkVK1bg4MGDKCkpwc6dOxESEgIAmDVrFp577jkEBgY2rOpRi5SRkQGj0aiMG41G5Ofno7Cw8JqxOp0OnTt3tvlNk+hqWVlZcHR0RGhoqDLNaDTazB9beWkr7tKlS/jwww/xxBNPNE6jW7EGFRUHBweUlZXh8OHDqKioQEhICDp37oxvvvkGX375Jf74xz+q1U5qYSwWCzw8PJTxK69LSkquGXsl3lYs0dUsFgvc3d1rTKsrf2zlpcViqXUvtX/961/w9fVFVFRU4zS6FWtQUenSpQuWL1+O+fPnw9/fH7GxscjLy8OkSZPw+uuvw9Gx3psgUyuSlJSkHNwcPHgw9Ho9zGazMv/Kazc3t1rvvTr2SrytWKKr3Uj+2MrLKwfkf+3dd9/F2LFjeTfom9DgA/WjR49GamoqsrOzodFoMGHCBHzzzTeIiYlBYGAgevfuDQDo0KED9u3b1+AGU/M0ZswY5QDnjh07EBERAZPJpMw3mUwICAiAj49PrfdeHXvp0iUcP34cERERTdJ2atlCQ0NRWVmJY8eOKdNMJpPN/LGVl1fHnT59Gnv27MHYsWMbr9GtWV0HW+Q6DtQfPXpUdu3aJVarVcrKyuTJJ5+UsWPHypkzZ5ThwIEDAkBycnKkrKyssY4bNalrbRcS2bFjhwQEBEhGRoZcuHBBBg4caPPAqYjIuXPnxN3dXT788EMpLS2VF198sc6Dp8T8syUmJkZiY2PFYrFIamqquLu7S3p6eq24VatWSbdu3SQnJ0dyc3MlPDxcVq1aVSNm8eLF0r9//6ZqeouEeg7UN6iomEwm6d27t+j1evHy8pLo6GjJzc2tEXPy5Eme/XWLSkhIEH9/f3Fzc5Nx48aJ1WpV5oWHh8uGDRuU8c8//1zCwsJEq9VKVFSUnDx50g4tbhmYf7UVFhbK8OHDxdXVVYKDgyUpKUlERPbu3Ss6nU6Jq66ulhkzZoiXl5d4eXnJjBkzpLq6usaywsLCZO3atU3a/pamvqLCh3TdBD4kieyJ+Uf2xod0ERFRk2BRISIi1bCoEBGRalhUiIhINSwqRESkGhYVIiJSDYsKERGphkWFiIhUU+8dH7VabbVGo2HhuYpWq+WN5shumH9kb1qttrquebyi/ibwimayJ+Yf2RuvqCcioibBokJERKphUSEiItWwqBARkWpYVIiISDUsKkREpBoWFSIiUg2LCqmiqKgII0aMgE6ng8FgQHJyss04EUF8fDx8fHzg4+OD+Ph4m9dcvPfee9BoNFi7dm1jN51aAbXy79lnn0VYWBjatGmD9evXN1HrW5d6r6gnul6TJ0+Gk5MT8vPzkZaWhujoaBiNRkRERNSIW716NbZs2QKTyQSNRoMHH3wQHTt2xMSJE5WYCxcuYMmSJbXeS1QXtfLPaDQiJiYG8fHx9uhG61DXw+t/rt51Pvj+ir/+9a/SqVMn0ev10r17d/nXv/4lIiKVlZXy5z//WXx8fCQkJETefPNNASAVFRUiIlJcXCzjx4+XwMBACQoKktmzZ0tlZeU119ccXM92uZVYLBZp27atZGZmKtPi4uIkPj6+VmxkZKQkJiYq42vXrpU+ffrUiJkwYYL84x//kKioKFmzZk3jNbyFYv7VpHb+iYj069dP1q1b1yjtbQ1+zkGbdaPBP3917twZ+/btw8WLFzFv3jzExcXhzJkzWLNmDXbs2IG0tDR8++232LJlS433jRs3Do6Ojvjhhx9w6NAhfPbZZ/ypo4XKysqCo6MjQkNDlWlGoxEZGRm1YjMyMmA0GuuMO3DgAL755psaey5E9VEz/6jhGlxUHn30UQQFBaFNmzaIiYlB165dceDAAWzatAnTpk1Dhw4d4OXlhZdeekl5T35+PrZv347ly5dDp9PB398ff/rTn/D+++83tDlkBxaLBe7u7jWmeXh4oKSkxGash4dHjTiLxQIRQVVVFSZNmoQVK1agTRse7qPro1b+kToafEzlvffew7Jly3Dq1CkAP/2nFRQUIC8vD8HBwUrcr19nZ2ejoqIC7dq1U6ZVV1fXiKGWQ6/Xw2w215hmNpvh5uZ2zViz2Qy9Xg+NRoOVK1eiZ8+e6Nu3b6O3mVoPtfKP1NGgr4PZ2dl45plnsGLFChQWFqK4uBg9evSAiKBdu3bIyclRYk+fPq28Dg4OhrOzMwoKClBcXIzi4mKYzWbuhrZQoaGhqKysxLFjx5RpJpPJ5oH2iIgImEwmm3G7du3CRx99hMDAQAQGBmL//v2YPn06pkyZ0vidoBZLrfwjldR1sEWu40B9RkaGODs7y9GjR6WyslLeeecdcXBwkDVr1sjKlSslPDxccnJy5MKFC/LAAw/UOFA/bNgwmTp1qly8eFGqqqrkhx9+kD179jTCISX1XWu73IpiYmIkNjZWLBaLpKamiru7u6Snp9eKW7VqlXTr1k1ycnIkNzdXwsPDZdWqVSIicuHCBTlz5owyREZGSkJCghQXFzd1d5o15l9tauSfiEhZWZmUlpbKPffcI6tXr5bS0lKpqqpqyq60CKjnQH2Dz/6aNWuWeHl5iY+Pj/zpT3+S++67T9asWSMVFRXy/PPPi7e3t4SEhMiyZcvE0dFRqqurReSns78mTpwo7du3F3d3d+nVq5ds3LhR/d43An6oayssLJThw4eLq6urBAcHS1JSkoiI7N27V3Q6nRJXXV0tM2bMEC8vL/Hy8pIZM2YoOXE1nv1lG/OvNrXyLyoqSgDUGHbv3t3U3Wn26isqTfaQrh07dmDixInIzs5WZXn2xIckkT0x/8je7PKQrtLSUmzfvh2VlZXIzc3FX/7yF4wYMaKxVkdERM1Ao+2pXL58GVFRUTh69ChcXFwQHR2N119/vdapfy0RvymSPTH/yN7q21PhM+pvAj/UZE/MP7I3PqOeiIiaBIsKERGphkWFiIhUw6JCRESqYVEhIiLV1HtDSa1WW63RaFh4rqLVankDOrIb5h/Zm1arra5rHk8pvgk8pZPsiflH9sZTiomIqEmwqBARkWpYVIiISDUsKkREpBoWFSIiUg2LChERqaZBRSUkJAQpKSlqtYWIiFo47qmQKoqKijBixAjodDoYDAYkJyfbjBMRxMfHw8fHBz4+PoiPj7d5zcV7770HjUaDtWvXNnbTqRVg/jUf9V5RT3S9Jk+eDCcnJ+Tn5yMtLQ3R0dEwGo2IiIioEbd69Wps2bIFJpMJGo0GDz74IDp27IiJEycqMRcuXMCSJUtqvZeoLsy/5qPBeyoHDx5EeHg4vLy88OSTT8JqtWLPnj3o0KEDlixZAl9fX4SEhCApKUmN9lIzdOnSJWzevBkLFy6EXq/Hvffei2HDhuGf//xnrdh3330X06dPR4cOHdC+fXtMnz4d69evrxEzc+ZMTJ06Fb6+vk3UA2rJmH/NS4OLSlJSEnbu3Injx48jKysLixYtAgCcPXsWBQUFyM3Nxbvvvotnn30WmZmZDW4wNT9ZWVlwdHREaGioMs1oNCIjI6NWbEZGBoxGY51xBw4cwDfffFPjmyNRfZh/zUuDi8qUKVMQHBwMb29vzJ49Gxs3blTmLVy4EM7OzoiKikJ0dDQ2bdrU0NVRM2SxWODu7l5jmoeHB0pKSmzGenh41IizWCwQEVRVVWHSpElYsWIF2rTh4T66Psy/5qXBWy44OFh5bTAYkJeXBwDw8vKCTqezOY9aF71eD7PZXGOa2WyGm5vbNWPNZjP0ej00Gg1WrlyJnj17om/fvo3eZmo9mH/NS4OLyunTp5XXP/74I4KCggD8dLDr0qVLNudR6xIaGorKykocO3ZMmWYymWwe6IyIiIDJZLIZt2vXLnz00UcIDAxEYGAg9u/fj+nTp2PKlCmN3wlqsZh/zYyI1Dn8NLtuBoNBevToIadPn5bCwkLp16+fzJw5U3bv3i0ODg4yffp0KSsrk71794qrq6scOXKk3uW1FNfaLreimJgYiY2NFYvFIqmpqeLu7i7p6em14latWiXdunWTnJwcyc3NlfDwcFm1apWIiFy4cEHOnDmjDJGRkZKQkCDFxcVN3Z1mjflXG/Ovaf2cgzbrRoNPKR49ejQGDRqEvLw8DB8+HHPmzMGBAwcQGBgILy8vBAUFwdXVFW+99Ra6devW0NVRM7Vy5UqMHz8e/v7+8PHxwapVqxAREYF9+/Zh8ODBsFgsAIAJEybgxIkTuP322wEATz/9NCZMmAAA8PT0rLFMJycnuLu71/gNnMgW5l/z0SgP6dqzZw/i4uKQk5PTkLY1W3xIEtkT84/sjQ/pIiKiJsGiQkREquEz6m8Cf34ge2L+kb3x5y8iImoSLCpERKQaFhUiIlINiwoREamGRYWIiFRT7xX1Wq22WqPRsPBcRavVQqOxeeIDUaNj/pG9abXa6rrm8ZTim8BTOsmemH9kbzylmIiImgSLChERqYZFhYiIVMOiQkREqmFRISIi1bCoEBGRalhUiIhINSwqpIqioiKMGDECOp0OBoMBycnJNuNEBPHx8fDx8YGPjw/i4+NrXHOh0Wig0+mg1+uh1+vx9NNPN1UXqAVj/jUfDX5GPREATJ48GU5OTsjPz0daWhqio6NhNBoRERFRI2716tXYsmULTCYTNBoNHnzwQXTs2BETJ05UYkwmE7p06dLUXaAWjPnXjIhIncNPs+u3dOlSCQoKEr1eL6GhoZKSkiJVVVXy17/+VTp16iTe3t7y6KOPSmFhoYiITJw4UUaOHKm8/8UXX5Tf/va3Ul1dfc11NRfXs11uJRaLRdq2bSuZmZnKtLi4OImPj68VGxkZKYmJicr42rVrpU+fPso4ADl27FjjNriFY/7VxPxrej/noM260aCfvzIzM7FixQocPHgQJSUl2LlzJ0JCQvDmm29iy5Yt+OKLL5CXlwcvLy9MnjwZAJCQkIDvv/8e69evx759+/D222/j3Xff5b2MWrCsrCw4OjoiNDRUmWY0GpGRkVErNiMjA0ajsd64++67D4GBgRg5ciROnTrVaO2m1oH517w0qKg4ODigrKwMhw8fRkVFBUJCQtC5c2e89dZbWLx4MTp06ABnZ2fMnz8fH374ISorK+Hq6op//vOf+POf/4y4uDi8+eab6NChg1r9ITuwWCxwd3evMc3DwwMlJSU2Yz08PGrEWSwW5XftL774AqdOncLRo0cRFBSEIUOGoLKysnE7QC0a8695aVBR6dKlC5YvX4758+fD398fsbGxyMvLQ3Z2NkaMGAFPT094enqie/fucHBwQH5+PgCgT58+6NSpE0QEjz32mCodIfvR6/Uwm801ppnNZri5uV0z1mw2Q6/XK3uq9913H5ycnODp6YnXX38dJ0+exJEjRxq3A9SiMf+alwaf/TV69GikpqYiOzsbGo0G8fHxCA4Oxo4dO1BcXKwMVqsV7du3BwD84x//QFlZGYKCgvDKK680uBNkX6GhoaisrMSxY8eUaSaTqdZBUgCIiIiAyWS6ZtwVvCMvXQvzr5mp62CLXMeB+qNHj8quXbvEarVKWVmZPPnkkzJ27FhZtmyZREVFyalTp0RE5Ny5c7JlyxYREcnMzBRPT09JS0uTrKws8fT0lEOHDql6EKmxXWu73IpiYmIkNjZWLBaLpKamiru7u6Snp9eKW7VqlXTr1k1ycnIkNzdXwsPDZdWqVSIikp6eLocOHZLKykopKSmRadOmSWhoqJSXlzd1d5o15l9tzL+mhXoO1DeoqJhMJundu7fo9Xrx8vKS6Ohoyc3NlaqqKklISJDQ0FDR6/XSqVMnmTlzplRUVEjv3r3lr3/9q7KMlStXSo8ePcRqtarf80bCD3VthYWFMnz4cHF1dZXg4GBJSkoSEZG9e/eKTqdT4qqrq2XGjBni5eUlXl5eMmPGDOXMv127dkloaKi4urqKn5+fDB8+XLKysuzSn+aM+Vcb869p1VdU+JCum8BdYrIn5h/ZGx/SRURETYJFhYiIVMOiQkREqmFRISIi1bCoEBGRalhUiIhINSwqRESkGhYVIiJSTb0P6dJqtdUajYaF5yparZa36ie7Yf6RvWm12uq65vGK+pvAK5rJnph/ZG+8op6IiJoEiwoREamGRYWIiFTDokJERKphUSEiItWwqBARkWpYVIiISDWNUlTS09Px0EMPwdfXlxdp3UL+/ve/IzAwEO7u7hg/fjzKysrqjN21axe6desGV1dXDBw4ENnZ2bViioqK4Ofnh3vvvbcxm02tmNo5SdfWKEWlbdu2eOyxx/D22283xuKpGdq5cyeWLl2KXbt2ITs7GydOnMC8efNsxhYUFGDkyJFYuHAhioqKcPfddyMmJqZWXHx8PLp3797YTadWqjFykq5DXQ+v//mK3ToffH/F0qVLJSgoSPR6vYSGhkpKSooy79ixY3I9y2hpWmOfGmrUqFEyc+ZMZTwlJUUCAgJsxiYmJkpkZKQybrFYRKvVypEjR5RpX375pfTt21feeecd6devX+M1vAVi/l0ftXOSfvFzDtqsGw3aU8nMzMSKFStw8OBBlJSUYOfOnQgJCWlwoaOWJyMjA0ajURk3Go3Iz89HYWHhNWN1Oh06d+6MjIwMAEBVVRWmTJmCFStW8OdTumlq5iRdvwYVFQcHB5SVleHw4cOoqKhASEgIOnfurFbbqAWxWCzw8PBQxq+8LikpuWbslfgrsW+88Qb69OmDu+66qxFbTK2dmjlJ169BRaVLly5Yvnw55s+fD39/f8TGxiIvL0+ttlEzlpSUBL1eD71ej8GDB0Ov18NsNivzr7x2c3Or9d6rY6/Eu7m5IS8vD2+88QYWL17cuB2gVqexcpJuTIMP1I8ePRqpqanIzs6GRqNBfHy8Gu2iZm7MmDGwWCywWCzYsWMHIiIiYDKZlPkmkwkBAQHw8fGp9d6rYy9duoTjx48jIiICBw4cwJkzZxAeHo7AwEBMmzYNBw4cQGBgIKqqqpqkb9QyNVZO0o1p8DGV//znPygrK4NWq4WLiwvatGkDEYHVakV5eTkAwGq11nsqH7V8Y8eOxdtvv43Dhw+juLgYixYtwrhx42zGjhgxAunp6di8eTOsVisWLFiAnj17olu3bhg8eDBOnTqFtLQ0pKWlYcGCBbjjjjuQlpYGBweHpu0UtWhq5STdoLqO4Mt1nP1lMpmkd+/eotfrxcvLS6KjoyU3N1dOnjwpAGoMBoOhkc5DaHrX2i63qoSEBPH39xc3NzcZN26cWK1WZV54eLhs2LBBGf/8888lLCxMtFqtREVFycmTJ20uc926dTz76yrMv+vXGDlJ9Z/9xYd03QQ+JInsiflH9saHdBERUZNgUSEiItWwqBARkWpYVIiISDUsKkREpBoWFSIiUg2LChERqYZFhYiIVONY30ytVlut0WhYeK6i1Wp5S3ayG+Yf2ZtWq62uax6vqL8JvKKZ7In5R/bGK+qJiKhJsKgQEZFqWFSIiEg1LCpERKQaFhUiIlINiwoREamGRYWIiFTTaEXlxIkTGDJkCNzc3ODr64sXX3yxsVZFdlZUVIQRI0ZAp9PBYDAgOTnZZpyIID4+Hj4+PvDx8UF8fHyN6y2effZZhIWFoU2bNli/fn0TtZ5aAzVyMCsrC8OHD4efnx+8vb3x0EMPITMzsym70So0SlEpLy/Hgw8+iN/+9rc4e/YscnJyEBcX1xiromZg8uTJcHJyQn5+PpKSkvDcc88hIyOjVtzq1auxZcsWmEwmfPfdd/jkk0+QmJiozDcajVi5ciXuvPPOpmw+tQJq5GBxcTGGDRuGzMxM5Ofn4ze/+Q2GDx/e1F1p+ep6eP3P1bvOB99fsXTpUgkKChK9Xi+hoaGSkpIiiYmJcu+9917zvS3V9WyXW4XFYpG2bdtKZmamMi0uLk7i4+NrxUZGRkpiYqIyvnbtWunTp0+tuH79+sm6desapb2tAfOvpsbIQRGRwsJCASAFBQXqN7qF+zkHbdaNBu2pZGZmYsWKFTh48CBKSkqwc+dOhISE4KuvvkJISAgGDx4MX19fDBgwAN9//33DKyA1O1lZWXB0dERoaKgyzWg02vyWmJGRAaPReM04ohvRWDm4d+9eBAYGwsfHR/1Gt2INKioODg4oKyvD4cOHUVFRgZCQEHTu3Bk5OTl4//33MXXqVOTl5SE6OhrDhw9HeXm5Wu2mZsJiscDd3b3GNA8PD5SUlNiM9fDwqBFnsVh4HytqkMbIwZycHEyePBnLli1rnEa3Yg0qKl26dMHy5csxf/58+Pv7IzY2Fnl5eXBxccG9996LwYMHw8nJCS+88AIKCwtx5MgRtdpNzYRer4fZbK4xzWw2w83N7ZqxZrMZer2ed9ylBlE7B8+fP49BgwZh0qRJGDVqVOM1vJVq8IH60aNHIzU1FdnZ2dBoNIiPj0fPnj35h+IWERoaisrKShw7dkyZZjKZEBERUSs2IiICJpPpmnFEN0LNHLxw4QIGDRqEYcOGYfbs2Y3b8FaqwcdU/vOf/6CsrAxarRYuLi5o06YN4uLi8NVXXyElJQVVVVVYvnw5fH190b17d7XaTc2ETqfDyJEjMXfuXFy6dAlffvklPv74Yzz++OO1YseOHYtly5YhNzcXeXl5SEhIwLhx45T55eXlsFqtEBFUVFTAarWiurrOxzYQAVAvB81mMx566CH069cPS5cubeJetCJ1HcGX6zj7y2QySe/evUWv14uXl5dER0dLbm6uiIhs3rxZOnfuLG5ubhIVFSXp6emNcA6CfVxru9xqCgsLZfjw4eLq6irBwcGSlJQkIiJ79+4VnU6nxFVXV8uMGTPEy8tLvLy8ZMaMGVJdXa3Mj4qKEgA1ht27dzd1d5o95l9tauTg+vXrBYC4urqKTqdThuzsbLv0qTlDPWd/8SFdN4EPSSJ7Yv6RvfEhXURE1CRYVIiISDUsKkREpBoWFSIiUg2LChERqYZFhYiIVMOiQkREqmFRISIi1TjWN1Or1VZrNBoWnqtotVre24zshvlH9qbVauu8fxKvqL8JvKKZ7In5R/bGK+qJiKhJsKgQEZFqWFSIiEg1LCpERKQaFhUiIlINiwoREammUYrK+vXr4eDgAL1erwx79uxpjFVRM/L3v/8dgYGBcHd3x/jx41FWVlZn7K5du9CtWze4urpi4MCByM7OVua98MIL6Nq1K9zc3NCtWze89957TdF8agWYg81AXY+ElOt4nHBd1q1bJ/369bup97YEN7tdWrNPP/1U/P39JT09XYqKiiQqKkri4+Ntxp4/f17c3d1l06ZNUlpaKi+88IL06dNHmT937lw5cuSIVFVVyVdffSWenp7y5ZdfNlVXmj3mn23MwaaDeh4n3OCisnTpUgkKChK9Xi+hoaGSkpLConILGjVqlMycOVMZT0lJkYCAAJuxiYmJEhkZqYxbLBbRarVy5MgRm/FDhw6V1157Td0Gt2DMP9uYg02nvqLSoJ+/MjMzsWLFChw8eBAlJSXYuXMnQkJCAACHDh2Cr68vQkNDsXDhQlRWVjZkVdTMZWRkwGg0KuNGoxH5+fkoLCy8ZqxOp0Pnzp2RkZFRK7a0tBQHDx5ERERE4zScWg3mYPNQ772/rsXBwQFlZWU4fPgw/Pz8lIKi0WiQnp4Og8GAjIwMxMTEwNHRETNnzlSjzdQMWSwWeHh4KONXXpeUlMDHx6dWrJ+fX41pHh4eKCkpqbXciRMnwmg04qGHHmqEVlNrwhxsHhq0p9KlSxcsX74c8+fPh7+/P2JjY5GXl4dOnTqhY8eOaNOmDW6//XbMnTsXH374oVptpmYgKSlJOQlj8ODB0Ov1MJvNyvwrr93c3Gq99+rYK/FXx86YMQPp6enYtGkTb6BItTAHm6cGn/01evRopKamIjs7GxqNBvHx8bVieAO81mfMmDGwWCywWCzYsWMHIiIiYDKZlPkmkwkBAQG1viECqBV76dIlHD9+vMbPC/PmzcOOHTvw2Wefwd3dvXE7Qy0Sc7CZqutgi1zHgfqjR4/Krl27xGq1SllZmTz55JMyduxY2b59u5w9e1ZERI4cOSIREREyf/78RjlgZA/X2i63oh07dkhAQIBkZGTIhQsXZODAgXWeeXPu3Dlxd3eXDz/8UEpLS+XFF1+scebNkiVLpEuXLnLmzJmman6LwvyzjTnYdNBYZ3+ZTCbp3bu36PV68fLykujoaMnNzZXp06eLv7+/uLq6SseOHeXll1+W8vLyRutgU+OH2raEhATx9/cXNzc3GTdunFitVmVeeHi4bNiwQRn//PPPJSwsTLRarURFRcnJkyeVeQDEyclJdDqdMixevLgpu9KsMf/qxhxsGvUVFT5P5Sbw5zyyJ+Yf2Rufp0JERE2CRYWIiFTDokJERKphUSEiItWwqBARkWpYVIiISDUsKkREpBoWFSIiUg2LChERqabeW99rtdpqjUbDwnMVrVbLO5aS3TD/yN60Wm11XfN4m5abwNtkkD0x/8jeeJsWIiJqEiwqRESkGhYVIiJSDYsKERGphkWFiIhUw6JCRESqYVEhIiLVNKionDp1ChqNRhm8vb0RGxuLwsLCBjXqtddeg0ajwfr16wEAISEh0Ov19b5n//79mD9/PtLS0pRpAwYMgEajQUFBQYPaQ7VNnToVAQEB0Gg0GDJkiDK9rKwM06ZNg7+/P1xdXXHHHXeguLgYALB161ZERETAxcUFkZGROHz4sM1l//e//8U999wDT09PeHp64g9/+APOnz/fFN2iFqSuHExOTkZYWBi0Wi3at2+POXPm1HifiCh/G379vqtdibkyeHp6NlZXWhVV9lTuuOMOJCcnY+DAgfi///s/vPjii7Viqqqqbnr5b775Jt599916Y/bv34+//OUvNYrK3LlzsXHjRri7u9/0uqlusbGxtabNnDkTb7zxBoYMGYIVK1bgN7/5DaqqqpCTk4NHH30UALB8+XJkZWVh1KhRNi/iy8rKgq+vL/72t7/hd7/7Hf71r3/ZzCmiq3Pw8uXLeOKJJ1BQUIDXXnsN3t7eWLx4Mfbt26fErFmzBgcPHryu5Xfv3h0bN27Exo0b8c4776ja9lZLROocfppdt5MnTwoAiY6OFhGRw4cPCwCJiIgQg8Egrq6u8txzz4m7u7scOnRI9u/fL3379hWdTiddu3aV5ORkZVmvvvqq+Pj4SPfu3WXs2LECQNatWyciIgaDQXQ6nYiIlJWVyUsvvSS33XabaLVa6d+/v+zevVsA1BhOnjwpUVFRAkDOnz8v1dXVsnDhQrnttttEr9fLgAEDJD09XURE5s2bJwDk6aefli5duoivr69s2rSpzn5fa7vcKq7+/7906ZI4OztLv379pLKyUsrLy5XYzZs3CwBZtGiRiIjExsYKAPnf//5Xa7llZWXKa7PZLACkd+/ejdybloP594urc9BsNouTk5N06dJFjhw5IkOGDBEAYjKZREQkLy9PPDw8ZNmyZTXeZ0tUVJRERUWJ2Wxukr60JD/noM26ocqeSkVFBc6fP48tW7YAAG677TYAP31ryMvLw2uvvQZ/f38MGTIExcXFmD17NkJCQhAXF4e0tDSYTCbMmDEDgYGBeP7555GSklLnupYuXYqlS5ciIiICK1aswJ133onw8HCMGTMGADBx4kRs3LgRfn5+Nd63bt06vPzyy+jZsycWL16MgwcPYvjw4aioqFBi9u3bhylTpuDixYt46aWX1Ng0t5QTJ06grKwMeXl50Ov1cHV1xdixY1FZWan8f3z99dc4ceIETCYTAODkyZO1luPk5KS83rlzJwDgvvvua4IeUEvn5uaGt99+G9nZ2ejevTu2bt2KRYsWoWfPngCAKVOm4IEHHsCIESOua3l79+6Fu7s73N3dsXjx4sZseutRV7WRG9hT+fXQvn17OXTokBgMBgEgxcXFIiKydevWWrEAJCEhQZYvXy4AZO3atSIiMmfOnDr3VO6++27RaDS1vj28+uqrNd4jIjX2VP7whz8IAMnKyhIRkdGjRwsASU9PV/ZUEhMTRUQkLCxM2rRpc60qfcu7+lviN998IwBEr9fLxo0blb2RNWvWiIjII488ovy/u7m5CQDZunVrnctPTU0VNzc3ueuuu6SkpKRJ+tQSMP9+cXUOlpWVSY8ePeS2226TzZs3y6BBg6Rt27Zy8OBBSUlJEa1WK/v27ZM9e/YIABk4cKDk5ubaXPYbb7whycnJ8sEHH0h4eLgAkL179zZl95ot1LOnUu9diq9Xnz59sHjxYnh7eyM8PBzOzs4AAJ1OBw8PjxqxY8eOxeOPP66Mh4SEYNu2bUqB+/W/N+J679p6Jc5WvLe3NwDA0dER1dV13oST6mAwGKDRaNCjRw/ExsbCy8sL77//Po4fPw4A+OCDD3DkyBGUlpZi5cqVePvtt9G9e3cAgNVqRZs2bZS9lL179yI6OhpdunTBzp07r3miBhEAmEwmpKen46mnnsLIkSNx+fJlfPbZZ9i9ezf8/PxgtVrRv39/JX737t0YO3YsUlJSUF5ejurqami1WgDAH//4RyXuzJkzmDp1Kg4fPlzj/VSbKkXF19cX999/f70xkZGR8Pb2xqefforevXujsrISW7duxcsvv4wBAwYA+OkAbnV1NdatW1fncoYOHYpvvvkGMTExeOSRR/Ddd99h+fLl8PLyAgDs2LEDrq6ueOyxx2q8Lzo6Gps3b8af//xnPPjgg/j444/RuXNnhIaGNqzzt6ht27YhPT0dAHD69GmsXbsWUVFRiI6ORkpKClasWIEdO3YA+OWnq5kzZyI0NBTHjh3Du+++i5EjR6JTp04AABcXF0RERCA9PR3ffvstBg8eDBHBM888g88//xw6nQ5Dhw61T2epWbKVg2FhYXB0dMS2bduwevVq5QSfsLAwGI1GfPDBBwCA8+fPY9KkSbjrrrswb948AMCgQYPwxRdf4Pz582jbti2GDRuGESNGwMXFBcuXL0ebNm3Qu3dv+3S2JalrF0Zu4kD9r/36J6sr9u/fL/fcc4/odDrx9fWVoUOHyqlTp0TklwP1PXr0kFGjRl3zQH1wcLA4OztL//79RUTk/Pnzctddd4mDg4M4ODiIiNR5oF6n09k8UP/BBx+IiEhERES9PzFca7vcCq5s218P69atk5ycHBk0aJA4OzvLbbfdJsuWLVPe87vf/U5cXV3Fzc1NxowZI0VFRco8/HyCh4jIunXrai3bYDA0dRebLebfT+rKwQ0bNkhYWJg4OztL+/btZc6cObXea+tv16//XpSWlsof/vAHCQgIEK1WK+Hh4bJhw4am7F6zhnp+/uLzVG4Cn2dB9sT8I3vj81SIiKhJsKgQEZFqWFSIiEg1LCpERKQaFhUiIlINiwoREamGRYWIiFTDokJERKphUSEiItXUe+8vrVabr9FoApqqMS2FVqut1mg0LMhkF8w/sjetVptf17x6b9NCRER0I/hth4iIVMOiQkREqmFRISIi1bCoEBGRalhUiIhINf8PYStg2z6UBpkAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The RandomForestRegressor used 10 features to produce the predictions. The prediction of this sample was 169.2.\n", "The feature importance is shown using a counterfactual example.\n", "The sample would have had the desired prediction of '184.5', if the 'bmi' was '0.03', the 's4' was '0.07', the 'age' was '0.01', the 'bp' was '0.04', the 'sex' was '0.05', the 's1' was '-0.0', the 's6' was '0.02', and the 's5' was '-0.02'.\n", "\n", "\n", "\n" ] } ], "source": [ "from explainy.explanations import CounterfactualExplanation\n", "\n", "# Local, Contrastive\n", "number_of_features = 6\n", "sample_index = 2\n", "for number_of_features in [4, 8]:\n", " explainer = CounterfactualExplanation(\n", " X_test,\n", " y_test,\n", " model,\n", " y_desired=180.0,\n", " number_of_features=number_of_features,\n", " )\n", " explanation = explainer.explain(sample_index)\n", " explainer.plot(sample_index)\n", " print(explanation)\n", " print(\"\\n\" * 2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "de55fbb6a3d1dcd7d34e4d81b1ef1a152ffc76ac074135090337ffe5be6ed72c" }, "kernelspec": { "display_name": "Python 3.8.0 64-bit ('explanation_env': conda)", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.3" }, "pycharm": { "stem_cell": { "cell_type": "raw", "metadata": { "collapsed": false }, "source": [] } } }, "nbformat": 4, "nbformat_minor": 2 }