{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# XGBoost Feature Importance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook explains how to generate feature importance plots from `XGBoost` using tree-based feature importance, permutation importance and `shap`.\n", "\n", "This notebook will build and evaluate a model to predict arrival delay for flights in and out of NYC in 2013. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Packages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial uses:\n", "* [pandas](https://pandas.pydata.org/docs/)\n", "* [statsmodels](https://www.statsmodels.org/stable/index.html)\n", " * [statsmodels.api](https://www.statsmodels.org/stable/api.html#statsmodels-api)\n", "* [matplotlib](https://matplotlib.org/)\n", " * [matplotlib.pyplot](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.html)\n", "* [numpy](https://numpy.org/doc/stable/)\n", "* [scikit-learn](https://scikit-learn.org/stable/)\n", " * [sklearn.metrics](https://scikit-learn.org/stable/modules/model_evaluation.html)\n", " * [sklearn.model_selection](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html)\n", " * [sklearn.inspection](https://scikit-learn.org/stable/inspection.html)\n", "* [shap](https://shap.readthedocs.io/en/latest/index.html)\n", "* [category_encoders](https://contrib.scikit-learn.org/category_encoders/)\n", "* [XGBoost](https://xgboost.readthedocs.io/en/latest/)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import statsmodels.api as sm\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sklearn.metrics import mean_squared_error\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.inspection import permutation_importance\n", "import shap\n", "import category_encoders as ce\n", "\n", "import xgboost as xgb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data is from `rdatasets` imported using the Python package `statsmodels`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 336776 entries, 0 to 336775\n", "Data columns (total 19 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 year 336776 non-null int64 \n", " 1 month 336776 non-null int64 \n", " 2 day 336776 non-null int64 \n", " 3 dep_time 328521 non-null float64\n", " 4 sched_dep_time 336776 non-null int64 \n", " 5 dep_delay 328521 non-null float64\n", " 6 arr_time 328063 non-null float64\n", " 7 sched_arr_time 336776 non-null int64 \n", " 8 arr_delay 327346 non-null float64\n", " 9 carrier 336776 non-null object \n", " 10 flight 336776 non-null int64 \n", " 11 tailnum 334264 non-null object \n", " 12 origin 336776 non-null object \n", " 13 dest 336776 non-null object \n", " 14 air_time 327346 non-null float64\n", " 15 distance 336776 non-null int64 \n", " 16 hour 336776 non-null int64 \n", " 17 minute 336776 non-null int64 \n", " 18 time_hour 336776 non-null object \n", "dtypes: float64(5), int64(9), object(5)\n", "memory usage: 48.8+ MB\n" ] } ], "source": [ "df = sm.datasets.get_rdataset('flights', 'nycflights13').data\n", "df.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Feature Engineering" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Handle null values" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "year 0\n", "month 0\n", "day 0\n", "dep_time 8255\n", "sched_dep_time 0\n", "dep_delay 8255\n", "arr_time 8713\n", "sched_arr_time 0\n", "arr_delay 9430\n", "carrier 0\n", "flight 0\n", "tailnum 2512\n", "origin 0\n", "dest 0\n", "air_time 9430\n", "distance 0\n", "hour 0\n", "minute 0\n", "time_hour 0\n", "dtype: int64" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.isnull().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As this model will predict arrival delay, the `Null` values are caused by flights did were cancelled or diverted. These can be excluded from this analysis." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "df.dropna(inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Convert the times from floats or ints to hour and minutes" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "df['arr_hour'] = df.arr_time.apply(lambda x: int(np.floor(x/100)))\n", "df['arr_minute'] = df.arr_time.apply(lambda x: int(x - np.floor(x/100)*100))\n", "df['sched_arr_hour'] = df.sched_arr_time.apply(lambda x: int(np.floor(x/100)))\n", "df['sched_arr_minute'] = df.sched_arr_time.apply(lambda x: int(x - np.floor(x/100)*100))\n", "df['sched_dep_hour'] = df.sched_dep_time.apply(lambda x: int(np.floor(x/100)))\n", "df['sched_dep_minute'] = df.sched_dep_time.apply(lambda x: int(x - np.floor(x/100)*100))\n", "df.rename(columns={'hour': 'dep_hour',\n", " 'minute': 'dep_minute'}, inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prepare data for modeling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Set up train-test split" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "target = 'arr_delay'\n", "y = df[target]\n", "X = df.drop(columns=[target, 'flight', 'tailnum', 'time_hour', 'year', 'dep_time', 'sched_dep_time', 'arr_time', 'sched_arr_time', 'dep_delay'])\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.2, random_state=1066)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Encode categorical variables" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use a leave-one-out encoder as it creates a single column for each categorical variable instead of creating a column for each level of the categorical variable like one-hot-encoding. This makes interpreting the impact of categorical variables with feature impact easier." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "encoder = ce.LeaveOneOutEncoder(return_df=True)\n", "X_train_loo = encoder.fit_transform(X_train, y_train)\n", "X_test_loo = encoder.transform(X_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fit the model" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "43.33026958963029" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = xgb.XGBRegressor(n_estimators=500, max_depth=5, eta=0.05)\n", "model.fit(X_train_loo, y_train)\n", "\n", "rmse = np.sqrt(mean_squared_error(y_test, model.predict(np.ascontiguousarray(X_test_loo))))\n", "rmse" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Feature Importance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot the tree-based (or Gini) importance" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Feature Importance')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxAAAAF1CAYAAAB4Xww9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAydElEQVR4nO3de5hdZX3//fcHooAkgAK2YIHYiCKCBBhARWyqPFbFAygUEA9R2zx49mexpZVaUNsiPNb6w3qItqJiFTmIFCpCQZQzmQRCADlUCCpSDco5kEryff7YK+1mnMOayczszOT9uq65Zq113+te37Uy12R/9rrXnlQVkiRJktTGRr0uQJIkSdLUYYCQJEmS1JoBQpIkSVJrBghJkiRJrRkgJEmSJLVmgJAkSZLUmgFCkiRJUmsGCEnagCVZnuTRJA93fW0/DmMeOF41tjje8UlOm6zjDSfJ/CSX97oOSZpIBghJ0muqambX1897WUySGb08/lhN1bolabQMEJKk35JkyyT/nOSeJHcn+XiSjZu2OUkuSfKrJPcm+XqSrZq2rwE7Av/W3M348yTzkvxswPj/c5eiuYNwZpLTkjwIzB/u+C1qryTvSnJ7koeSfKyp+cokDyb5VpInN33nJflZkr9qzmV5kqMGXIevJlmR5K4kxyXZqGmbn+SKJJ9K8ivgdODzwAubc7+/6XdQkuuaY/80yfFd489u6n1rkp80NXy4q33jprYfN+eyOMkOTdsuSS5K8usktyb541H9I0vSGBkgJEmDORV4HHgWsCfwcuBPmrYAfw9sDzwX2AE4HqCq3gz8hP+9q3FSy+O9DjgT2Ar4+gjHb+OPgL2BFwB/DiwE3tTUuhtwZFff3wW2AZ4BvBVYmOQ5TdspwJbA7wN/ALwFeFvXvvsBdwC/04x/NHBVc+5bNX0eafbbCjgIeGeSgwfU+2LgOcDLgI8keW6z/YNNra8CtgDeDqxMsjlwEfCvwNOBI4DPJtm1/SWSpLExQEiSzklyf/N1TpLfofOC9QNV9UhV/RL4FJ0XqVTVf1bVRVW1qqpWAP9A58X1uriqqs6pqjV0XigPefyWTqqqB6vqJuBG4MKquqOqHgC+SyeUdPvr5nx+AJwP/HFzx+MI4C+r6qGqWg58Enhz134/r6pTqurxqnp0sEKq6tKqWlZVa6rqBuAb/Pb1OqGqHq2qpcBSYI9m+58Ax1XVrdWxtKp+BbwaWF5VX26OfR1wFnDYKK6RJI2J8zUlSQdX1X+sXUmyL/Ak4J4kazdvBPy0af8d4NPAAcCspu2+dazhp13LOw13/JZ+0bX86CDrv9u1fl9VPdK1fheduyvbNHXcNaDtGUPUPagk+wEn0rnz8WRgE+CMAd3+q2t5JTCzWd4B+PEgw+4E7Ld2mlRjBvC1keqRpHXlHQhJ0kA/BVYB21TVVs3XFlX1vKb974ACdq+qLehM3UnX/jVgvEeAp6xdad7Z33ZAn+59Rjr+eHtqMyVorR2BnwP3Ar+h82K9u+3uIeoebB0604zOBXaoqi3pPCeRQfoN5qfAnCG2/6Dr+mzVTJt6Z8txJWnMDBCSpCeoqnuAC4FPJtkiyUbNQ8hrp93MAh4GHkjyDOBDA4b4BZ1nBta6Ddi0eZj4ScBxdN6FH+vxJ8IJSZ6c5AA604POqKrVwLeAv00yK8lOdJ5JGO4jY38B/N7ah7Qbs4BfV9Vjzd2dN46iri8BH0uyczqen2Rr4Dzg2UnenORJzdc+Xc9OSNKEMUBIkgbzFjrTbW6mMz3pTGC7pu0EYC/gATrPC5w9YN+/B45rnqk4pnnu4F10XgzfTeeOxM8Y3nDHH2//1Rzj53Qe4D66qm5p2t5Lp947gMvp3E34l2HGugS4CfivJPc2294FfDTJQ8BH6ISStv6h6X8h8CDwz8BmVfUQnQfLj2jq/i/gEwwTzCRpvKRqsLutkiRNf0nmAadV1e/1uBRJmjK8AyFJkiSpNQOEJEmSpNacwiRJkiSpNe9ASJIkSWrNACFJkiSpNf8S9RSzzTbb1OzZs3tdhiRJkqaxxYsX31tVA//oJ2CAmHJmz55Nf39/r8uQJEnSNJbkrqHanMIkSZIkqTUDhCRJkqTWDBCSJEmSWjNASJIkSWrNACFJkiSpNQOEJEmSpNYMEJIkSZJaM0BIkiRJas0AIUmSJKk1A4QkSZKk1gwQkiRJklozQEiSJElqbUavC9DoLLv7AWYfe36vy5AkSdIEW37iQb0uYVDegZAkSZLUmgFCkiRJUmsGCEmSJEmtGSAkSZIktWaAGEdJ/j3JViP0+WiSAyepJEmSJGlc+SlM4yBJgFTVq0bqW1UfmYSSJEmSpAnhHYiWknwwyY3N1weSzE5ya5KvAjcCOyRZnmSbpv9fN+2XJ/lGkmOa7acmObRZXp7khCRLkixLskvvzlCSJEkamQGihSR7A28D9gNeAPwp8FRgZ+CzVfW8qrqrq/8+wBuAPYBXAn3DDH9vVe0FfA44ZojjL0jSn6R/9coHxuOUJEmSpDExQLTzYuDbVfVIVT0MnA0cANxVVVcP0n9/4DtV9VhVPQT82zBjn918XwzMHqxDVS2sqr6q6tv4KVuO+SQkSZKkdWWAWDePjMMYq5rvq/GZFEmSJK3nDBDtXAYcnOQpSTYHDmm2DeUK4DVJNk0yE3j1ZBQpSZIkTTTf8W6hqpYkORW4ttn0JeC+YfovSnIucAPwC2AZ4MMLkiRJmvJSVb2uYVpKMrOqHk7yFOCHwIKqWrKu426y3c613Vv/cZ3rkyRJ0vpt+YkH9ezYSRZX1aAfBOQdiImzMMmuwKbAV8YjPEiSJEm9ZoCYIFX1xl7XIEmSJI03A8QUs/sztqS/h7ezJEmStGHzU5gkSZIktWaAkCRJktSaAUKSJElSaz4DMcUsu/sBZh97fq/L0CTr5ce4SZIkdfMOhCRJkqTWDBCSJEmSWjNASJIkSWrNACFJkiSpNQOEJEmSpNY2qACR5Pgkx4zTWPOTfGY8xpIkSZKmig0qQEwFSfxoXUmSJK23pn2ASPLhJLcluRx4TrNtTpILkixOclmSXZrtpyb5fJL+Zp9XjzD89s04tyc5qeuYRyZZluTGJJ/o2v5w1/KhSU4dcNxrgJOQJEmS1lPT+t3uJHsDRwBz6ZzrEmAxsBA4uqpuT7If8Fngpc1us4F9gTnA95M8q6oeG+IQc4E9gVXArUlOAVYDnwD2Bu4DLkxycFWdM0K5vwe8qKpWD3IeC4AFABtvse2I5y1JkiRNlGkdIIADgG9X1UqAJOcCmwIvAs5IsrbfJl37fKuq1gC3J7kD2AW4fojxL66qB5qxbwZ2ArYGLq2qFc32rwMvAc4ZodYzBgsPAFW1kE7oYZPtdq4RxpEkSZImzHQPEIPZCLi/quYO0T7wBfpwL9hXdS2vZuTr2T3WpgPaHhlhX0mSJKnnpvszED8EDk6yWZJZwGuAlcCdSQ4DSMceXfsclmSjJHOA3wduHeUxrwX+IMk2STYGjgR+0LT9Islzk2wEHLIO5yVJkiT1xLS+A1FVS5KcDiwFfgksapqOAj6X5DjgScA3mz4AP6ETArag85zEUM8/DHXMe5IcC3wfCHB+VX2naT4WOA9YAfQDM8d6bpIkSVIvpMop9Ws1n4p0XlWd2etahrLJdjvXdm/9x16XoUm2/MSDel2CJEnagCRZXFV9g7VN9ylMkiRJksbRtJ7CNFpVNX/gtiR/ROdjWbvdWVU+wyBJkqQNjlOYppi+vr7q7+/vdRmSJEmaxpzCJEmSJGlcGCAkSZIktWaAkCRJktSaD1FPMcvufoDZx57f6zLWS37UqSRJ0sTzDoQkSZKk1gwQkiRJklozQEiSJElqzQAhSZIkqTUDxBglWZ5km17XIUmSJE0mA8QASTYebn2Cj50k/ptIkiRpvbXBvVhNck6SxUluSrKg2fZwkk8mWQq8cOD6MMO9N8mSJMuS7NKM9bTmGDckuTrJ85vtxyc5pquOG5PMbr5uTfJV4EZghwk7eUmSJGkdbXABAnh7Ve0N9AHvS7I1sDlwTVXtUVWXD7I+lHurai/gc8DacHACcF1VPR/4K+CrLWraGfhsVT2vqu4a2JhkQZL+JP2rVz7Q+kQlSZKk8bYhBoj3NXcWrqbzbv/OwGrgrK4+A9eHcnbzfTEwu1l+MfA1gKq6BNg6yRYjjHNXVV09VGNVLayqvqrq2/gpW7YoS5IkSZoYG9Rfok4yDzgQeGFVrUxyKbAp8FhVre7qOnB9KKua76sZ+Vo+zhMD26Zdy4+0OJYkSZLUcxvaHYgtgfua8LAL8IIJOMZlwFHwP4Hl3qp6EFgO7NVs3wt45gQcW5IkSZpQG9QdCOAC4OgkPwJupTONabwdD/xLkhuAlcBbm+1nAW9JchNwDXDbBBxbkiRJmlAbVICoqlXAKwdpmjmg38xB+gwca3bXcj8wr1n+NXDwIP0fBV4+xHC7jXQ8SZIkaX2woU1hkiRJkrQONqg7EGOR5Nv89vMKf1FV3+tFPZIkSVIvGSBGUFWH9LqGbrs/Y0v6Tzyo12VIkiRpA+UUJkmSJEmtGSAkSZIktWaAkCRJktSaz0BMMcvufoDZx57f6zKGtdxnNCRJkqYt70BIkiRJas0AIUmSJKk1A4QkSZKk1gwQkiRJklpbrwJEkvlJPrMO+89Lct541rQ+HEuSJElaX6xXAWJ9kGTGcOuTfXxJkiRpfTIpASLJ5knOT7I0yY1JDk+yT5Irm23XJpnVdN8+yQVJbk9yUtcYL09yVZIlSc5IMrPZ/ooktyRZArx+hDr2bca4rjn2c5rt85Ocm+QS4OKB68MMOTPJmc3xv54kzXgva46xLMm/JNmk2b48yTbNcl+SS5vl45N8LckVwNfGcIklSZKkSTFZ73a/Avh5VR0EkGRL4Drg8KpalGQL4NGm71xgT2AVcGuSU5q244ADq+qRJH8BfLAJGF8EXgr8J3D6CHXcAhxQVY8nORD4O+ANTdtewPOr6tdJ5nevDzPensDzgJ8DVwD7J+kHTgVeVlW3Jfkq8E7gH0eobVfgxVX16MCGJAuABQAbb7HtCMNIkiRJE2eyAsQy4JNJPgGcB9wP3FNViwCq6kGA5g38i6vqgWb9ZmAnYCs6L7CvaPo8GbgK2AW4s6pub/qfRvNCewhbAl9JsjNQwJO62i4aEBYGrg/m2qr6WXPs64HZwENNTbc1fb4CvJuRA8S5g4UHgKpaCCwE2GS7nWuEcSRJkqQJMykBonknfi/gVcDHgUuG6b6qa3k1nRpD5wX9kd0dk8wdZSkfA75fVYckmQ1c2tX2yIC+A9fb1jqcx/nfaWObjuF4kiRJUk9N1jMQ2wMrq+o04GRgP2C7JPs07bNGeHj4ajrTg57V9N88ybPpTEmanWRO0+/IoQZobAnc3SzPH9PJjOzWpqZnNetvBn7QLC8H9m6W34AkSZI0xUzWpzDtDlzbTPP5G+AjwOHAKUmWAhfx2+/I/4+qWkHnBf83ktxAM32pqh6jM2Xp/OYh6l+OUMdJwN8nuY4JuvvS1PQ24Iwky4A1wOeb5hOATzfPSayeiONLkiRJEylVTqmfSjbZbufa7q3/2OsyhrX8xIN6XYIkSZLWQZLFVdU3WJt/B0KSJElSa9Pyj5YleRvw/gGbr6iqd49hrN357b/NsKqq9htrfZIkSdJU5RSmKaavr6/6+/t7XYYkSZKmMacwSZIkSRoXBghJkiRJrRkgJEmSJLVmgJhilt39QK9LkCRJ0gbMACFJkiSpNQOEJEmSpNYMEJIkSZJaM0BMoCR9Sf5vr+uQJEmSxsu0/EvUvZBkRlU9PmC9H2j9V98GjiFJkiStbwwQg0jyFuAYoIAbgG8BxwFPBn4FHFVVv0hyPDAH+H3gJ0luHbD+BeCYqnp1ks2BU4DdgCcBx1fVd5LMB14PzAQ2Bv5g0k5UkiRJGiUDxABJnkcnLLyoqu5N8jQ6QeIFVVVJ/gT4c+DPml12BV5cVY82gaJ7fV7X0B8GLqmqtyfZCrg2yX80bXsBz6+qX0/w6UmSJEnrxADx214KnFFV9wJU1a+T7A6cnmQ7Onch7uzqf25VPTrM+lovB16b5JhmfVNgx2b5ouHCQ5IFwAKAjbfYdiznJEmSJI0LH6Ju5xTgM1W1O/D/0nnxv9YjA/oOXF8rwBuqam7ztWNV/WiEfQCoqoVV1VdVfRs/Zcux1C9JkiSNCwPEb7sEOCzJ1gDNFKYtgbub9reOcdzvAe9NkmbcPde1UEmSJGmyOYVpgKq6KcnfAj9Ishq4DjgeOCPJfXQCxjPHMPTHgH8EbkiyEZ1pUK8el6IlSZKkSZKq6nUNGoVNttu5Vt1ze6/LkCRJ0jSWZHFV9Q3W5hQmSZIkSa0ZICRJkiS1ZoCQJEmS1JoBYorZ/Rl+jKskSZJ6xwAhSZIkqTUDhCRJkqTWDBCSJEmSWjNATDHL7n6g1yVIkiRpA2aAkCRJktSaAUKSJElSawYISZIkSa3N6HUBvZTkeOBhYAvgh1X1H0P0Oxi4rapunrzqJEmSpPWPdyCAqvrIUOGhcTCw6ySVI0mSJK23NrgAkeTDSW5LcjnwnGbbqUkObZZPTHJzkhuS/H9JXgS8Fjg5yfVJ5iT50ySLkixNclaSp3SN83+TXJnkjrVjNm1/kWRZs8+JzbY5SS5IsjjJZUl2mfQLIkmSJI3CBjWFKcnewBHAXDrnvgRY3NW+NXAIsEtVVZKtqur+JOcC51XVmU2/+6vqi83yx4F3AKc0w2wHvBjYBTgXODPJK4HXAftV1cokT2v6LgSOrqrbk+wHfBZ46cRdAUmSJGndbFABAjgA+HZVrQRogkG3B4DHgH9Och5w3hDj7NYEh62AmcD3utrOqao1wM1JfqfZdiDw5bXHrapfJ5kJvAg4I8nafTcZ7GBJFgALADbeYtuWpypJkiSNvw0tQAyrqh5Psi/wMuBQ4D0MfkfgVODgqlqaZD4wr6ttVddyGNpGwP1VNbdFXQvp3K1gk+12rpH6S5IkSRNlQ3sG4ofAwUk2SzILeE13Y3NXYMuq+nfg/wB7NE0PAbO6us4C7knyJOCoFse9CHhb17MST6uqB4E7kxzWbEuSPYYbRJIkSeq1DSpAVNUS4HRgKfBdYNGALrOA85LcAFwOfLDZ/k3gQ0muSzIH+GvgGuAK4JYWx72AzvMQ/UmuB45pmo4C3pFkKXATneckJEmSpPVWqpwRM5Vsst3Oteqe23tdhiRJkqaxJIurqm+wtg3qDoQkSZKkdWOAkCRJktSaAUKSJElSawaIKWb3Z2zZ6xIkSZK0ATNASJIkSWrNACFJkiSpNQOEJEmSpNYMEJIkSZJaM0BIkiRJas0AIUmSJKk1A4QkSZKk1gwQkiRJklqbsACRZH6Sz6zD/vOSnDeeNa2rJEcnecs67P9X41mPJEmSNNmm9R2IJDOGWx+tqvp8VX11HYYwQEiSJGlKG3WASLJ5kvOTLE1yY5LDk+yT5Mpm27VJZjXdt09yQZLbk5zUNcbLk1yVZEmSM5LMbLa/IsktSZYArx+hjn2bMa5rjv2cZvv8JOcmuQS4eOD6EGPNS/KDJN9JckeSE5Mc1ZzLsiRzmn7HJzmmWb40ySeaPrclOaDr+J/pGvu8ZvwTgc2SXJ/k603bm5r9r0/yhSQbj/bfQ5IkSZpMY7kD8Qrg51W1R1XtBlwAnA68v6r2AA4EHm36zgUOB3YHDk+yQ5JtgOOAA6tqL6Af+GCSTYEvAq8B9gZ+d4Q6bgEOqKo9gY8Af9fVthdwaFX9wRDrg9kDOBp4LvBm4NlVtS/wJeC9Q+wzo+nzAeBvhiu2qo4FHq2quVV1VJLn0rk2+1fVXGA1cNRg+yZZkKQ/Sf+KFSuGO4wkSZI0ocYypWcZ8MkknwDOA+4H7qmqRQBV9SBAEoCLq+qBZv1mYCdgK2BX4Iqmz5OBq4BdgDur6vam/2nAgmHq2BL4SpKdgQKe1NV2UVX9epj1wSyqqnuaY/8YuLDrfP9wiH3Obr4vBmaPMP5AL6MTlBY112Ez4JeDdayqhcBCgL6+vhrlcSRJkqRxM+oAUVW3JdkLeBXwceCSYbqv6lpe3RwvdF7QH9ndMcncUZbyMeD7VXVIktnApV1tjwzoO3B9pFrXdK2vYejrtLbP6q4+j/PEOzubDrFvgK9U1V+2qE2SJElaL4zlGYjtgZVVdRpwMrAfsF2SfZr2WSM8rHw1sH+SZzX9N0/ybDpTkmavfd4AOHKoARpbAnc3y/NHex4TaDkwN8lGSXYA9u1q+02StXdKLgYOTfJ0gCRPS7LT5JYqSZIkjc5YpjDtDpycZA3wG+CddN5NPyXJZnSefzhwqJ2rakWS+cA3kmzSbD6uubOxADg/yUrgMmDWUOMAJ9GZwnQccP4YzmOiXAHcCdwM/AhY0tW2ELghyZLmOYjjgAuTbETnWr4buGuyC5YkSZLaSpVT6qeSvr6+6u/v73UZkiRJmsaSLK6qvsHapvXfgZAkSZI0vtbpD6tNhiRvA94/YPMVVfXuMYy1O/C1AZtXVdV+Y61PkiRJ2pCs9wGiqr4MfHmcxlpG529TSJIkSRoDpzBJkiRJas0AIUmSJKk1A4QkSZKk1gwQkiRJklozQEiSJElqzQAhSZIkqTUDhCRJkqTWDBCSJEmSWjNAjEKS7ZOcuQ77H5xk1/GsSZIkSZpM0z5AJNl4uPXRqKqfV9Wh61DOwYABQpIkSVPWlA8QSc5JsjjJTUkWNNseTvLJJEuBFw5cH2Kc5Un+Psn1SfqT7JXke0l+nOTops/sJDc2y/OTnJ3kgiS3Jzmpa6yHu5YPTXJqkhcBrwVObo4xp/m6oKn/siS7TNyVkiRJktbdjF4XMA7eXlW/TrIZsCjJWcDmwDVV9WcASZ6wPoyfVNXcJJ8CTgX2BzYFbgQ+P0j/ucCewCrg1iSnVNVPBxu4qq5Mci5wXlWd2dR1MXB0Vd2eZD/gs8BLB+7bBKMFADvuuOMIpyBJkiRNnOkQIN6X5JBmeQdgZ2A1cFZXn4HrQzm3+b4MmFlVDwEPJVmVZKtB+l9cVQ8AJLkZ2AkYNEAMlGQm8CLgjCRrN28yWN+qWggsBOjr66s240uSJEkTYUoHiCTzgAOBF1bVyiSX0rlj8FhVre7qOnB9KKua72u6lteuD3atuvus7urT/SJ/0yGOtRFwf1XNbVGXJEmStF6Y6s9AbAnc14SHXYAX9Lqgxi+SPDfJRsAhXdsfAmYBVNWDwJ1JDgNIxx6TX6okSZLU3lQPEBcAM5L8CDgRuLrH9ax1LHAecCVwT9f2bwIfSnJdkjnAUcA7moe7bwJeN+mVSpIkSaOQKqfUTyV9fX3V39/f6zIkSZI0jSVZXFV9g7VN9TsQkiRJkibRlH6IeiySfBt45oDNf1FV3+tFPZIkSdJUssEFiKo6ZORekiRJkgbjFCZJkiRJrRkgJEmSJLVmgJAkSZLUmgFCkiRJUmsGCEmSJEmtGSAkSZIktWaAkCRJktSaAUKSJElSa1M2QCQ5Pskxk3zMjyY5cIz7bpXkXeNdkyRJkjSZpmyA6IWq+khV/ccYd98KMEBIkiRpSptSASLJh5PcluRy4DnNtjlJLkiyOMllSXZptp+a5PNJ+pt9Xj3MuPOTnJPkoiTLk7wnyQeTXJfk6iRP6xrz0GZ5eZITkixJsqzruE+4M5LkxiSzgROBOUmuT3Jy0/ahJIuS3JDkhIm5apIkSdL4mTIBIsnewBHAXOBVwD5N00LgvVW1N3AM8Nmu3WYD+wIHAZ9Psukwh9gNeH0z7t8CK6tqT+Aq4C1D7HNvVe0FfK459nCOBX5cVXOr6kNJXg7s3NQ3F9g7yUsG2zHJgiYI9a9YsWKEw0iSJEkTZ0avCxiFA4BvV9VKgCTnApsCLwLOSLK23yZd+3yrqtYAtye5A9gFuH6I8b9fVQ8BDyV5APi3Zvsy4PlD7HN2830xnfAxGi9vvq5r1mfSCRQ/HNixqhbSCUr09fXVKI8jSZIkjZupFCAGsxFwf1XNHaJ94Ivt4V58r+paXtO1voahr9PaPqu7+jzOE+/sDHXXI8DfV9UXhqlJkiRJWq9MmSlMdN6ZPzjJZklmAa8BVgJ3JjkMIB17dO1zWJKNkswBfh+4dRLqXA7s1dSzF/DMZvtDwKyuft8D3p5kZtP3GUmePgn1SZIkSWM2Ze5AVNWSJKcDS4FfAouapqOAzyU5DngS8M2mD8BPgGuBLYCjq+qxSSj1LOAtSW4CrgFua+r/VZIrktwIfLd5DuK5wFXN9KuHgTc15yZJkiStl1I1PafUJzkVOK+qzux1LeOpr6+v+vv7e12GJEmSprEki6uqb7C2qTSFSZIkSVKPTZkpTKNVVfMHbkvyR8AnBmy+s6oOmZSiJEmSpClu2gaIwVTV9+g8vCxJkiRpDJzCJEmSJKk1A4QkSZKk1gwQkiRJklozQEiSJElqzQAhSZIkqTUDhCRJkqTWDBCSJEmSWjNAjLMkxyc5ZpT7zE3yqomqSZIkSRovBoj1w1zAACFJkqT1ngFiHCT5cJLbklwOPKfZNifJBUkWJ7ksyS7N9sOS3JhkaZIfJnky8FHg8CTXJzm8h6ciSZIkDWtGrwuY6pLsDRxB5y7CDGAJsBhYCBxdVbcn2Q/4LPBS4CPAH1XV3Um2qqr/TvIRoK+q3tOTk5AkSZJaMkCsuwOAb1fVSoAk5wKbAi8Czkiytt8mzfcrgFOTfAs4u80BkiwAFgDsuOOO41e5JEmSNEoGiImxEXB/Vc0d2FBVRzd3JA4CFjd3MIZVVQvp3NGgr6+vxrlWSZIkqTWfgVh3PwQOTrJZklnAa4CVwJ1JDgNIxx7N8pyquqaqPgKsAHYAHgJm9aZ8SZIkqT0DxDqqqiXA6cBS4LvAoqbpKOAdSZYCNwGva7afnGRZkhuBK5v9vg/s6kPUkiRJWt+lyhkxU0lfX1/19/f3ugxJkiRNY0kWV1XfYG3egZAkSZLUmgFCkiRJUmsGCEmSJEmtGSAkSZIktWaAkCRJktSaAUKSJElSawYISZIkSa0ZICRJkiS1ZoCQJEmS1JoBQpIkSVJrBghJkiRJrRkgJlCS45Mc0+s6JEmSpPFigJAkSZLUmgFinCX5cJLbklwOPKfZ9qdJFiVZmuSsJE9JMivJnUme1PTZontdkiRJWh8ZIMZRkr2BI4C5wKuAfZqms6tqn6raA/gR8I6qegi4FDio6XNE0+83k1q0JEmSNAoGiPF1APDtqlpZVQ8C5zbbd0tyWZJlwFHA85rtXwLe1iy/DfjyYIMmWZCkP0n/ihUrJrB8SZIkaXgGiMlxKvCeqtodOAHYFKCqrgBmJ5kHbFxVNw62c1UtrKq+qurbdtttJ6diSZIkaRAGiPH1Q+DgJJslmQW8ptk+C7ineb7hqAH7fBX4V4a4+yBJkiStTwwQ46iqlgCnA0uB7wKLmqa/Bq4BrgBuGbDb14GnAt+YpDIlSZKkMZvR6wKmm6r6W+BvB2n63BC7vBg4s6run7CiJEmSpHFigOihJKcAr6TziU2SJEnSes8A0UNV9d5e1yBJkiSNhs9ASJIkSWrNACFJkiSpNQOEJEmSpNYMEJIkSZJaM0BIkiRJas0AIUmSJKk1A4QkSZKk1gwQkiRJklozQEiSJElqzQAxSZJsleRdXevzkpzXy5okSZKk0TJATJ6tgHeN1EmSJElanxkgBpFkdpJbkpya5LYkX09yYJIrktyeZN8kT0tyTpIbklyd5PnNvscn+Zcklya5I8n7mmFPBOYkuT7Jyc22mUnObI719STpyQlLkiRJLc3odQHrsWcBhwFvBxYBbwReDLwW+Cvgp8B1VXVwkpcCXwXmNvvuAvwhMAu4NcnngGOB3apqLnSmMAF7As8Dfg5cAewPXD7hZyZJkiSNkXcghnZnVS2rqjXATcDFVVXAMmA2nTDxNYCqugTYOskWzb7nV9WqqroX+CXwO0Mc49qq+llzjOubcX9LkgVJ+pP0r1ixYnzOTpIkSRoDA8TQVnUtr+laX8PId2669109TP9W/apqYVX1VVXftttuO8KhJUmSpIljgBi7y4Cj4H+mI91bVQ8O0/8hOlOaJEmSpCnLZyDG7njgX5LcAKwE3jpc56r6VfMQ9o3Ad4HzJ75ESZIkaXylM61fU0VfX1/19/f3ugxJkiRNY0kWV1XfYG1OYZIkSZLUmgFCkiRJUmsGCEmSJEmtGSAkSZIktWaAkCRJktSaAUKSJElSawYISZIkSa0ZICRJkiS1ZoCQJEmS1JoBQpIkSVJrBghJkiRJrRkgJEmSJLVmgOiS5N+TbDWK/n81YP3KcS9KkiRJWo8YILpU1auq6v7ubekY6jo9IUBU1YsmqjZJkiRpfbDBBogk5yRZnOSmJAuabcuTbJNkdpJbk3wVuBHYYZD9TwQ2S3J9kq832x5uvs9L8oMk30lyR5ITkxyV5Noky5LMafptm+SsJIuar/0n7QJIkiRJYzCj1wX00Nur6tdJNgMWJTlrQPvOwFur6urBdq6qY5O8p6rmDjH+HsBzgV8DdwBfqqp9k7wfeC/wAeDTwKeq6vIkOwLfa/Z5gibgLADYcccdR3makiRJ0vjZkAPE+5Ic0izvQCcwdLtrqPDQ0qKqugcgyY+BC5vty4A/bJYPBHZNsnafLZLMrKqHuweqqoXAQoC+vr5ah5okSZKkdbJBBogk8+i8eH9hVa1Mcimw6YBuj6zjYVZ1La/pWl/D/173jYAXVNVj63gsSZIkaVJsqM9AbAnc14SHXYAXjHGc3yR50jrUcSGd6UwAJJm7DmNJkiRJE25DDRAXADOS/Ag4ERjrVKWFwA1rH6Ieg/cBfUluSHIzcPQYx5EkSZImRaqcUj+V9PX1VX9/f6/LkCRJ0jSWZHFV9Q3WtqHegZAkSZI0BhvkQ9SjleQaYJMBm99cVct6UY8kSZLUKwaIFqpqv17XIEmSJK0PnMIkSZIkqTUDhCRJkqTWDBCSJEmSWjNASJIkSWrNACFJkiSpNQOEJEmSpNYMEJIkSZJaM0BIkiRJam3cAkSS+Uk+sw77z0ty3ij6L0+yzViPN1ZJrlyHfecledF41iNJkiRNJu9AjFJVrUsAmAcYICRJkjRljRggkmye5PwkS5PcmOTwJPskubLZdm2SWU337ZNckOT2JCd1jfHyJFclWZLkjCQzm+2vSHJLkiXA60eoY+skFya5KcmXgHS1vamp4/okX0iycbP94SSfava5OMm2w4x/adO3P8mPmnM8uzmXj3f1e7j5Pq/Z58zmHL6eJE3b/9wdSdLX9JsNHA38n6bOA5Jsm+SsJIuar/1H+veQJEmSeqnNHYhXAD+vqj2qajfgAuB04P1VtQdwIPBo03cucDiwO3B4kh2aF9LHAQdW1V5AP/DBJJsCXwReA+wN/O4IdfwNcHlVPQ/4NrAjQJLnNsfcv6rmAquBo5p9Ngf6m31+0IwxnP+uqj7g88B3gHcDuwHzk2w9SP89gQ8AuwK/DwwZAKpqeTPup6pqblVdBny6Wd8HeAPwpcH2TbKgCTb9K1asGOEUJEmSpIkzo0WfZcAnk3wCOA+4H7inqhYBVNWDAM2b7xdX1QPN+s3ATsBWdF5gX9H0eTJwFbALcGdV3d70Pw1YMEwdL6G5S1FV5ye5r9n+MjoBZFEz/mbAL5u2NXTCDsBpwNkjnOu5Xed8U1Xd09R2B7AD8KsB/a+tqp81fa4HZgOXj3CMbgcCuzZ1A2yRZGZVPdzdqaoWAgsB+vr6ahTjS5IkSeNqxABRVbcl2Qt4FfBx4JJhuq/qWl7djB/goqo6srtjkrmjrnZwAb5SVX/Zou9IL77X1r+GJ57LGga/VoOdL8Dj/O/dnU2HOd5GwAuq6rER6pIkSZLWC22egdgeWFlVpwEnA/sB2yXZp2mflWS4IHI1sH+SZzX9N0/ybOAWYHaSOU2/I4caoPFD4I3NGK8Entpsvxg4NMnTm7anJdmp6/wObZbfyOjuDqyL5XTuikBnatJaDwGzutYvBN67dmUcQ5UkSZI0Ido8A7E7cG0zRedvgI/QeebglCRLgYsY5l32qloBzAe+keQGmulLzbvuC4Dzm4eofznUGI0TgJckuYnOVKafNOPfTOcZiwub8S8Ctmv2eQTYN8mNwEuBj7Y43/FwAvDpJP107kys9W/AIWsfogbeB/QluaGZ8nX0JNUnSZIkjUmqpu+U+iQPV9XMXtcxnvr6+qq/v7/XZUiSJGkaS7K4+XCh3+LfgZAkSZLUWptPYZpUSd4GvH/A5iuq6t2jHWuwuw9J/onf/rjVT1fVl0c7viRJkrShWe8CRPNCfsJezI8liEiSJEnqcAqTJEmSpNYMEJIkSZJaM0BIkiRJas0AIUmSJKk1A4QkSZKk1gwQkiRJklozQEiSJElqzQAhSZIkqbWeBYgk85N8Zh32n5fkvFH0X55km7Eeb5DxLk3SN17jSZIkSVOBdyDWM0k27nUNkiRJ0lDGPUAk2TzJ+UmWJrkxyeFJ9klyZbPt2iSzmu7bJ7kgye1JTuoa4+VJrkqyJMkZSWY221+R5JYkS4DXj1DH1kkuTHJTki8B6Wp7U1PH9Um+sPZFe5KHk3yq2efiJNuOcLqHNePcluSAZoxNk3w5ybIk1yX5w2b7E+64JDkvybyu434yyVLgha0utCRJktQDE3EH4hXAz6tqj6raDbgAOB14f1XtARwIPNr0nQscDuwOHJ5kh2aa0XHAgVW1F9APfDDJpsAXgdcAewO/O0IdfwNcXlXPA74N7AiQ5LnNMfevqrnAauCoZp/Ngf5mnx80YwxnRlXtC3ygq++7gaqq3YEjga80tQ9nc+Ca5ppdPrAxyYIk/Un6V6xYMcJQkiRJ0sSZMQFjLgM+meQTwHnA/cA9VbUIoKoeBEgCcHFVPdCs3wzsBGwF7Apc0fR5MnAVsAtwZ1Xd3vQ/DVgwTB0voblLUVXnJ7mv2f4yOgFkUTP+ZsAvm7Y1dMIOwGnA2SOc69r2xcDsZvnFwCnNcW9Jchfw7BHGWQ2cNVRjVS0EFgL09fXVCGNJkiRJE2bcA0RV3ZZkL+BVwMeBS4bpvqpreXVTT4CLqurI7o5J5o5TiQG+UlV/2aLvSC/W19a/tvbhPM4T7/h035V4rKpWt6hHkiRJ6qmJeAZie2BlVZ0GnAzsB2yXZJ+mfVaS4V5sXw3sn+RZTf/NkzwbuAWYnWRO0+/IoQZo/BB4YzPGK4GnNtsvBg5N8vSm7WlJdmraNgIObZbfCPzWdKIWLqOZEtXUvSNwK7AcmJtkoyQ7APuOYWxJkiSppyZiCtPuwMlJ1gC/Ad5J513/U5JsRuf5hwOH2rmqViSZD3wjySbN5uOaOxsLgPOTrKTzQn3WUOMAJzRj3ARcCfykGf/mJMcBFybZqKnx3cBdwCPAvk37L+k8KzFanwU+l2QZnbsO86tqVZIrgDuBm4EfAUvGMLYkSZLUU6lySv1aSR6uqpm9rmM4fX191d/f3+syJEmSNI0lWVxVg/7NM/8OhCRJkqTWJmIK06RK8jbg/QM2X1FV7x7tWIPdfUjyT8D+AzZ/uqq+PNrxJUmSpKluygeI5oX8hL2YH0sQkSRJkqYrpzBJkiRJas0AIUmSJKk1A4QkSZKk1gwQkiRJklozQEiSJElqzQAhSZIkqTUDhCRJkqTWDBCSJEmSWjNASJIkSWrNACFJkiSpNQOEJEmSpNYMEJIkSZJaM0BIkiRJas0AIUmSJKm1VFWva9AoJHkIuLXXdUxj2wD39rqIaczrO7G8vhPL6zuxvL4Ty+s7sabj9d2pqrYdrGHGZFeidXZrVfX1uojpKkm/13fieH0nltd3Ynl9J5bXd2J5fSfWhnZ9ncIkSZIkqTUDhCRJkqTWDBBTz8JeFzDNeX0nltd3Ynl9J5bXd2J5fSeW13dibVDX14eoJUmSJLXmHQhJkiRJrRkg1lNJXpHk1iT/meTYQdo3SXJ6035Nktk9KHPKanF9X5JkSZLHkxzaixqnshbX94NJbk5yQ5KLk+zUizqnqhbX9+gky5Jcn+TyJLv2os6paqTr29XvDUkqyQbzySvjocXP7/wkK5qf3+uT/Ekv6pyq2vz8Jvnj5nfwTUn+dbJrnMpa/Px+qutn97Yk9/egzAnnFKb1UJKNgduA/wf4GbAIOLKqbu7q8y7g+VV1dJIjgEOq6vCeFDzFtLy+s4EtgGOAc6vqzB6UOiW1vL5/CFxTVSuTvBOY589vOy2v7xZV9WCz/FrgXVX1il7UO9W0ub5Nv1nA+cCTgfdUVf9k1zoVtfz5nQ/0VdV7elLkFNby+u4MfAt4aVXdl+TpVfXLnhQ8xbT9/dDV/73AnlX19smrcnJ4B2L9tC/wn1V1R1X9N/BN4HUD+rwO+EqzfCbwsiSZxBqnshGvb1Utr6obgDW9KHCKa3N9v19VK5vVq4Hfm+Qap7I21/fBrtXNAd8paq/N71+AjwGfAB6bzOKmgbbXV2PT5vr+KfBPVXUfgOFhVEb783sk8I1JqWySGSDWT88Aftq1/rNm26B9qupx4AFg60mpbuprc301dqO9vu8AvjuhFU0vra5vkncn+TFwEvC+SaptOhjx+ibZC9ihqs6fzMKmiba/H97QTHE8M8kOk1PatNDm+j4beHaSK5JcncS7k+21/v+tmZr7TOCSSahr0hkgJPVMkjcBfcDJva5luqmqf6qqOcBfAMf1up7pIslGwD8Af9brWqaxfwNmV9XzgYv437vtGh8zgJ2BeXTeIf9ikq16WdA0dQRwZlWt7nUhE8EAsX66G+h+x+X3mm2D9kkyA9gS+NWkVDf1tbm+GrtW1zfJgcCHgddW1apJqm06GO3P7zeBgyeyoGlmpOs7C9gNuDTJcuAFwLk+SN3aiD+/VfWrrt8JXwL2nqTapoM2vx9+RufZvt9U1Z105vTvPEn1TXWj+f17BNN0+hIYINZXi4CdkzwzyZPp/BCeO6DPucBbm+VDgUvKJ+LbanN9NXYjXt8kewJfoBMenH87Om2ub/eLgYOA2yexvqlu2OtbVQ9U1TZVNbuqZtN5hue1PkTdWpuf3+26Vl8L/GgS65vq2vz/dg6duw8k2YbOlKY7JrHGqazV64ckuwBPBa6a5PomjQFiPdQ80/Ae4Ht0fnF+q6puSvLR5hNVAP4Z2DrJfwIfBIb8qEE9UZvrm2SfJD8DDgO+kOSm3lU8tbT8+T0ZmAmc0XzUnQGupZbX9z3NxzNeT+f3w1sHH00Dtby+GqOW1/d9zc/vUjrP78zvTbVTT8vr+z3gV0luBr4PfKiqnMHQwih+PxwBfHM6v7Hrx7hKkiRJas07EJIkSZJaM0BIkiRJas0AIUmSJKk1A4QkSZKk1gwQkiRJklozQEiSJElqzQAhSZIkqTUDhCRJkqTW/n847MFdVgavRQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "feature_importance = model.feature_importances_\n", "sorted_idx = np.argsort(feature_importance)\n", "fig = plt.figure(figsize=(12, 6))\n", "plt.barh(range(len(sorted_idx)), feature_importance[sorted_idx], align='center')\n", "plt.yticks(range(len(sorted_idx)), np.array(X_test.columns)[sorted_idx])\n", "plt.title('Feature Importance')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot the permutation importance." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Permutation Importance')" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "perm_importance = permutation_importance(model, np.ascontiguousarray(X_test_loo), y_test, n_repeats=10, random_state=1066)\n", "sorted_idx = perm_importance.importances_mean.argsort()\n", "fig = plt.figure(figsize=(12, 6))\n", "plt.barh(range(len(sorted_idx)), perm_importance.importances_mean[sorted_idx], align='center')\n", "plt.yticks(range(len(sorted_idx)), np.array(X_test.columns)[sorted_idx])\n", "plt.title('Permutation Importance')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot the mean absolute value of the SHAP values" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n" ] }, { "data": { "text/plain": [ "Text(0.5, 1.0, 'SHAP Importance')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "explainer = shap.Explainer(model)\n", "shap_values = explainer(np.ascontiguousarray(X_test_loo))\n", "shap_importance = shap_values.abs.mean(0).values\n", "sorted_idx = shap_importance.argsort()\n", "fig = plt.figure(figsize=(12, 6))\n", "plt.barh(range(len(sorted_idx)), shap_importance[sorted_idx], align='center')\n", "plt.yticks(range(len(sorted_idx)), np.array(X_test.columns)[sorted_idx])\n", "plt.title('SHAP Importance')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`SHAP` contains a function to plot this directly." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "shap.plots.bar(shap_values, max_display=X_test_loo.shape[0])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "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.7.10" } }, "nbformat": 4, "nbformat_minor": 4 }