{ "cells": [ { "cell_type": "markdown", "id": "98972347-26b3-4869-b544-6f50258f8b01", "metadata": {}, "source": [ "# A simple worked example of Shap\n", "\n", "This notebook shows a very simple example of Shap. We examine scores in a pub quiz. Those scores depend on the players present (Tim, Mark, and Carrie). The pub quiz team can have any number and combination of players - including none of the team turning up!\n", "\n", "Data has been generated according to a known algorithm:\n", "\n", "1) Add 3 marks if Tim is present\n", "2) Add 6 marks if Mark is present\n", "3) Add 9 marks if Carrie is present\n", "4) Add 0-20% (as an integer)\n", "\n", "We then fit an XGBoost regressor model to predict the score given any number and combination of players, and then fit a Shap model to explore the XGBoost model.\n", "\n", "Note: Shap values are usually reported as *log odds shifts* in model predictions. For a description of the relationships between probability, odds, and Shap values (log odds shifts) see [here](./odds_prob.md)." ] }, { "cell_type": "code", "execution_count": 1, "id": "a9a8c4ea-785a-47c1-9e8f-45e539bc549e", "metadata": {}, "outputs": [], "source": [ "# Turn warnings off to keep notebook tidy\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 2, "id": "f77f1e1c-5003-47bb-8503-b3a78aa0f34d", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import shap\n", "\n", "from sklearn import metrics\n", "from sklearn.linear_model import LinearRegression\n", "from xgboost import XGBRegressor" ] }, { "cell_type": "markdown", "id": "8dc5d273-2172-4cb7-b4b3-122715cab721", "metadata": {}, "source": [ "## Load data" ] }, { "cell_type": "code", "execution_count": 3, "id": "1e8ddec0-bc23-4bae-948c-331c8ae06a6c", "metadata": {}, "outputs": [], "source": [ "scores = pd.read_csv('shap_example.csv')" ] }, { "cell_type": "markdown", "id": "f00f9456-11c2-4ba8-ad4a-0a3916300086", "metadata": {}, "source": [ "Show first eight scores (a single set of all combinations)." ] }, { "cell_type": "code", "execution_count": 4, "id": "70e54890-6904-4cbf-91d9-919e19a2a6cf", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TimMarkCarrieScore
00000
11004
20106
300111
411011
510114
601115
711119
\n", "
" ], "text/plain": [ " Tim Mark Carrie Score\n", "0 0 0 0 0\n", "1 1 0 0 4\n", "2 0 1 0 6\n", "3 0 0 1 11\n", "4 1 1 0 11\n", "5 1 0 1 14\n", "6 0 1 1 15\n", "7 1 1 1 19" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scores.head(8)" ] }, { "cell_type": "markdown", "id": "df10804c-9f54-4ec2-943e-449c1b8b3bdc", "metadata": {}, "source": [ "## Calculate average of all games\n", "\n", "Shap values show change from the global average of all scores." ] }, { "cell_type": "code", "execution_count": 5, "id": "1b96ea2d-9c5f-46d5-87d0-fcf2b5125258", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Global average: 9.8\n" ] } ], "source": [ "global_average = scores['Score'].mean()\n", "print(f'Global average: {global_average:0.1f}')" ] }, { "cell_type": "markdown", "id": "dab156ce-a88a-4ff5-bd74-a4eaf68925b4", "metadata": {}, "source": [ "## Show averages by whether player is present or not\n", "\n", "Show averages by whether player is present or not, and show difference from average score." ] }, { "cell_type": "code", "execution_count": 6, "id": "8239745d-5480-425a-a8da-889c91d4c934", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average scores wrt Tim\n", "Tim\n", "0 8.1\n", "1 11.6\n", "Name: Score, dtype: float64\n", "\n", "Difference from average:\n", "Tim\n", "0 -1.8\n", "1 1.8\n", "Name: Score, dtype: float64\n", "\n", "\n", "Average scores wrt Mark\n", "Mark\n", "0 6.8\n", "1 12.8\n", "Name: Score, dtype: float64\n", "\n", "Difference from average:\n", "Mark\n", "0 -3.0\n", "1 3.0\n", "Name: Score, dtype: float64\n", "\n", "\n", "Average scores wrt Carrie\n", "Carrie\n", "0 5.2\n", "1 14.4\n", "Name: Score, dtype: float64\n", "\n", "Difference from average:\n", "Carrie\n", "0 -4.6\n", "1 4.6\n", "Name: Score, dtype: float64\n", "\n", "\n" ] } ], "source": [ "players = ['Tim', 'Mark', 'Carrie']\n", "for player in players:\n", " print(f'Average scores wrt {player}')\n", " average_scores = scores.groupby(player).mean()['Score']\n", " print(average_scores.round(1))\n", " print('\\nDifference from average:')\n", " difference = average_scores - global_average\n", " print(difference.round(1))\n", " print('\\n')" ] }, { "cell_type": "markdown", "id": "954c3646-621c-4e03-aa53-47043bb63854", "metadata": {}, "source": [ "## Split into X and y and fit XGBoost regressor model" ] }, { "cell_type": "code", "execution_count": 7, "id": "b15c99c3-e59a-4773-8bbf-651151fd718e", "metadata": {}, "outputs": [], "source": [ "X = scores.drop('Score', axis=1)\n", "y = scores['Score']" ] }, { "cell_type": "code", "execution_count": 8, "id": "e6c765d0-8746-4b40-8240-0f077340a63f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n", " colsample_bynode=1, colsample_bytree=1, enable_categorical=False,\n", " gamma=0, gpu_id=-1, importance_type=None,\n", " interaction_constraints='', learning_rate=0.300000012,\n", " max_delta_step=0, max_depth=6, min_child_weight=1, missing=nan,\n", " monotone_constraints='()', n_estimators=100, n_jobs=36,\n", " num_parallel_tree=1, predictor='auto', random_state=0, reg_alpha=0,\n", " reg_lambda=1, scale_pos_weight=1, subsample=1, tree_method='exact',\n", " validate_parameters=1, verbosity=None)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Define model\n", "model = XGBRegressor()\n", "\n", "# Fit model\n", "model.fit(X, y)" ] }, { "cell_type": "markdown", "id": "736264e1-0269-4726-b7f1-54f079955091", "metadata": {}, "source": [ "## Get predictions and plot observed vs. predicted\n", "\n", "(Predicted includes a random component to score, so no model can be exact)." ] }, { "cell_type": "code", "execution_count": 9, "id": "caf5fc49-1627-4e1e-9e22-97b7ac2b5846", "metadata": {}, "outputs": [], "source": [ "y_pred = model.predict(X)" ] }, { "cell_type": "code", "execution_count": 10, "id": "8ea34f76-14de-4016-890e-2465f4238cf2", "metadata": {}, "outputs": [], "source": [ "y_array = np.array(y).reshape(-1,1)\n", "y_pred_array = np.array(y_pred).reshape(-1,1)\n", "slr = LinearRegression()\n", "slr.fit(y_array, y_pred_array)\n", "y_pred_best_fit = slr.predict(y_array)\n", "r_square = metrics.r2_score(y_array, y_pred_best_fit)" ] }, { "cell_type": "code", "execution_count": 11, "id": "cedcc020-7055-4f6e-a5a6-b9196650f663", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(5,5))\n", "ax = fig.add_subplot()\n", "ax.scatter(y, y_pred)\n", "ax.set_xlabel('Observed')\n", "ax.set_ylabel('Predicted')\n", "\n", "ax.plot (y, slr.predict(y_array), color = 'red')\n", "text = f'R squared: {r_square:.3f}'\n", "ax.text(16, 12, text, \n", " bbox=dict(facecolor='white', edgecolor='black'))\n", "ax.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "596684d4-684e-4c20-8692-8663e4b23055", "metadata": {}, "source": [ "## Train Shap model" ] }, { "cell_type": "code", "execution_count": 12, "id": "f0c74945-58db-45bb-a5e1-bb1852d28216", "metadata": {}, "outputs": [], "source": [ "# Train explainer on Training set\n", "explainer = shap.TreeExplainer(model, X)\n", "\n", "# Get Shapley values along with base and features\n", "shap_values_extended = explainer(X)\n", "shap_values = shap_values_extended.values" ] }, { "cell_type": "markdown", "id": "7bc14c53-00e5-4b27-bbb1-1743bece2ef6", "metadata": {}, "source": [ "## Show beeswarm of Shap\n", "\n", "The Beeswarm plot shows the Shap values for each instance predicted. Each player has a Shap value for their presence or absence in a team, which shows the effect of their presence/absence compared with the global average of all scores." ] }, { "cell_type": "code", "execution_count": 13, "id": "01e5b22e-90cb-40a0-b1e5-9e4212ea1876", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "features = list(X)\n", "\n", "shap.summary_plot(shap_values=shap_values, \n", " features=X,\n", " feature_names=features,\n", " show=False)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "4844f484-0366-4926-b598-ffbee272f3d4", "metadata": {}, "source": [ "## Calculate Shap for each player when present or not\n", "\n", "Here we calculate the average Shap values for the absence and presence of a player in the team." ] }, { "cell_type": "code", "execution_count": 14, "id": "0d828ac3-21ff-45f1-b9b6-8d1ca8dde7a3", "metadata": {}, "outputs": [], "source": [ "shap_summary_by_player = dict()\n", "for player in list(X):\n", " player_shap_values = shap_values_extended[:, player]\n", " df = pd.DataFrame()\n", " df['player_present'] = player_shap_values.data\n", " df['shap'] = player_shap_values.values\n", " shap_summary = df.groupby('player_present').mean()\n", " shap_summary_by_player[player] = shap_summary " ] }, { "cell_type": "code", "execution_count": 15, "id": "ac3601fa-5a88-44b5-8782-6dfd5efdfd27", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shap for Tim:\n", " shap\n", "player_present \n", "0 -1.7\n", "1 1.7\n", "\n", "Shap for Mark:\n", " shap\n", "player_present \n", "0 -3.0\n", "1 3.0\n", "\n", "Shap for Carrie:\n", " shap\n", "player_present \n", "0 -4.6\n", "1 4.6\n", "\n" ] } ], "source": [ "for player in list(X):\n", " print (f'Shap for {player}:')\n", " print(shap_summary_by_player[player].round(1))\n", " print()" ] }, { "cell_type": "markdown", "id": "3d652de8-683e-490e-bba7-36315c4b6721", "metadata": {}, "source": [ "## Show waterfall plots for lowest and highest scores\n", "\n", "Waterfall plots show the influence of features on the predicted outcome starting from a baseline model prediction.\n", "\n", "Here we show the lowest and highest score." ] }, { "cell_type": "code", "execution_count": 16, "id": "599e379e-01d6-4864-b189-4d822921642e", "metadata": {}, "outputs": [], "source": [ "# Get the location of an example each where probability of giving thrombolysis\n", "# is <0.1 or >0.9\n", "\n", "location_low_score = np.where(y_pred == np.min(y_pred))[0][0]\n", "location_high_score = np.where(y_pred == np.max(y_pred))[0][0]" ] }, { "cell_type": "code", "execution_count": 17, "id": "72f27a73-1625-455c-a2a6-b109199adb19", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = shap.plots.waterfall(shap_values_extended[location_low_score])" ] }, { "cell_type": "code", "execution_count": 18, "id": "1c2661cf-8f87-4f7f-bbba-cf8b694180b4", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = shap.plots.waterfall(shap_values_extended[location_high_score])" ] }, { "cell_type": "markdown", "id": "91728d31-58c3-425f-a024-5898ecd6eaee", "metadata": {}, "source": [ "Pick a random example." ] }, { "cell_type": "code", "execution_count": 19, "id": "51ac3a0b-61fe-4103-9568-b168574d9c4c", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "random_location = np.random.randint(0, len(scores))\n", "fig = shap.plots.waterfall(shap_values_extended[random_location])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.12" } }, "nbformat": 4, "nbformat_minor": 5 }