{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## License \n", "\n", "Copyright 2017 - 2020 Patrick Hall and the H2O.ai team\n", "\n", "Licensed under the Apache License, Version 2.0 (the \"License\");\n", "you may not use this file except in compliance with the License.\n", "You may obtain a copy of the License at\n", "\n", " http://www.apache.org/licenses/LICENSE-2.0\n", "\n", "Unless required by applicable law or agreed to in writing, software\n", "distributed under the License is distributed on an \"AS IS\" BASIS,\n", "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "See the License for the specific language governing permissions and\n", "limitations under the License." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**DISCLAIMER:** This notebook is not legal compliance advice." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Engineering Transparency into Your Machine Learning Model with Python and XGBoost\n", "#### Monotonic XGBoost models, partial dependence, ICE, and Shapley explanations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A key to building interpretable models is to limit their complexity. The more complex a model is, the harder it is to explain and understand. Overly complex models can also make unstable predictions on new data, which is both difficult to explain and makes models harder to trust. Monotonicity constraints not only simplify models, but do so in a way that is somewhat natural for human reasoning, increasing the transparency of predictive models. Under monotonicity constraints, model predictions can only increase or only decrease as an input variable value increases, and the direction of the constraint is typically specified by the user for logical reasons. For instance, a model might be constrained to produce only increasing probabilities of a certain medical condition as a patient's age increases, or to make only increasing predictions for home prices as a home's square footage increases. \n", "\n", "In this notebook a gradient boosting machine (GBM) is trained with monotonicity constraints to predict credit card payment defaults, using the UCI credit card default data, Python, NumPy, Pandas, and XGBoost. First, the credit card default data is loaded and prepared. Then Pearson correlation with the prediction target is used to determine the direction of the monotonicity constraints for each input variable and the model is trained. After the model is trained, partial dependence and individual conditional expectation (ICE) plots are used to analyze and verify the model's monotonic behavior. Finally an example of creating regulator mandated reason codes from high fidelity Shapley explanations for any model prediction is presented. This combination of monotonic XGBoost, partial dependence, ICE, and Shapley explanations is probably the most direct way to create an interpretable machine learning model today.\n", "\n", "**Note**: As of the h2o 3.24 \"Yates\" release, Shapley values are supported in h2o, in addition to GBM monotonicity constraints and partial dependence. To see Shapley values and monotonicity constraints for an h2o GBM in action please see: https://github.com/jphall663/interpretable_machine_learning_with_python/blob/master/dia.ipynb." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Python imports " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's start with Python package imports. NumPy is used for basic arrray, vector, and matrix calculations. Pandas is used for data frame manipulation and plotting, and XGBoost is used to train a GBM with monotonicity constraints." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/patrickh/anaconda3/lib/python3.6/site-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.\n", " from numpy.core.umath_tests import inner1d\n" ] } ], "source": [ "import numpy as np # array, vector, matrix calculations\n", "import pandas as pd # DataFrame handling\n", "import shap # for consistent, signed variable importance measurements\n", "import xgboost as xgb # gradient boosting machines (GBMs)\n", "\n", "import matplotlib.pyplot as plt # plotting\n", "pd.options.display.max_columns = 999 # enable display of all columns in notebook\n", "\n", "# enables display of plots in notebook\n", "%matplotlib inline\n", "\n", "np.random.seed(12345) # set random seed for reproducibility" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Download, explore, and prepare UCI credit card default data\n", "\n", "UCI credit card default data: https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients\n", "\n", "The UCI credit card default data contains demographic and payment information about credit card customers in Taiwan in the year 2005. The data set contains 23 input variables: \n", "\n", "* **`LIMIT_BAL`**: Amount of given credit (NT dollar)\n", "* **`SEX`**: 1 = male; 2 = female\n", "* **`EDUCATION`**: 1 = graduate school; 2 = university; 3 = high school; 4 = others \n", "* **`MARRIAGE`**: 1 = married; 2 = single; 3 = others\n", "* **`AGE`**: Age in years \n", "* **`PAY_0`, `PAY_2` - `PAY_6`**: History of past payment; `PAY_0` = the repayment status in September, 2005; `PAY_2` = the repayment status in August, 2005; ...; `PAY_6` = the repayment status in April, 2005. The measurement scale for the repayment status is: -1 = pay duly; 1 = payment delay for one month; 2 = payment delay for two months; ...; 8 = payment delay for eight months; 9 = payment delay for nine months and above. \n", "* **`BILL_AMT1` - `BILL_AMT6`**: Amount of bill statement (NT dollar). `BILL_AMNT1` = amount of bill statement in September, 2005; `BILL_AMT2` = amount of bill statement in August, 2005; ...; `BILL_AMT6` = amount of bill statement in April, 2005. \n", "* **`PAY_AMT1` - `PAY_AMT6`**: Amount of previous payment (NT dollar). `PAY_AMT1` = amount paid in September, 2005; `PAY_AMT2` = amount paid in August, 2005; ...; `PAY_AMT6` = amount paid in April, 2005. \n", "\n", "These 23 input variables are used to predict the target variable, whether or not a customer defaulted on their credit card bill in late 2005. Because XGBoost accepts only numeric inputs, all variables will be treated as numeric." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Import data and clean\n", "The credit card default data is available as an `.xls` file. Pandas reads `.xls` files automatically, so it's used to load the credit card default data and give the prediction target a shorter name: `DEFAULT_NEXT_MONTH`. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# import XLS file\n", "path = 'default_of_credit_card_clients.xls'\n", "data = pd.read_excel(path,\n", " skiprows=1) # skip the first row of the spreadsheet\n", "\n", "# remove spaces from target column name \n", "data = data.rename(columns={'default payment next month': 'DEFAULT_NEXT_MONTH'}) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Assign modeling roles" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The shorthand name `y` is assigned to the prediction target. `X` is assigned to all other input variables in the credit card default data except the row indentifier, `ID`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "y = DEFAULT_NEXT_MONTH\n", "X = ['LIMIT_BAL', 'SEX', 'EDUCATION', 'MARRIAGE', 'AGE', 'PAY_0', 'PAY_2', 'PAY_3', 'PAY_4', 'PAY_5', 'PAY_6', 'BILL_AMT1', 'BILL_AMT2', 'BILL_AMT3', 'BILL_AMT4', 'BILL_AMT5', 'BILL_AMT6', 'PAY_AMT1', 'PAY_AMT2', 'PAY_AMT3', 'PAY_AMT4', 'PAY_AMT5', 'PAY_AMT6']\n" ] } ], "source": [ "# assign target and inputs for GBM\n", "y = 'DEFAULT_NEXT_MONTH'\n", "X = [name for name in data.columns if name not in [y, 'ID']]\n", "print('y =', y)\n", "print('X =', X)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Display descriptive statistics\n", "The Pandas `describe()` function displays a brief description of the credit card default data. The input variables `SEX`, `EDUCATION`, `MARRIAGE`, `PAY_0`-`PAY_6`, and the prediction target `DEFAULT_NEXT_MONTH`, are really categorical variables, but they have already been encoded into meaningful numeric, integer values, which is great for XGBoost. Also, there are no missing values in this dataset." ] }, { "cell_type": "code", "execution_count": 4, "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", " \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", " \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", " \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", "
LIMIT_BALSEXEDUCATIONMARRIAGEAGEPAY_0PAY_2PAY_3PAY_4PAY_5PAY_6BILL_AMT1BILL_AMT2BILL_AMT3BILL_AMT4BILL_AMT5BILL_AMT6PAY_AMT1PAY_AMT2PAY_AMT3PAY_AMT4PAY_AMT5PAY_AMT6DEFAULT_NEXT_MONTH
count30000.00000030000.00000030000.00000030000.00000030000.00000030000.00000030000.00000030000.00000030000.00000030000.00000030000.00000030000.00000030000.0000003.000000e+0430000.00000030000.00000030000.00000030000.0000003.000000e+0430000.0000030000.00000030000.00000030000.00000030000.000000
mean167484.3226671.6037331.8531331.55186735.485500-0.016700-0.133767-0.166200-0.220667-0.266200-0.29110051223.33090049179.0751674.701315e+0443262.94896740311.40096738871.7604005663.5805005.921163e+035225.681504826.0768674799.3876335215.5025670.221200
std129747.6615670.4891290.7903490.5219709.2179041.1238021.1971861.1968681.1691391.1331871.14998873635.86057671173.7687836.934939e+0464332.85613460797.15577059554.10753716563.2803542.304087e+0417606.9614715666.15974415278.30567917777.4657750.415062
min10000.0000001.0000000.0000000.00000021.000000-2.000000-2.000000-2.000000-2.000000-2.000000-2.000000-165580.000000-69777.000000-1.572640e+05-170000.000000-81334.000000-339603.0000000.0000000.000000e+000.000000.0000000.0000000.0000000.000000
25%50000.0000001.0000001.0000001.00000028.000000-1.000000-1.000000-1.000000-1.000000-1.000000-1.0000003558.7500002984.7500002.666250e+032326.7500001763.0000001256.0000001000.0000008.330000e+02390.00000296.000000252.500000117.7500000.000000
50%140000.0000002.0000002.0000002.00000034.0000000.0000000.0000000.0000000.0000000.0000000.00000022381.50000021200.0000002.008850e+0419052.00000018104.50000017071.0000002100.0000002.009000e+031800.000001500.0000001500.0000001500.0000000.000000
75%240000.0000002.0000002.0000002.00000041.0000000.0000000.0000000.0000000.0000000.0000000.00000067091.00000064006.2500006.016475e+0454506.00000050190.50000049198.2500005006.0000005.000000e+034505.000004013.2500004031.5000004000.0000000.000000
max1000000.0000002.0000006.0000003.00000079.0000008.0000008.0000008.0000008.0000008.0000008.000000964511.000000983931.0000001.664089e+06891586.000000927171.000000961664.000000873552.0000001.684259e+06896040.00000621000.000000426529.000000528666.0000001.000000
\n", "
" ], "text/plain": [ " LIMIT_BAL SEX EDUCATION MARRIAGE AGE \\\n", "count 30000.000000 30000.000000 30000.000000 30000.000000 30000.000000 \n", "mean 167484.322667 1.603733 1.853133 1.551867 35.485500 \n", "std 129747.661567 0.489129 0.790349 0.521970 9.217904 \n", "min 10000.000000 1.000000 0.000000 0.000000 21.000000 \n", "25% 50000.000000 1.000000 1.000000 1.000000 28.000000 \n", "50% 140000.000000 2.000000 2.000000 2.000000 34.000000 \n", "75% 240000.000000 2.000000 2.000000 2.000000 41.000000 \n", "max 1000000.000000 2.000000 6.000000 3.000000 79.000000 \n", "\n", " PAY_0 PAY_2 PAY_3 PAY_4 PAY_5 \\\n", "count 30000.000000 30000.000000 30000.000000 30000.000000 30000.000000 \n", "mean -0.016700 -0.133767 -0.166200 -0.220667 -0.266200 \n", "std 1.123802 1.197186 1.196868 1.169139 1.133187 \n", "min -2.000000 -2.000000 -2.000000 -2.000000 -2.000000 \n", "25% -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 \n", "50% 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "75% 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "max 8.000000 8.000000 8.000000 8.000000 8.000000 \n", "\n", " PAY_6 BILL_AMT1 BILL_AMT2 BILL_AMT3 \\\n", "count 30000.000000 30000.000000 30000.000000 3.000000e+04 \n", "mean -0.291100 51223.330900 49179.075167 4.701315e+04 \n", "std 1.149988 73635.860576 71173.768783 6.934939e+04 \n", "min -2.000000 -165580.000000 -69777.000000 -1.572640e+05 \n", "25% -1.000000 3558.750000 2984.750000 2.666250e+03 \n", "50% 0.000000 22381.500000 21200.000000 2.008850e+04 \n", "75% 0.000000 67091.000000 64006.250000 6.016475e+04 \n", "max 8.000000 964511.000000 983931.000000 1.664089e+06 \n", "\n", " BILL_AMT4 BILL_AMT5 BILL_AMT6 PAY_AMT1 \\\n", "count 30000.000000 30000.000000 30000.000000 30000.000000 \n", "mean 43262.948967 40311.400967 38871.760400 5663.580500 \n", "std 64332.856134 60797.155770 59554.107537 16563.280354 \n", "min -170000.000000 -81334.000000 -339603.000000 0.000000 \n", "25% 2326.750000 1763.000000 1256.000000 1000.000000 \n", "50% 19052.000000 18104.500000 17071.000000 2100.000000 \n", "75% 54506.000000 50190.500000 49198.250000 5006.000000 \n", "max 891586.000000 927171.000000 961664.000000 873552.000000 \n", "\n", " PAY_AMT2 PAY_AMT3 PAY_AMT4 PAY_AMT5 \\\n", "count 3.000000e+04 30000.00000 30000.000000 30000.000000 \n", "mean 5.921163e+03 5225.68150 4826.076867 4799.387633 \n", "std 2.304087e+04 17606.96147 15666.159744 15278.305679 \n", "min 0.000000e+00 0.00000 0.000000 0.000000 \n", "25% 8.330000e+02 390.00000 296.000000 252.500000 \n", "50% 2.009000e+03 1800.00000 1500.000000 1500.000000 \n", "75% 5.000000e+03 4505.00000 4013.250000 4031.500000 \n", "max 1.684259e+06 896040.00000 621000.000000 426529.000000 \n", "\n", " PAY_AMT6 DEFAULT_NEXT_MONTH \n", "count 30000.000000 30000.000000 \n", "mean 5215.502567 0.221200 \n", "std 17777.465775 0.415062 \n", "min 0.000000 0.000000 \n", "25% 117.750000 0.000000 \n", "50% 1500.000000 0.000000 \n", "75% 4000.000000 0.000000 \n", "max 528666.000000 1.000000 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data[X + [y]].describe() # display descriptive statistics for all columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Investigate pair-wise Pearson correlations for DEFAULT_NEXT_MONTH\n", "\n", "Monotonic relationships are much easier to explain to colleagues, bosses, customers, and regulators than more complex, non-monotonic relationships and monotonic relationships may also prevent overfitting and excess error due to variance for new data.\n", "\n", "To train a transparent monotonic classifier, contraints must be supplied to XGBoost that determine whether the learned relationship between an input variable and the prediction target `DEFAULT_NEXT_MONTH` will be increasing for increases in an input variable or decreasing for increases in an input variable. Pearson correlation provides a linear measure of the direction of the relationship between each input variable and the target. If the pair-wise Pearson correlation between an input and `DEFAULT_NEXT_MONTH` is positive, it will be constrained to have an increasing relationship with the predictions for `DEFAULT_NEXT_MONTH`. If the pair-wise Pearson correlation is negative, the input will be constrained to have a decreasing relationship with the predictions for `DEFAULT_NEXT_MONTH`. \n", "\n", "Constrainsts are supplied to XGBoost in the form of a Python tuple with length equal to the number of inputs. Each item in the tuple is associated with an input variable based on its index in the tuple. The first constraint in the tuple is associated with the first variable in the training data, the second constraint in the tuple is associated with the second variable in the training data, and so on. The constraints themselves take the form of a 1 for a positive relationship and a -1 for a negative relationship." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Calculate Pearson correlation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Pandas `.corr()` function returns the pair-wise Pearson correlation between variables in a Pandas DataFrame. Because `DEFAULT_NEXT_MONTH` is the last column in the `data` DataFrame, the last column of the Pearson correlation matrix indicates the direction of the linear relationship between each input variable and the prediction target, `DEFAULT_NEXT_MONTH`. According to the calculated values, as a customer's balance limit (`LIMIT_BAL`), bill amounts (`BILL_AMT1`-`BILL_AMT6`), and payment amounts (`PAY_AMT1`-`PAY_AMT6`) increase, their probability of default tends to decrease. However as a customer's number of late payments increase (`PAY_0`, `PAY_2`-`PAY6`), their probability of default usually increases. In general, the Pearson correlation values make sense, and they will be used to ensure that the modeled relationships will make sense as well. (Pearson correlation values between the target variable, DEFAULT_NEXT_MONTH, and each input variable are displayed directly below.)" ] }, { "cell_type": "code", "execution_count": 5, "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", " \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", "
DEFAULT_NEXT_MONTH
LIMIT_BAL-0.153520
SEX-0.039961
EDUCATION0.028006
MARRIAGE-0.024339
AGE0.013890
PAY_00.324794
PAY_20.263551
PAY_30.235253
PAY_40.216614
PAY_50.204149
PAY_60.186866
BILL_AMT1-0.019644
BILL_AMT2-0.014193
BILL_AMT3-0.014076
BILL_AMT4-0.010156
BILL_AMT5-0.006760
BILL_AMT6-0.005372
PAY_AMT1-0.072929
PAY_AMT2-0.058579
PAY_AMT3-0.056250
PAY_AMT4-0.056827
PAY_AMT5-0.055124
PAY_AMT6-0.053183
\n", "
" ], "text/plain": [ " DEFAULT_NEXT_MONTH\n", "LIMIT_BAL -0.153520\n", "SEX -0.039961\n", "EDUCATION 0.028006\n", "MARRIAGE -0.024339\n", "AGE 0.013890\n", "PAY_0 0.324794\n", "PAY_2 0.263551\n", "PAY_3 0.235253\n", "PAY_4 0.216614\n", "PAY_5 0.204149\n", "PAY_6 0.186866\n", "BILL_AMT1 -0.019644\n", "BILL_AMT2 -0.014193\n", "BILL_AMT3 -0.014076\n", "BILL_AMT4 -0.010156\n", "BILL_AMT5 -0.006760\n", "BILL_AMT6 -0.005372\n", "PAY_AMT1 -0.072929\n", "PAY_AMT2 -0.058579\n", "PAY_AMT3 -0.056250\n", "PAY_AMT4 -0.056827\n", "PAY_AMT5 -0.055124\n", "PAY_AMT6 -0.053183" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# displays last column of Pearson correlation matrix as Pandas DataFrame\n", "pd.DataFrame(data[X + [y]].corr()[y]).iloc[:-1] " ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "#### Create tuple of monotonicity constraints from Pearson correlation values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The last column of the Pearson correlation matrix is transformed from a numeric column in a Pandas DataFrame into a Python tuple of `1`s and `-1`s that will be used to specifiy monotonicity constraints for each input variable in XGBoost. If the Pearson correlation between an input variable and `DEFAULT_NEXT_MONTH` is positive, a positive montonic relationship constraint is specified for that variable using `1`. If the correlation is negative, a negative monotonic constraint is specified using `-1`. (Specifying `0` indicates that no constraints should be used.) The resulting tuple will be passed to XGBoost when the GBM model is trained." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# creates a tuple in which positive correlation values are assigned a 1\n", "# and negative correlation values are assigned a -1\n", "mono_constraints = tuple([int(i) for i in np.sign(data[X + [y]].corr()[y].values[:-1])])\n", "\n", "# (-1, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Train XGBoost with monotonicity constraints\n", "\n", "XGBoost is a very accurate, open source GBM library for regression and classification tasks. XGBoost can learn complex relationships between input variables and a target variable, but here the `monotone_constraints` tuning parameter is used to enforce monotonicity between inputs and the prediction for `DEFAULT_NEXT_MONTH`. XGBoost's early stopping functionality is also used to limit overfitting to the training data\n", "\n", "XGBoost is available from: https://github.com/dmlc/xgboost and the implementation of XGBoost is described in detail here: http://www.kdd.org/kdd2016/papers/files/rfp0697-chenAemb.pdf.\n", "\n", "After training, GBM variable importance is calculated and displayed. GBM variable importance is a global measure of the overall impact of an input variable on the GBM model predictions. Global variable importance values give an indication of the magnitude of a variable's contribution to model predictions for all observations. To enhance trust in the GBM model, variable importance values should typically conform to human domain knowledge and reasonable expectations." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Split data into training and test sets for early stopping" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The credit card default data is split into training and test sets to monitor and prevent overtraining. Reproducibility is another important factor in creating trustworthy models, and randomly splitting datasets can introduce randomness in model predictions and other results. A random seed is used here to ensure the data split is reproducible." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train data rows = 20946, columns = 25\n", "Test data rows = 9054, columns = 25\n" ] } ], "source": [ "np.random.seed(12345) # set random seed for reproducibility\n", "split_ratio = 0.7 # 70%/30% train/test split\n", "\n", "# execute split\n", "split = np.random.rand(len(data)) < split_ratio\n", "train = data[split]\n", "test = data[~split]\n", "\n", "# summarize split\n", "print('Train data rows = %d, columns = %d' % (train.shape[0], train.shape[1]))\n", "print('Test data rows = %d, columns = %d' % (test.shape[0], test.shape[1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Train XGBoost GBM classifier\n", "To train an XGBoost classifier, the training and test data must be converted from Pandas DataFrames into SVMLight format. The `DMatrix()` function in the XGBoost package is used to convert the data. Many XGBoost tuning parameters must be specified as well. Typically a grid search would be performed to identify the best parameters for a given modeling task. For brevity's sake, a previously-discovered set of good tuning parameters are specified here. Notice that the monotonicity constraints are passed to XGBoost using the `monotone_constraints` parameter. Because gradient boosting methods typically resample training data, an additional random seed is also specified for XGBoost using the `seed` paramter to create reproducible predictions, error rates, and variable importance values. To avoid overfitting, the `early_stopping_rounds` parameter is used to stop the training process after the test area under the curve (AUC) statistic fails to increase for 50 iterations." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0]\ttrain-auc:0.738066\teval-auc:0.733449\n", "Multiple eval metrics have been passed: 'eval-auc' will be used for early stopping.\n", "\n", "Will train until eval-auc hasn't improved in 50 rounds.\n", "[1]\ttrain-auc:0.772991\teval-auc:0.769311\n", "[2]\ttrain-auc:0.775536\teval-auc:0.772624\n", "[3]\ttrain-auc:0.776248\teval-auc:0.771985\n", "[4]\ttrain-auc:0.777216\teval-auc:0.772796\n", "[5]\ttrain-auc:0.777782\teval-auc:0.773066\n", "[6]\ttrain-auc:0.777783\teval-auc:0.773471\n", "[7]\ttrain-auc:0.777856\teval-auc:0.773591\n", "[8]\ttrain-auc:0.777633\teval-auc:0.773209\n", "[9]\ttrain-auc:0.777417\teval-auc:0.772892\n", "[10]\ttrain-auc:0.777519\teval-auc:0.772666\n", "[11]\ttrain-auc:0.778476\teval-auc:0.773346\n", "[12]\ttrain-auc:0.778541\teval-auc:0.773312\n", "[13]\ttrain-auc:0.778351\teval-auc:0.773266\n", "[14]\ttrain-auc:0.778519\teval-auc:0.773695\n", "[15]\ttrain-auc:0.779383\teval-auc:0.774314\n", "[16]\ttrain-auc:0.779555\teval-auc:0.77473\n", "[17]\ttrain-auc:0.780178\teval-auc:0.775043\n", "[18]\ttrain-auc:0.780743\teval-auc:0.775246\n", "[19]\ttrain-auc:0.78146\teval-auc:0.776021\n", "[20]\ttrain-auc:0.781944\teval-auc:0.776477\n", "[21]\ttrain-auc:0.782181\teval-auc:0.776696\n", "[22]\ttrain-auc:0.782319\teval-auc:0.776915\n", "[23]\ttrain-auc:0.78263\teval-auc:0.776998\n", "[24]\ttrain-auc:0.782965\teval-auc:0.777144\n", "[25]\ttrain-auc:0.783396\teval-auc:0.777498\n", "[26]\ttrain-auc:0.783791\teval-auc:0.777791\n", "[27]\ttrain-auc:0.784151\teval-auc:0.778091\n", "[28]\ttrain-auc:0.784382\teval-auc:0.778375\n", "[29]\ttrain-auc:0.784678\teval-auc:0.778567\n", "[30]\ttrain-auc:0.784912\teval-auc:0.778755\n", "[31]\ttrain-auc:0.785231\teval-auc:0.778938\n", "[32]\ttrain-auc:0.785418\teval-auc:0.779125\n", "[33]\ttrain-auc:0.785598\teval-auc:0.779226\n", "[34]\ttrain-auc:0.785838\teval-auc:0.779421\n", "[35]\ttrain-auc:0.7861\teval-auc:0.779432\n", "[36]\ttrain-auc:0.786347\teval-auc:0.779549\n", "[37]\ttrain-auc:0.786633\teval-auc:0.779575\n", "[38]\ttrain-auc:0.786833\teval-auc:0.779668\n", "[39]\ttrain-auc:0.787093\teval-auc:0.779743\n", "[40]\ttrain-auc:0.787307\teval-auc:0.779926\n", "[41]\ttrain-auc:0.787602\teval-auc:0.780015\n", "[42]\ttrain-auc:0.787819\teval-auc:0.780089\n", "[43]\ttrain-auc:0.787943\teval-auc:0.780196\n", "[44]\ttrain-auc:0.788092\teval-auc:0.780239\n", "[45]\ttrain-auc:0.788194\teval-auc:0.780198\n", "[46]\ttrain-auc:0.788298\teval-auc:0.780235\n", "[47]\ttrain-auc:0.788422\teval-auc:0.780305\n", "[48]\ttrain-auc:0.78862\teval-auc:0.780372\n", "[49]\ttrain-auc:0.788803\teval-auc:0.780392\n", "[50]\ttrain-auc:0.789049\teval-auc:0.780558\n", "[51]\ttrain-auc:0.789221\teval-auc:0.780659\n", "[52]\ttrain-auc:0.789405\teval-auc:0.780756\n", "[53]\ttrain-auc:0.789553\teval-auc:0.780721\n", "[54]\ttrain-auc:0.78968\teval-auc:0.780791\n", "[55]\ttrain-auc:0.789779\teval-auc:0.780849\n", "[56]\ttrain-auc:0.789875\teval-auc:0.780932\n", "[57]\ttrain-auc:0.79002\teval-auc:0.780963\n", "[58]\ttrain-auc:0.790156\teval-auc:0.781038\n", "[59]\ttrain-auc:0.790292\teval-auc:0.781085\n", "[60]\ttrain-auc:0.790403\teval-auc:0.781079\n", "[61]\ttrain-auc:0.790509\teval-auc:0.781091\n", "[62]\ttrain-auc:0.790554\teval-auc:0.781061\n", "[63]\ttrain-auc:0.790635\teval-auc:0.781148\n", "[64]\ttrain-auc:0.790679\teval-auc:0.781166\n", "[65]\ttrain-auc:0.790822\teval-auc:0.781155\n", "[66]\ttrain-auc:0.790896\teval-auc:0.781178\n", "[67]\ttrain-auc:0.790977\teval-auc:0.781188\n", "[68]\ttrain-auc:0.791155\teval-auc:0.781211\n", "[69]\ttrain-auc:0.791239\teval-auc:0.781179\n", "[70]\ttrain-auc:0.7914\teval-auc:0.781347\n", "[71]\ttrain-auc:0.791525\teval-auc:0.78134\n", "[72]\ttrain-auc:0.791578\teval-auc:0.781312\n", "[73]\ttrain-auc:0.791691\teval-auc:0.781325\n", "[74]\ttrain-auc:0.791747\teval-auc:0.781323\n", "[75]\ttrain-auc:0.791801\teval-auc:0.781304\n", "[76]\ttrain-auc:0.791844\teval-auc:0.781313\n", "[77]\ttrain-auc:0.7919\teval-auc:0.781325\n", "[78]\ttrain-auc:0.792056\teval-auc:0.781448\n", "[79]\ttrain-auc:0.792088\teval-auc:0.781397\n", "[80]\ttrain-auc:0.792151\teval-auc:0.78138\n", "[81]\ttrain-auc:0.792173\teval-auc:0.781388\n", "[82]\ttrain-auc:0.792236\teval-auc:0.781301\n", "[83]\ttrain-auc:0.792327\teval-auc:0.781355\n", "[84]\ttrain-auc:0.792372\teval-auc:0.781356\n", "[85]\ttrain-auc:0.792402\teval-auc:0.781321\n", "[86]\ttrain-auc:0.79247\teval-auc:0.781286\n", "[87]\ttrain-auc:0.792521\teval-auc:0.781283\n", "[88]\ttrain-auc:0.792543\teval-auc:0.781265\n", "[89]\ttrain-auc:0.792595\teval-auc:0.781255\n", "[90]\ttrain-auc:0.792618\teval-auc:0.781242\n", "[91]\ttrain-auc:0.792673\teval-auc:0.781309\n", "[92]\ttrain-auc:0.792766\teval-auc:0.781357\n", "[93]\ttrain-auc:0.792826\teval-auc:0.781381\n", "[94]\ttrain-auc:0.792914\teval-auc:0.781387\n", "[95]\ttrain-auc:0.792967\teval-auc:0.781385\n", "[96]\ttrain-auc:0.793016\teval-auc:0.781375\n", "[97]\ttrain-auc:0.793053\teval-auc:0.781353\n", "[98]\ttrain-auc:0.79312\teval-auc:0.78137\n", "[99]\ttrain-auc:0.793145\teval-auc:0.781413\n", "[100]\ttrain-auc:0.793191\teval-auc:0.781456\n", "[101]\ttrain-auc:0.793256\teval-auc:0.781435\n", "[102]\ttrain-auc:0.793282\teval-auc:0.781382\n", "[103]\ttrain-auc:0.793322\teval-auc:0.781385\n", "[104]\ttrain-auc:0.793346\teval-auc:0.781361\n", "[105]\ttrain-auc:0.793399\teval-auc:0.781418\n", "[106]\ttrain-auc:0.793436\teval-auc:0.781398\n", "[107]\ttrain-auc:0.793511\teval-auc:0.781358\n", "[108]\ttrain-auc:0.793578\teval-auc:0.78137\n", "[109]\ttrain-auc:0.793655\teval-auc:0.781336\n", "[110]\ttrain-auc:0.793683\teval-auc:0.781299\n", "[111]\ttrain-auc:0.793701\teval-auc:0.781277\n", "[112]\ttrain-auc:0.79371\teval-auc:0.78128\n", "[113]\ttrain-auc:0.793745\teval-auc:0.781298\n", "[114]\ttrain-auc:0.793817\teval-auc:0.781307\n", "[115]\ttrain-auc:0.793838\teval-auc:0.781301\n", "[116]\ttrain-auc:0.793867\teval-auc:0.781308\n", "[117]\ttrain-auc:0.793877\teval-auc:0.781315\n", "[118]\ttrain-auc:0.793917\teval-auc:0.781246\n", "[119]\ttrain-auc:0.793947\teval-auc:0.781302\n", "[120]\ttrain-auc:0.794\teval-auc:0.781358\n", "[121]\ttrain-auc:0.794026\teval-auc:0.781357\n", "[122]\ttrain-auc:0.794053\teval-auc:0.781277\n", "[123]\ttrain-auc:0.794064\teval-auc:0.781257\n", "[124]\ttrain-auc:0.794209\teval-auc:0.781289\n", "[125]\ttrain-auc:0.794219\teval-auc:0.781288\n", "[126]\ttrain-auc:0.794287\teval-auc:0.781347\n", "[127]\ttrain-auc:0.79429\teval-auc:0.781347\n", "[128]\ttrain-auc:0.794327\teval-auc:0.781331\n", "[129]\ttrain-auc:0.794336\teval-auc:0.781349\n", "[130]\ttrain-auc:0.794367\teval-auc:0.781347\n", "[131]\ttrain-auc:0.794364\teval-auc:0.78134\n", "[132]\ttrain-auc:0.794385\teval-auc:0.781363\n", "[133]\ttrain-auc:0.794387\teval-auc:0.781326\n", "[134]\ttrain-auc:0.794472\teval-auc:0.78132\n", "[135]\ttrain-auc:0.794483\teval-auc:0.781326\n", "[136]\ttrain-auc:0.794495\teval-auc:0.781306\n", "[137]\ttrain-auc:0.794583\teval-auc:0.781293\n", "[138]\ttrain-auc:0.794589\teval-auc:0.781293\n", "[139]\ttrain-auc:0.7946\teval-auc:0.781286\n", "[140]\ttrain-auc:0.794642\teval-auc:0.7813\n", "[141]\ttrain-auc:0.794656\teval-auc:0.781303\n", "[142]\ttrain-auc:0.794654\teval-auc:0.781287\n", "[143]\ttrain-auc:0.794695\teval-auc:0.781273\n", "[144]\ttrain-auc:0.794705\teval-auc:0.781268\n", "[145]\ttrain-auc:0.794708\teval-auc:0.781268\n", "[146]\ttrain-auc:0.79471\teval-auc:0.781258\n", "[147]\ttrain-auc:0.794775\teval-auc:0.781284\n", "[148]\ttrain-auc:0.794782\teval-auc:0.781277\n", "[149]\ttrain-auc:0.794794\teval-auc:0.781283\n", "[150]\ttrain-auc:0.794815\teval-auc:0.78126\n", "Stopping. Best iteration:\n", "[100]\ttrain-auc:0.793191\teval-auc:0.781456\n", "\n" ] } ], "source": [ "# XGBoost uses SVMLight data structure, not Numpy arrays or Pandas DataFrames \n", "dtrain = xgb.DMatrix(train[X], train[y])\n", "dtest = xgb.DMatrix(test[X], test[y])\n", "\n", "# used to calibrate predictions to mean of y \n", "base_y = train[y].mean()\n", "\n", "# tuning parameters\n", "params = {\n", " 'objective': 'binary:logistic', # produces 0-1 probabilities for binary classification\n", " 'booster': 'gbtree', # base learner will be decision tree\n", " 'eval_metric': 'auc', # stop training based on maximum AUC, AUC always between 0-1\n", " 'eta': 0.08, # learning rate\n", " 'subsample': 0.9, # use 90% of rows in each decision tree\n", " 'colsample_bytree': 0.9, # use 90% of columns in each decision tree\n", " 'max_depth': 15, # allow decision trees to grow to depth of 15\n", " 'monotone_constraints':mono_constraints, # 1 = increasing relationship, -1 = decreasing relationship\n", " 'base_score': base_y, # calibrate predictions to mean of y \n", " 'seed': 12345 # set random seed for reproducibility\n", "}\n", "\n", "# watchlist is used for early stopping\n", "watchlist = [(dtrain, 'train'), (dtest, 'eval')]\n", "\n", "# train model\n", "xgb_model = xgb.train(params, # set tuning parameters from above \n", " dtrain, # training data\n", " 1000, # maximum of 1000 iterations (trees)\n", " evals=watchlist, # use watchlist for early stopping \n", " early_stopping_rounds=50, # stop after 50 iterations (trees) without increase in AUC\n", " verbose_eval=True) # display iteration progress\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Global Shapley variable importance\n", "By setting `pred_contribs=True`, XGBoost's `predict()` function will return Shapley values for each row of the test set. Instead of relying on traditional single-value variable importance measures, local Shapley values for each input will be ploted below to get a more holistic and consisent measurement for the global importance of each input variable. Shapley values are introduced in greater detail in Section 6 below, but for now notice the monotonicity of the input variable contributions displayed in the Shapley summary plot." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# dtest is DMatrix\n", "# shap_values is Numpy array\n", "shap_values = xgb_model.predict(dtest, pred_contribs=True, ntree_limit=xgb_model.best_ntree_limit)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot Shapley variable importance summary \n", "shap.summary_plot(shap_values[:, :-1], test[xgb_model.feature_names])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Display Shapley variable importance summary\n", "The variable importance ranking should be parsimonious with human domain knowledge and reasonable expectations. In this case, `PAY_0` is by far the most important variable. As someone's most recent behavior is a very good indicator of future behavior, this checks out." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Calculating partial dependence and ICE to validate and explain monotonic behavior\n", "\n", "Partial dependence plots are used to view the global, average prediction behavior of a variable under the monotonic model. Partial dependence plots show the average prediction of the monotonic model as a function of specific values of an input variable of interest, indicating how the monotonic GBM predictions change based on the values of the input variable of interest, while taking nonlinearity into consideration and averaging out the effects of all other\n", "input variables. Partial dependence plots enable increased transparency into the monotonic GBM's mechanisms and enable validation and debugging of the monotonic GBM by comparing a variable's average predictions across its domain to known standards and reasonable expectations. Partial dependence plots are described in greater detail in *The Elements of Statistical Learning*, section 10.13: https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf.\n", "\n", "Individual conditional expectation (ICE) plots, a newer and less well-known adaptation of partial dependence plots, can be used to create more localized explanations for a single observation of data using the same basic ideas as partial dependence plots. ICE is also a type of nonlinear sensitivity analysis in which the model predictions for a single observation are measured while a feature of interest is varied over its domain. ICE increases understanding and transparency by displaying the nonlinear behavior of the monotonic GBM. ICE also enhances trust, accountability, and fairness by enabling comparisons of nonlinear behavior to human domain knowledge and reasonable expectations. ICE, as a type of sensitivity analysis, can also engender trust when model behavior on simulated or extreme data points is acceptable. A detailed description of ICE is available in this arXiv preprint: https://arxiv.org/abs/1309.6392.\n", "\n", "Because partial dependence and ICE are measured on the same scale, they can be displayed in the same line plot to compare the global, average prediction behavior for the entire model and the local prediction behavior for certain rows of data. Overlaying the two types of curves enables analysis of both global and local behavior simultaneously and provides an indication of the trustworthiness of the average behavior represented by partial dependence. (Partial dependence can be misleading in the presence of strong interactions or correlation. ICE curves diverging from the partial dependence curve can be indicative of such problems.) Histograms are also presented with the partial dependence and ICE curves, to enable a rough measure of epistemic uncertainty for model predictions: predictions based on small amounts of training data are likely less dependable." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Function for calculating partial dependence\n", "Since partial dependence and ICE will be calculated for several important variables in the GBM model, it's convenient to have a function doing so. It's probably best to analyze partial dependence and ICE for all variables in a model, but only the top three most important input variables will be investigated here. It's also a good idea to analyze partial dependence and ICE on the test data, or other holdout datasets, to see how the model will perform on new data. \n", "This simple function is designed to return partial dependence when it is called for an entire dataset and ICE when it is called for a single row. The `bins` argument will be used later to calculate ICE values at the same places in an input variable domain that partial dependence is calculated directly below. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def par_dep(xs, frame, model, resolution=20, bins=None):\n", " \n", " \"\"\" Creates Pandas DataFrame containing partial dependence for a \n", " single variable.\n", " \n", " Args:\n", " xs: Variable for which to calculate partial dependence.\n", " frame: Pandas DataFrame for which to calculate partial dependence.\n", " model: XGBoost model for which to calculate partial dependence.\n", " resolution: The number of points across the domain of xs for which \n", " to calculate partial dependence, default 20.\n", " bins: List of values at which to set xs, default 20 equally-spaced \n", " points between column minimum and maximum.\n", " \n", " Returns:\n", " Pandas DataFrame containing partial dependence values.\n", " \n", " \"\"\"\n", " \n", " # turn off pesky Pandas copy warning\n", " pd.options.mode.chained_assignment = None\n", " \n", " # initialize empty Pandas DataFrame with correct column names\n", " par_dep_frame = pd.DataFrame(columns=[xs, 'partial_dependence'])\n", " \n", " # cache original column values \n", " col_cache = frame.loc[:, xs].copy(deep=True)\n", " \n", " # determine values at which to calculate partial dependence\n", " if bins == None:\n", " min_ = frame[xs].min()\n", " max_ = frame[xs].max()\n", " by = (max_ - min_)/resolution\n", " bins = np.arange(min_, max_, by)\n", " \n", " # calculate partial dependence \n", " # by setting column of interest to constant \n", " # and scoring the altered data and taking the mean of the predictions\n", " for j in bins:\n", " frame.loc[:, xs] = j\n", " dframe = xgb.DMatrix(frame)\n", " par_dep_i = pd.DataFrame(model.predict(dframe, ntree_limit=model.best_ntree_limit))\n", " par_dep_j = par_dep_i.mean()[0]\n", " par_dep_frame = par_dep_frame.append({xs:j,\n", " 'partial_dependence': par_dep_j}, \n", " ignore_index=True)\n", " \n", " # return input frame to original cached state \n", " frame.loc[:, xs] = col_cache\n", "\n", " return par_dep_frame\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Calculate partial dependence for the most important input variables in the GBM\n", "The partial dependence for `LIMIT_BAL` can be seen to decrease as credit balance limits increase. This finding is aligned with expectations that the model predictions will be monotonically decreasing with increasing `LIMIT_BAL` and parsimonious with well-known business practices in credit lending. Partial dependence for other important values is displayed in plots further below." ] }, { "cell_type": "code", "execution_count": 12, "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", " \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", "
LIMIT_BALpartial_dependence
010000.00.266888
159500.00.243301
2109000.00.224759
3158500.00.216966
4208000.00.214594
5257500.00.209798
6307000.00.206901
7356500.00.198712
8406000.00.197883
9455500.00.197086
10505000.00.194449
11554500.00.194407
12604000.00.190247
13653500.00.190209
14703000.00.190188
15752500.00.190188
16802000.00.190188
17851500.00.190188
18901000.00.190188
19950500.00.190188
\n", "
" ], "text/plain": [ " LIMIT_BAL partial_dependence\n", "0 10000.0 0.266888\n", "1 59500.0 0.243301\n", "2 109000.0 0.224759\n", "3 158500.0 0.216966\n", "4 208000.0 0.214594\n", "5 257500.0 0.209798\n", "6 307000.0 0.206901\n", "7 356500.0 0.198712\n", "8 406000.0 0.197883\n", "9 455500.0 0.197086\n", "10 505000.0 0.194449\n", "11 554500.0 0.194407\n", "12 604000.0 0.190247\n", "13 653500.0 0.190209\n", "14 703000.0 0.190188\n", "15 752500.0 0.190188\n", "16 802000.0 0.190188\n", "17 851500.0 0.190188\n", "18 901000.0 0.190188\n", "19 950500.0 0.190188" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "par_dep_PAY_0 = par_dep('PAY_0', test[X], xgb_model) # calculate partial dependence for PAY_0\n", "par_dep_LIMIT_BAL = par_dep('LIMIT_BAL', test[X], xgb_model) # calculate partial dependence for LIMIT_BAL\n", "par_dep_BILL_AMT1 = par_dep('BILL_AMT1', test[X], xgb_model) # calculate partial dependence for BILL_AMT1\n", "\n", "# display partial dependence for LIMIT_BAL\n", "par_dep_LIMIT_BAL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Helper function for finding percentiles of predictions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ICE can be calculated for any row in the training or test data, but without intimate knowledge of a data source it can be difficult to know where to apply ICE. Calculating and analyzing ICE curves for every row of training and test data set can be overwhelming, even for the example credit card default dataset. One place to start with ICE is to calculate ICE curves at every decile of predicted probabilities in a dataset, giving an indication of local prediction behavior across the dataset. The function below finds and returns the row indices for the maximum, minimum, and deciles of one column in terms of another -- in this case, the model predictions (`p_DEFAULT_NEXT_MONTH`) and the row identifier (`ID`), respectively. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def get_percentile_dict(yhat, id_, frame):\n", "\n", " \"\"\" Returns the percentiles of a column, yhat, as the indices based on \n", " another column id_.\n", " \n", " Args:\n", " yhat: Column in which to find percentiles.\n", " id_: Id column that stores indices for percentiles of yhat.\n", " frame: Pandas DataFrame containing yhat and id_. \n", " \n", " Returns:\n", " Dictionary of percentile values and index column values.\n", " \n", " \"\"\"\n", " \n", " # create a copy of frame and sort it by yhat\n", " sort_df = frame.copy(deep=True)\n", " sort_df.sort_values(yhat, inplace=True)\n", " sort_df.reset_index(inplace=True)\n", " \n", " # find top and bottom percentiles\n", " percentiles_dict = {}\n", " percentiles_dict[0] = sort_df.loc[0, id_]\n", " percentiles_dict[99] = sort_df.loc[sort_df.shape[0]-1, id_]\n", "\n", " # find 10th-90th percentiles\n", " inc = sort_df.shape[0]//10\n", " for i in range(1, 10):\n", " percentiles_dict[i * 10] = sort_df.loc[i * inc, id_]\n", "\n", " return percentiles_dict\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Find some percentiles of yhat in the test data\n", "The values for `ID` that correspond to the maximum, minimum, and deciles of `p_DEFAULT_NEXT_MONTH` are displayed below. ICE will be calculated for the rows of the test dataset associated with these `ID` values." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{0: 23477,\n", " 10: 6226,\n", " 20: 25603,\n", " 30: 12890,\n", " 40: 715,\n", " 50: 14517,\n", " 60: 4908,\n", " 70: 7411,\n", " 80: 6219,\n", " 90: 18421,\n", " 99: 17757}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# merge GBM predictions onto test data\n", "yhat_test = pd.concat([test.reset_index(drop=True), pd.DataFrame(xgb_model.predict(dtest, \n", " ntree_limit=xgb_model.best_ntree_limit))],\n", " axis=1)\n", "yhat_test = yhat_test.rename(columns={0:'p_DEFAULT_NEXT_MONTH'})\n", "\n", "# find percentiles of predictions\n", "percentile_dict = get_percentile_dict('p_DEFAULT_NEXT_MONTH', 'ID', yhat_test)\n", "\n", "# display percentiles dictionary\n", "# ID values for rows\n", "# from lowest prediction \n", "# to highest prediction\n", "percentile_dict" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Calculate ICE curve values\n", "ICE values represent a model's prediction for a row of data while an input variable of interest is varied across its domain. The values of the input variable are chosen to match the values at which partial dependence was calculated earlier, and ICE is calculated for the top three most important variables and for rows at each percentile of the test dataset. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# retreive bins from original partial dependence calculation\n", "\n", "bins_PAY_0 = list(par_dep_PAY_0['PAY_0'])\n", "bins_LIMIT_BAL = list(par_dep_LIMIT_BAL['LIMIT_BAL'])\n", "bins_BILL_AMT1 = list(par_dep_BILL_AMT1['BILL_AMT1'])\n", "\n", "# for each percentile in percentile_dict\n", "# create a new column in the par_dep frame \n", "# representing the ICE curve for that percentile\n", "# and the variables of interest\n", "for i in sorted(percentile_dict.keys()):\n", " \n", " col_name = 'Percentile_' + str(i)\n", " \n", " # ICE curves for PAY_0 across percentiles at bins_PAY_0 intervals\n", " par_dep_PAY_0[col_name] = par_dep('PAY_0', \n", " test[test['ID'] == int(percentile_dict[i])][X], \n", " xgb_model, \n", " bins=bins_PAY_0)['partial_dependence']\n", " \n", " # ICE curves for LIMIT_BAL across percentiles at bins_LIMIT_BAL intervals\n", " par_dep_LIMIT_BAL[col_name] = par_dep('LIMIT_BAL', \n", " test[test['ID'] == int(percentile_dict[i])][X], \n", " xgb_model, \n", " bins=bins_LIMIT_BAL)['partial_dependence']\n", " \n", "\n", "\n", " # ICE curves for BILL_AMT1 across percentiles at bins_BILL_AMT1 intervals\n", " par_dep_BILL_AMT1[col_name] = par_dep('BILL_AMT1', \n", " test[test['ID'] == int(percentile_dict[i])][X], \n", " xgb_model, \n", " bins=bins_BILL_AMT1)['partial_dependence']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Display partial dependence and ICE for `LIMIT_BAL`\n", "Partial dependence and ICE values for rows at the minimum, maximum and deciles (0%, 10%, 20%, ..., 90%, 99%) of predictions for `DEFAULT_NEXT_MONTH` and at the values of `LIMIT_BAL` used for partial dependence are shown here. Each column of ICE values will be a curve in the plots below. ICE values represent a prediction for a row of test data, at a percentile of interest noted in the column name above, and setting `LIMIT_BAL` to the value of `LIMIT_BAL` at right. Notice that monotonic decreasing prediction behavior for `LIMIT_BAL` holds at each displayed percentile of predicted `DEFAULT_NEXT_MONTH`, helping to validate that the trained GBM predictions are monotonic for `LIMIT_BAL`." ] }, { "cell_type": "code", "execution_count": 16, "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", " \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", " \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", " \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", " \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", "
LIMIT_BALpartial_dependencePercentile_0Percentile_10Percentile_20Percentile_30Percentile_40Percentile_50Percentile_60Percentile_70Percentile_80Percentile_90Percentile_99
010000.00.2668880.0097520.1036100.1141300.1617170.1781960.1764230.2159320.2379700.4823090.6008730.963266
159500.00.2433010.0077650.0958050.1067690.1519720.1558970.1626220.1773660.2066510.3376910.5895420.943703
2109000.00.2247590.0045140.0737010.0898270.1222720.1479100.1299950.1644100.1861390.3303700.5752410.939937
3158500.00.2169660.0035100.0615870.0827310.1087020.1399230.1172460.1584310.1746850.3303700.5715360.939715
4208000.00.2145940.0032080.0590360.0818630.1068500.1371780.1152680.1584130.1714020.3303700.5695080.938817
5257500.00.2097980.0029250.0542680.0782280.1029880.1342960.1130190.1550230.1667660.3301300.5590600.936782
6307000.00.2069010.0028240.0532630.0757230.1006070.1339150.1097010.1527060.1621160.3301300.5554020.935711
7356500.00.1987120.0018720.0463650.0663660.0832480.1289320.0909320.1502450.1471200.3293560.5522230.935394
8406000.00.1978830.0018720.0457750.0648630.0814530.1276130.0908820.1495580.1468090.3245220.5501670.934938
9455500.00.1970860.0018720.0447610.0632190.0793120.1269550.0888180.1493720.1464950.3224380.5501670.934894
10505000.00.1944490.0018470.0442760.0625030.0783140.1214300.0874030.1434540.1438160.3144050.5492310.934661
11554500.00.1944070.0018470.0442620.0624840.0780400.1214300.0873770.1433940.1437750.3144050.5491950.934661
12604000.00.1902470.0017630.0422380.0594090.0742560.1190030.0830550.1398840.1372490.3077140.5475380.933731
13653500.00.1902090.0017630.0422310.0593840.0742290.1190030.0829680.1398120.1371860.3075880.5474950.933731
14703000.00.1901880.0017630.0422110.0593560.0741950.1190030.0829290.1398120.1371260.3075880.5473700.933731
15752500.00.1901880.0017630.0422110.0593560.0741950.1190030.0829290.1398120.1371260.3075880.5473700.933731
16802000.00.1901880.0017630.0422110.0593560.0741950.1190030.0829290.1398120.1371260.3075880.5473700.933731
17851500.00.1901880.0017630.0422110.0593560.0741950.1190030.0829290.1398120.1371260.3075880.5473700.933731
18901000.00.1901880.0017630.0422110.0593560.0741950.1190030.0829290.1398120.1371260.3075880.5473700.933731
19950500.00.1901880.0017630.0422110.0593560.0741950.1190030.0829290.1398120.1371260.3075880.5473700.933731
\n", "
" ], "text/plain": [ " LIMIT_BAL partial_dependence Percentile_0 Percentile_10 Percentile_20 \\\n", "0 10000.0 0.266888 0.009752 0.103610 0.114130 \n", "1 59500.0 0.243301 0.007765 0.095805 0.106769 \n", "2 109000.0 0.224759 0.004514 0.073701 0.089827 \n", "3 158500.0 0.216966 0.003510 0.061587 0.082731 \n", "4 208000.0 0.214594 0.003208 0.059036 0.081863 \n", "5 257500.0 0.209798 0.002925 0.054268 0.078228 \n", "6 307000.0 0.206901 0.002824 0.053263 0.075723 \n", "7 356500.0 0.198712 0.001872 0.046365 0.066366 \n", "8 406000.0 0.197883 0.001872 0.045775 0.064863 \n", "9 455500.0 0.197086 0.001872 0.044761 0.063219 \n", "10 505000.0 0.194449 0.001847 0.044276 0.062503 \n", "11 554500.0 0.194407 0.001847 0.044262 0.062484 \n", "12 604000.0 0.190247 0.001763 0.042238 0.059409 \n", "13 653500.0 0.190209 0.001763 0.042231 0.059384 \n", "14 703000.0 0.190188 0.001763 0.042211 0.059356 \n", "15 752500.0 0.190188 0.001763 0.042211 0.059356 \n", "16 802000.0 0.190188 0.001763 0.042211 0.059356 \n", "17 851500.0 0.190188 0.001763 0.042211 0.059356 \n", "18 901000.0 0.190188 0.001763 0.042211 0.059356 \n", "19 950500.0 0.190188 0.001763 0.042211 0.059356 \n", "\n", " Percentile_30 Percentile_40 Percentile_50 Percentile_60 Percentile_70 \\\n", "0 0.161717 0.178196 0.176423 0.215932 0.237970 \n", "1 0.151972 0.155897 0.162622 0.177366 0.206651 \n", "2 0.122272 0.147910 0.129995 0.164410 0.186139 \n", "3 0.108702 0.139923 0.117246 0.158431 0.174685 \n", "4 0.106850 0.137178 0.115268 0.158413 0.171402 \n", "5 0.102988 0.134296 0.113019 0.155023 0.166766 \n", "6 0.100607 0.133915 0.109701 0.152706 0.162116 \n", "7 0.083248 0.128932 0.090932 0.150245 0.147120 \n", "8 0.081453 0.127613 0.090882 0.149558 0.146809 \n", "9 0.079312 0.126955 0.088818 0.149372 0.146495 \n", "10 0.078314 0.121430 0.087403 0.143454 0.143816 \n", "11 0.078040 0.121430 0.087377 0.143394 0.143775 \n", "12 0.074256 0.119003 0.083055 0.139884 0.137249 \n", "13 0.074229 0.119003 0.082968 0.139812 0.137186 \n", "14 0.074195 0.119003 0.082929 0.139812 0.137126 \n", "15 0.074195 0.119003 0.082929 0.139812 0.137126 \n", "16 0.074195 0.119003 0.082929 0.139812 0.137126 \n", "17 0.074195 0.119003 0.082929 0.139812 0.137126 \n", "18 0.074195 0.119003 0.082929 0.139812 0.137126 \n", "19 0.074195 0.119003 0.082929 0.139812 0.137126 \n", "\n", " Percentile_80 Percentile_90 Percentile_99 \n", "0 0.482309 0.600873 0.963266 \n", "1 0.337691 0.589542 0.943703 \n", "2 0.330370 0.575241 0.939937 \n", "3 0.330370 0.571536 0.939715 \n", "4 0.330370 0.569508 0.938817 \n", "5 0.330130 0.559060 0.936782 \n", "6 0.330130 0.555402 0.935711 \n", "7 0.329356 0.552223 0.935394 \n", "8 0.324522 0.550167 0.934938 \n", "9 0.322438 0.550167 0.934894 \n", "10 0.314405 0.549231 0.934661 \n", "11 0.314405 0.549195 0.934661 \n", "12 0.307714 0.547538 0.933731 \n", "13 0.307588 0.547495 0.933731 \n", "14 0.307588 0.547370 0.933731 \n", "15 0.307588 0.547370 0.933731 \n", "16 0.307588 0.547370 0.933731 \n", "17 0.307588 0.547370 0.933731 \n", "18 0.307588 0.547370 0.933731 \n", "19 0.307588 0.547370 0.933731 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "par_dep_LIMIT_BAL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. Plotting partial dependence and ICE to validate and explain monotonic behavior\n", "\n", "Overlaying partial dependence onto ICE in a plot is a convenient way to validate and understand both global and local monotonic behavior. Plots of partial dependence curves overlayed onto ICE curves for several percentiles of predictions for `DEFAULT_NEXT_MONTH` are used to validate monotonic behavior, describe the GBM model mechanisms, and to compare the most extreme GBM behavior with the average GBM behavior in the test data. Partial dependence and ICE plots are displayed for the three most important variables in the GBM: `PAY_0`, `LIMIT_BAL`, and `BILL_AMT1`." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "#### Function to plot partial dependence and ICE\n", "\n", "def plot_par_dep_ICE(xs, par_dep_frame):\n", "\n", " \n", " \"\"\" Plots ICE overlayed onto partial dependence for a single variable.\n", " \n", " Args: \n", " xs: Name of variable for which to plot ICE and partial dependence.\n", " par_dep_frame: Name of Pandas DataFrame containing ICE and partial\n", " dependence values.\n", " \n", " \"\"\"\n", " \n", " # initialize figure and axis\n", " fig, ax = plt.subplots()\n", " \n", " # plot ICE curves\n", " par_dep_frame.drop('partial_dependence', axis=1).plot(x=xs, \n", " colormap='gnuplot',\n", " ax=ax)\n", "\n", " # overlay partial dependence, annotate plot\n", " par_dep_frame.plot(title='Partial Dependence and ICE for ' + str(xs),\n", " x=xs, \n", " y='partial_dependence',\n", " style='r-', \n", " linewidth=3, \n", " ax=ax)\n", "\n", " # add legend\n", " _ = plt.legend(bbox_to_anchor=(1.05, 0),\n", " loc=3, \n", " borderaxespad=0.)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Partial dependence and ICE plot for `LIMIT_BAL`\n", "The monotonic prediction behavior displayed in the partial dependence, and ICE tables for `LIMIT_BAL` is also visible in this plot. Monotonic decreasing behavior is evident at every percentile of predictions for `DEFAULT_NEXT_MONTH`. Most percentiles of predictions show that sharper decreases in probability of default occur when `LIMIT_BAL` increases just slightly from its lowest values in the test set. However, for the custumers that are most likely to default according to the GBM model, no increase in `LIMIT_BAL` has a strong impact on probabilitiy of default. As mentioned previously, the displayed relationship between credit balance limits and probablility of default is not uncommon in credit lending. As can be seen from the displayed histogram, above ~$NT 500,000 prediction behavior may have been learned from extremely small samples of data. " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_par_dep_ICE('LIMIT_BAL', par_dep_LIMIT_BAL) # plot partial dependence and ICE for LIMIT_BAL" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = train['LIMIT_BAL'].plot(kind='hist', bins=20, title='Histogram: LIMIT_BAL')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Partial dependence and ICE plot for `PAY_0`\n", "Monotonic increasing prediction behavior for `PAY_0` is displayed for all percentiles of model predictions. Predition behavior is different at different deciles, but not abnormal or vastly different from the average prediction behavior represented by the red partial dependence curve. The largest jump in predicted probability appears to occur at `PAY_0 = 2`, or when a customer becomes two months late on their most recent payment. Above `PAY_0 = 3` there are few examples from which the model could learn." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_par_dep_ICE('PAY_0', par_dep_PAY_0) # plot partial dependence and ICE for PAY_0" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = train['PAY_0'].plot(kind='hist', bins=20, title='Histogram: PAY_0')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Partial dependence and ICE plot for `BILL_AMT1`\n", "Monotonic decreasing prediction behavior for `BILL_AMT1` is also displayed for all percentiles. This mild decrease in probability of default as most recent bill amount increases could be related to wealthier, big-spending customers taking on more debt but also being able to pay it off reliably. Also, customers with negative bills are more likely to default, potentially indicating charge-offs are being recorded as negative bills. In a mission-critical situation, this issue would require more debugging. Also predictions below \\$ NT 0 and above \\$ NT 400,000 are based on very little training data." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_par_dep_ICE('BILL_AMT1', par_dep_BILL_AMT1) # plot partial dependence and ICE for BILL_AMT1" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = train['BILL_AMT1'].plot(kind='hist', bins=20, title='Histogram: BILL_AMT1')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. Generate reason codes using the Shapley method \n", "Now that the monotonic behavior of the GBM has been verified and compared against domain knowledge and reasonable expectations, a method called Shapley explanations will be used to calculate the local variable importance for any one prediction: http://papers.nips.cc/paper/7062-a-unified-approach-to-interpreting-model-predictions. Shapley explanations are the only possible consistent local variable importance values. (Here consistency means that if a variable is more important than another variable in a given prediction, the more important variable's Shapley value will not be smaller in magnitude than the less important variable's Shapley value.) Very crucially Shapley values also *always* sum to the actual prediction of the XGBoost model. When used in a model-specific context for decision tree models, Shapley values are likely the most accurate known local variable importance method available today. In this notebook, XGBoost itself is used to create Shapley values with the `pred_contribs` parameter to `predict()`, but the `shap` package is also available for other types of models: https://github.com/slundberg/shap. \n", "\n", "The numeric Shapley values in each column are an estimate of how much each variable contributed to each prediction. Shapley contributions can indicate how a variable and its values were weighted in any given decision by the model. These values are crucially important for machine learning interpretability and are related to \"local feature importance\", \"reason codes\", or \"turn-down codes.\" The latter phrases are borrowed from credit scoring. Credit lenders in the U.S. must provide reasons for automatically rejecting a credit application. Reason codes can be easily extracted from Shapley local variable contribution values by ranking the variables that played the largest role in any given decision." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To find the index corresponding to a particular row of interest later, the index of the `test` DataFrame is reset to begin at 0 and increase sequentially. Without resetting the index, the `test` DataFrame row indices still correspond to the original raw data from which the test set was sampled." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "test.reset_index(drop=True, inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Select most risky customer in test data\n", "One person who might be of immediate interest is the most likely to default customer in the test data. This customer's row will be selected and local variable importance for the corresponding prediction will be analyzed." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "decile = 99\n", "row = test[test['ID'] == percentile_dict[decile]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Create a Pandas DataFrame of Shapley values for riskiest customer\n", "The most interesting Shapley values are probably those that push this customer's probability of default higher, i.e. the highest positive Shapley values. Those values are plotted below." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# reset test data index to find riskiest customer in shap_values \n", "# sort to find largest positive contributions\n", "s_df = pd.DataFrame(shap_values[row.index[0], :][:-1].reshape(23, 1), columns=['Reason Codes'], index=X)\n", "s_df.sort_values(by='Reason Codes', inplace=True, ascending=False)" ] }, { "cell_type": "code", "execution_count": 27, "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", " \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", "
Reason Codes
PAY_01.526435
PAY_50.511360
PAY_60.328183
PAY_20.289542
LIMIT_BAL0.287896
PAY_40.227838
AGE0.225641
BILL_AMT10.197412
PAY_30.178575
MARRIAGE0.171177
PAY_AMT30.133252
PAY_AMT10.107046
PAY_AMT20.082654
BILL_AMT30.068008
EDUCATION0.060491
PAY_AMT40.060251
BILL_AMT20.057245
BILL_AMT40.039342
PAY_AMT50.036137
PAY_AMT60.025210
BILL_AMT60.005666
BILL_AMT50.002853
SEX-0.096203
\n", "
" ], "text/plain": [ " Reason Codes\n", "PAY_0 1.526435\n", "PAY_5 0.511360\n", "PAY_6 0.328183\n", "PAY_2 0.289542\n", "LIMIT_BAL 0.287896\n", "PAY_4 0.227838\n", "AGE 0.225641\n", "BILL_AMT1 0.197412\n", "PAY_3 0.178575\n", "MARRIAGE 0.171177\n", "PAY_AMT3 0.133252\n", "PAY_AMT1 0.107046\n", "PAY_AMT2 0.082654\n", "BILL_AMT3 0.068008\n", "EDUCATION 0.060491\n", "PAY_AMT4 0.060251\n", "BILL_AMT2 0.057245\n", "BILL_AMT4 0.039342\n", "PAY_AMT5 0.036137\n", "PAY_AMT6 0.025210\n", "BILL_AMT6 0.005666\n", "BILL_AMT5 0.002853\n", "SEX -0.096203" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s_df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Plot top local contributions as reason codes" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = s_df[:5].plot(kind='bar', \n", " title='Top Five Reason Codes for a Risky Customer\\n', \n", " legend=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the customer in the test dataset that the GBM predicts as most likely to default, the most important input variables in the prediction are, in descending order, `PAY_0`, `PAY_5`, `PAY_6`, `PAY_2`, and `LIMIT_BAL`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Display customer in question " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The local contributions for this customer appear reasonable, especially when considering her payment information. Her most recent payment was 3 months late and her payment for 6 months and 5 months previous were 7 months late. Also her credit limit was extremely low, so it's logical that these factors would weigh heavily into the model's prediction for default for this customer." ] }, { "cell_type": "code", "execution_count": 29, "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", "
IDLIMIT_BALSEXEDUCATIONMARRIAGEAGEPAY_0PAY_2PAY_3PAY_4PAY_5PAY_6BILL_AMT1BILL_AMT2BILL_AMT3BILL_AMT4BILL_AMT5BILL_AMT6PAY_AMT1PAY_AMT2PAY_AMT3PAY_AMT4PAY_AMT5PAY_AMT6DEFAULT_NEXT_MONTH
53991775710000231513227772400240024002400240024000000001
\n", "
" ], "text/plain": [ " ID LIMIT_BAL SEX EDUCATION MARRIAGE AGE PAY_0 PAY_2 PAY_3 \\\n", "5399 17757 10000 2 3 1 51 3 2 2 \n", "\n", " PAY_4 PAY_5 PAY_6 BILL_AMT1 BILL_AMT2 BILL_AMT3 BILL_AMT4 \\\n", "5399 7 7 7 2400 2400 2400 2400 \n", "\n", " BILL_AMT5 BILL_AMT6 PAY_AMT1 PAY_AMT2 PAY_AMT3 PAY_AMT4 PAY_AMT5 \\\n", "5399 2400 2400 0 0 0 0 0 \n", "\n", " PAY_AMT6 DEFAULT_NEXT_MONTH \n", "5399 0 1 " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "row # helps understand reason codes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To generate reason codes for the model's decision, the locally important variable and its value are used together. If this customer was denied future credit based on this model and data, the top five Shapley-based reason codes for the automated decision would be:\n", "\n", "1. Most recent payment is 3 months delayed.\n", "2. 5th most recent payment is 7 months delayed.\n", "3. 6th most recent payment is 7 months delayed.\n", "4. 2nd most recent payment is 2 months delayed.\n", "5. Credit limit is too low: 10,000 $NT.\n", "\n", "(Of course, credit limits are set by the lender and are used to price-in risk to credit decisions, so using credit limits as reason codes or even in a probability of default model is likely questionable. However, in this small, example data set all input columns were used to generate a better model fit. For a slightly more careful treatment of gradient boosting in the context of credit scoring, please see: https://github.com/jphall663/interpretable_machine_learning_with_python/blob/master/dia.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Summary\n", "\n", "In this notebook, a highly transparent, nonlinear, monotonic GBM classifier was trained to predict credit card defaults and the monotonic behavior of the classifier was analyzed and validated. To do so, Pearson correlation between each input and the target was used to determine the direction for monotonicity constraints for each input variable in the XGBoost classifier. GBM variable importance, partial dependence, and ICE were calculated, plotted, and compared to one another, domain knowledge, and reasonable expectations. Shapley values were then used to explain the model predictions for the single most risky customer in the test set. These techniques should generalize well for many types of business and research problems, enabling you to train a monotonic GBM model and analyze, validate, and explain it to your colleagues, bosses, and potentially, external regulators. " ] } ], "metadata": { "anaconda-cloud": {}, "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }