Last active
June 25, 2018 11:22
-
-
Save aa-gamJain/0c66a77786d5a739ab1fa1e8d78b7190 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Assignment - PivotChain\n", | |
"1. Feature Extraction\n", | |
"2. Model Building\n", | |
" * 25% Test Data ~ Accuracy = 96.5616%\n", | |
" * Cross-Validation, 5-fold\n", | |
" * Accuracy: 95.59% Std.Dev. (1.48%)\n", | |
" * min: 0.927, mean: 0.956, max: 0.966" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"To run this Notebook some libraries required\n", | |
"* Numpy, Pandas, Matplotlib, Sklearn and xgboost\n", | |
"* Change Base_dir based on your settings" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"There are total 74 variables in which `loan_status` taking as a outcome variable." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 1. Feature Extraction" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline\n", | |
"\n", | |
"import seaborn as sns; sns.set()\n", | |
"import warnings\n", | |
"warnings.filterwarnings(\"ignore\")\n", | |
"\n", | |
"from sklearn.preprocessing import LabelEncoder\n", | |
"from sklearn.cross_validation import train_test_split\n", | |
"from sklearn import metrics\n", | |
"from sklearn.grid_search import GridSearchCV\n", | |
"\n", | |
"dir = r'C:\\Program Files\\mingw-w64\\x86_64-6.2.0-posix-seh-rt_v5-rev1\\mingw64\\bin'\n", | |
"import os\n", | |
"os.environ['PATH'].count(dir) # Here I show its already in the path at least once\n", | |
"os.environ['PATH'].find(dir)\n", | |
"os.environ['PATH'] = dir + ';' + os.environ['PATH'] \n", | |
"\n", | |
"from xgboost import XGBClassifier\n", | |
"\n", | |
"\n", | |
"pd.set_option('display.max_columns',100)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>id</th>\n", | |
" <th>member_id</th>\n", | |
" <th>loan_amnt</th>\n", | |
" <th>funded_amnt</th>\n", | |
" <th>funded_amnt_inv</th>\n", | |
" <th>term</th>\n", | |
" <th>int_rate</th>\n", | |
" <th>installment</th>\n", | |
" <th>grade</th>\n", | |
" <th>sub_grade</th>\n", | |
" <th>emp_title</th>\n", | |
" <th>emp_length</th>\n", | |
" <th>home_ownership</th>\n", | |
" <th>annual_inc</th>\n", | |
" <th>verification_status</th>\n", | |
" <th>issue_d</th>\n", | |
" <th>loan_status</th>\n", | |
" <th>pymnt_plan</th>\n", | |
" <th>url</th>\n", | |
" <th>desc</th>\n", | |
" <th>purpose</th>\n", | |
" <th>title</th>\n", | |
" <th>zip_code</th>\n", | |
" <th>addr_state</th>\n", | |
" <th>dti</th>\n", | |
" <th>delinq_2yrs</th>\n", | |
" <th>earliest_cr_line</th>\n", | |
" <th>inq_last_6mths</th>\n", | |
" <th>mths_since_last_delinq</th>\n", | |
" <th>mths_since_last_record</th>\n", | |
" <th>open_acc</th>\n", | |
" <th>pub_rec</th>\n", | |
" <th>revol_bal</th>\n", | |
" <th>revol_util</th>\n", | |
" <th>total_acc</th>\n", | |
" <th>initial_list_status</th>\n", | |
" <th>out_prncp</th>\n", | |
" <th>out_prncp_inv</th>\n", | |
" <th>total_pymnt</th>\n", | |
" <th>total_pymnt_inv</th>\n", | |
" <th>total_rec_prncp</th>\n", | |
" <th>total_rec_int</th>\n", | |
" <th>total_rec_late_fee</th>\n", | |
" <th>recoveries</th>\n", | |
" <th>collection_recovery_fee</th>\n", | |
" <th>last_pymnt_d</th>\n", | |
" <th>last_pymnt_amnt</th>\n", | |
" <th>next_pymnt_d</th>\n", | |
" <th>last_credit_pull_d</th>\n", | |
" <th>collections_12_mths_ex_med</th>\n", | |
" <th>mths_since_last_major_derog</th>\n", | |
" <th>policy_code</th>\n", | |
" <th>application_type</th>\n", | |
" <th>annual_inc_joint</th>\n", | |
" <th>dti_joint</th>\n", | |
" <th>verification_status_joint</th>\n", | |
" <th>acc_now_delinq</th>\n", | |
" <th>tot_coll_amt</th>\n", | |
" <th>tot_cur_bal</th>\n", | |
" <th>open_acc_6m</th>\n", | |
" <th>open_il_6m</th>\n", | |
" <th>open_il_12m</th>\n", | |
" <th>open_il_24m</th>\n", | |
" <th>mths_since_rcnt_il</th>\n", | |
" <th>total_bal_il</th>\n", | |
" <th>il_util</th>\n", | |
" <th>open_rv_12m</th>\n", | |
" <th>open_rv_24m</th>\n", | |
" <th>max_bal_bc</th>\n", | |
" <th>all_util</th>\n", | |
" <th>total_rev_hi_lim</th>\n", | |
" <th>inq_fi</th>\n", | |
" <th>total_cu_tl</th>\n", | |
" <th>inq_last_12m</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1077501</td>\n", | |
" <td>1296599</td>\n", | |
" <td>5000.0</td>\n", | |
" <td>5000.0</td>\n", | |
" <td>4975.0</td>\n", | |
" <td>36 months</td>\n", | |
" <td>10.65</td>\n", | |
" <td>162.87</td>\n", | |
" <td>B</td>\n", | |
" <td>B2</td>\n", | |
" <td>NaN</td>\n", | |
" <td>10+ years</td>\n", | |
" <td>RENT</td>\n", | |
" <td>24000.0</td>\n", | |
" <td>Verified</td>\n", | |
" <td>Dec-2011</td>\n", | |
" <td>Fully Paid</td>\n", | |
" <td>n</td>\n", | |
" <td>https://www.lendingclub.com/browse/loanDetail....</td>\n", | |
" <td>Borrower added on 12/22/11 > I need to upgra...</td>\n", | |
" <td>credit_card</td>\n", | |
" <td>Computer</td>\n", | |
" <td>860xx</td>\n", | |
" <td>AZ</td>\n", | |
" <td>27.65</td>\n", | |
" <td>0.0</td>\n", | |
" <td>Jan-1985</td>\n", | |
" <td>1.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>13648.0</td>\n", | |
" <td>83.7</td>\n", | |
" <td>9.0</td>\n", | |
" <td>f</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>5861.071414</td>\n", | |
" <td>5831.78</td>\n", | |
" <td>5000.00</td>\n", | |
" <td>861.07</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>Jan-2015</td>\n", | |
" <td>171.62</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Jan-2016</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>INDIVIDUAL</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1077430</td>\n", | |
" <td>1314167</td>\n", | |
" <td>2500.0</td>\n", | |
" <td>2500.0</td>\n", | |
" <td>2500.0</td>\n", | |
" <td>60 months</td>\n", | |
" <td>15.27</td>\n", | |
" <td>59.83</td>\n", | |
" <td>C</td>\n", | |
" <td>C4</td>\n", | |
" <td>Ryder</td>\n", | |
" <td>< 1 year</td>\n", | |
" <td>RENT</td>\n", | |
" <td>30000.0</td>\n", | |
" <td>Source Verified</td>\n", | |
" <td>Dec-2011</td>\n", | |
" <td>Charged Off</td>\n", | |
" <td>n</td>\n", | |
" <td>https://www.lendingclub.com/browse/loanDetail....</td>\n", | |
" <td>Borrower added on 12/22/11 > I plan to use t...</td>\n", | |
" <td>car</td>\n", | |
" <td>bike</td>\n", | |
" <td>309xx</td>\n", | |
" <td>GA</td>\n", | |
" <td>1.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>Apr-1999</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1687.0</td>\n", | |
" <td>9.4</td>\n", | |
" <td>4.0</td>\n", | |
" <td>f</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1008.710000</td>\n", | |
" <td>1008.71</td>\n", | |
" <td>456.46</td>\n", | |
" <td>435.17</td>\n", | |
" <td>0.00</td>\n", | |
" <td>117.08</td>\n", | |
" <td>1.11</td>\n", | |
" <td>Apr-2013</td>\n", | |
" <td>119.66</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Sep-2013</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>INDIVIDUAL</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1077175</td>\n", | |
" <td>1313524</td>\n", | |
" <td>2400.0</td>\n", | |
" <td>2400.0</td>\n", | |
" <td>2400.0</td>\n", | |
" <td>36 months</td>\n", | |
" <td>15.96</td>\n", | |
" <td>84.33</td>\n", | |
" <td>C</td>\n", | |
" <td>C5</td>\n", | |
" <td>NaN</td>\n", | |
" <td>10+ years</td>\n", | |
" <td>RENT</td>\n", | |
" <td>12252.0</td>\n", | |
" <td>Not Verified</td>\n", | |
" <td>Dec-2011</td>\n", | |
" <td>Fully Paid</td>\n", | |
" <td>n</td>\n", | |
" <td>https://www.lendingclub.com/browse/loanDetail....</td>\n", | |
" <td>NaN</td>\n", | |
" <td>small_business</td>\n", | |
" <td>real estate business</td>\n", | |
" <td>606xx</td>\n", | |
" <td>IL</td>\n", | |
" <td>8.72</td>\n", | |
" <td>0.0</td>\n", | |
" <td>Nov-2001</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>2956.0</td>\n", | |
" <td>98.5</td>\n", | |
" <td>10.0</td>\n", | |
" <td>f</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>3003.653644</td>\n", | |
" <td>3003.65</td>\n", | |
" <td>2400.00</td>\n", | |
" <td>603.65</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>Jun-2014</td>\n", | |
" <td>649.91</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Jan-2016</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>INDIVIDUAL</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1076863</td>\n", | |
" <td>1277178</td>\n", | |
" <td>10000.0</td>\n", | |
" <td>10000.0</td>\n", | |
" <td>10000.0</td>\n", | |
" <td>36 months</td>\n", | |
" <td>13.49</td>\n", | |
" <td>339.31</td>\n", | |
" <td>C</td>\n", | |
" <td>C1</td>\n", | |
" <td>AIR RESOURCES BOARD</td>\n", | |
" <td>10+ years</td>\n", | |
" <td>RENT</td>\n", | |
" <td>49200.0</td>\n", | |
" <td>Source Verified</td>\n", | |
" <td>Dec-2011</td>\n", | |
" <td>Fully Paid</td>\n", | |
" <td>n</td>\n", | |
" <td>https://www.lendingclub.com/browse/loanDetail....</td>\n", | |
" <td>Borrower added on 12/21/11 > to pay for prop...</td>\n", | |
" <td>other</td>\n", | |
" <td>personel</td>\n", | |
" <td>917xx</td>\n", | |
" <td>CA</td>\n", | |
" <td>20.00</td>\n", | |
" <td>0.0</td>\n", | |
" <td>Feb-1996</td>\n", | |
" <td>1.0</td>\n", | |
" <td>35.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>10.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>5598.0</td>\n", | |
" <td>21.0</td>\n", | |
" <td>37.0</td>\n", | |
" <td>f</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>12226.302212</td>\n", | |
" <td>12226.30</td>\n", | |
" <td>10000.00</td>\n", | |
" <td>2209.33</td>\n", | |
" <td>16.97</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>Jan-2015</td>\n", | |
" <td>357.48</td>\n", | |
" <td>NaN</td>\n", | |
" <td>Jan-2015</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>INDIVIDUAL</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1075358</td>\n", | |
" <td>1311748</td>\n", | |
" <td>3000.0</td>\n", | |
" <td>3000.0</td>\n", | |
" <td>3000.0</td>\n", | |
" <td>60 months</td>\n", | |
" <td>12.69</td>\n", | |
" <td>67.79</td>\n", | |
" <td>B</td>\n", | |
" <td>B5</td>\n", | |
" <td>University Medical Group</td>\n", | |
" <td>1 year</td>\n", | |
" <td>RENT</td>\n", | |
" <td>80000.0</td>\n", | |
" <td>Source Verified</td>\n", | |
" <td>Dec-2011</td>\n", | |
" <td>Current</td>\n", | |
" <td>n</td>\n", | |
" <td>https://www.lendingclub.com/browse/loanDetail....</td>\n", | |
" <td>Borrower added on 12/21/11 > I plan on combi...</td>\n", | |
" <td>other</td>\n", | |
" <td>Personal</td>\n", | |
" <td>972xx</td>\n", | |
" <td>OR</td>\n", | |
" <td>17.94</td>\n", | |
" <td>0.0</td>\n", | |
" <td>Jan-1996</td>\n", | |
" <td>0.0</td>\n", | |
" <td>38.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>15.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>27783.0</td>\n", | |
" <td>53.9</td>\n", | |
" <td>38.0</td>\n", | |
" <td>f</td>\n", | |
" <td>766.9</td>\n", | |
" <td>766.9</td>\n", | |
" <td>3242.170000</td>\n", | |
" <td>3242.17</td>\n", | |
" <td>2233.10</td>\n", | |
" <td>1009.07</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.00</td>\n", | |
" <td>Jan-2016</td>\n", | |
" <td>67.79</td>\n", | |
" <td>Feb-2016</td>\n", | |
" <td>Jan-2016</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>INDIVIDUAL</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" id member_id loan_amnt funded_amnt funded_amnt_inv term \\\n", | |
"0 1077501 1296599 5000.0 5000.0 4975.0 36 months \n", | |
"1 1077430 1314167 2500.0 2500.0 2500.0 60 months \n", | |
"2 1077175 1313524 2400.0 2400.0 2400.0 36 months \n", | |
"3 1076863 1277178 10000.0 10000.0 10000.0 36 months \n", | |
"4 1075358 1311748 3000.0 3000.0 3000.0 60 months \n", | |
"\n", | |
" int_rate installment grade sub_grade emp_title emp_length \\\n", | |
"0 10.65 162.87 B B2 NaN 10+ years \n", | |
"1 15.27 59.83 C C4 Ryder < 1 year \n", | |
"2 15.96 84.33 C C5 NaN 10+ years \n", | |
"3 13.49 339.31 C C1 AIR RESOURCES BOARD 10+ years \n", | |
"4 12.69 67.79 B B5 University Medical Group 1 year \n", | |
"\n", | |
" home_ownership annual_inc verification_status issue_d loan_status \\\n", | |
"0 RENT 24000.0 Verified Dec-2011 Fully Paid \n", | |
"1 RENT 30000.0 Source Verified Dec-2011 Charged Off \n", | |
"2 RENT 12252.0 Not Verified Dec-2011 Fully Paid \n", | |
"3 RENT 49200.0 Source Verified Dec-2011 Fully Paid \n", | |
"4 RENT 80000.0 Source Verified Dec-2011 Current \n", | |
"\n", | |
" pymnt_plan url \\\n", | |
"0 n https://www.lendingclub.com/browse/loanDetail.... \n", | |
"1 n https://www.lendingclub.com/browse/loanDetail.... \n", | |
"2 n https://www.lendingclub.com/browse/loanDetail.... \n", | |
"3 n https://www.lendingclub.com/browse/loanDetail.... \n", | |
"4 n https://www.lendingclub.com/browse/loanDetail.... \n", | |
"\n", | |
" desc purpose \\\n", | |
"0 Borrower added on 12/22/11 > I need to upgra... credit_card \n", | |
"1 Borrower added on 12/22/11 > I plan to use t... car \n", | |
"2 NaN small_business \n", | |
"3 Borrower added on 12/21/11 > to pay for prop... other \n", | |
"4 Borrower added on 12/21/11 > I plan on combi... other \n", | |
"\n", | |
" title zip_code addr_state dti delinq_2yrs \\\n", | |
"0 Computer 860xx AZ 27.65 0.0 \n", | |
"1 bike 309xx GA 1.00 0.0 \n", | |
"2 real estate business 606xx IL 8.72 0.0 \n", | |
"3 personel 917xx CA 20.00 0.0 \n", | |
"4 Personal 972xx OR 17.94 0.0 \n", | |
"\n", | |
" earliest_cr_line inq_last_6mths mths_since_last_delinq \\\n", | |
"0 Jan-1985 1.0 NaN \n", | |
"1 Apr-1999 5.0 NaN \n", | |
"2 Nov-2001 2.0 NaN \n", | |
"3 Feb-1996 1.0 35.0 \n", | |
"4 Jan-1996 0.0 38.0 \n", | |
"\n", | |
" mths_since_last_record open_acc pub_rec revol_bal revol_util \\\n", | |
"0 NaN 3.0 0.0 13648.0 83.7 \n", | |
"1 NaN 3.0 0.0 1687.0 9.4 \n", | |
"2 NaN 2.0 0.0 2956.0 98.5 \n", | |
"3 NaN 10.0 0.0 5598.0 21.0 \n", | |
"4 NaN 15.0 0.0 27783.0 53.9 \n", | |
"\n", | |
" total_acc initial_list_status out_prncp out_prncp_inv total_pymnt \\\n", | |
"0 9.0 f 0.0 0.0 5861.071414 \n", | |
"1 4.0 f 0.0 0.0 1008.710000 \n", | |
"2 10.0 f 0.0 0.0 3003.653644 \n", | |
"3 37.0 f 0.0 0.0 12226.302212 \n", | |
"4 38.0 f 766.9 766.9 3242.170000 \n", | |
"\n", | |
" total_pymnt_inv total_rec_prncp total_rec_int total_rec_late_fee \\\n", | |
"0 5831.78 5000.00 861.07 0.00 \n", | |
"1 1008.71 456.46 435.17 0.00 \n", | |
"2 3003.65 2400.00 603.65 0.00 \n", | |
"3 12226.30 10000.00 2209.33 16.97 \n", | |
"4 3242.17 2233.10 1009.07 0.00 \n", | |
"\n", | |
" recoveries collection_recovery_fee last_pymnt_d last_pymnt_amnt \\\n", | |
"0 0.00 0.00 Jan-2015 171.62 \n", | |
"1 117.08 1.11 Apr-2013 119.66 \n", | |
"2 0.00 0.00 Jun-2014 649.91 \n", | |
"3 0.00 0.00 Jan-2015 357.48 \n", | |
"4 0.00 0.00 Jan-2016 67.79 \n", | |
"\n", | |
" next_pymnt_d last_credit_pull_d collections_12_mths_ex_med \\\n", | |
"0 NaN Jan-2016 0.0 \n", | |
"1 NaN Sep-2013 0.0 \n", | |
"2 NaN Jan-2016 0.0 \n", | |
"3 NaN Jan-2015 0.0 \n", | |
"4 Feb-2016 Jan-2016 0.0 \n", | |
"\n", | |
" mths_since_last_major_derog policy_code application_type \\\n", | |
"0 NaN 1.0 INDIVIDUAL \n", | |
"1 NaN 1.0 INDIVIDUAL \n", | |
"2 NaN 1.0 INDIVIDUAL \n", | |
"3 NaN 1.0 INDIVIDUAL \n", | |
"4 NaN 1.0 INDIVIDUAL \n", | |
"\n", | |
" annual_inc_joint dti_joint verification_status_joint acc_now_delinq \\\n", | |
"0 NaN NaN NaN 0.0 \n", | |
"1 NaN NaN NaN 0.0 \n", | |
"2 NaN NaN NaN 0.0 \n", | |
"3 NaN NaN NaN 0.0 \n", | |
"4 NaN NaN NaN 0.0 \n", | |
"\n", | |
" tot_coll_amt tot_cur_bal open_acc_6m open_il_6m open_il_12m \\\n", | |
"0 NaN NaN NaN NaN NaN \n", | |
"1 NaN NaN NaN NaN NaN \n", | |
"2 NaN NaN NaN NaN NaN \n", | |
"3 NaN NaN NaN NaN NaN \n", | |
"4 NaN NaN NaN NaN NaN \n", | |
"\n", | |
" open_il_24m mths_since_rcnt_il total_bal_il il_util open_rv_12m \\\n", | |
"0 NaN NaN NaN NaN NaN \n", | |
"1 NaN NaN NaN NaN NaN \n", | |
"2 NaN NaN NaN NaN NaN \n", | |
"3 NaN NaN NaN NaN NaN \n", | |
"4 NaN NaN NaN NaN NaN \n", | |
"\n", | |
" open_rv_24m max_bal_bc all_util total_rev_hi_lim inq_fi total_cu_tl \\\n", | |
"0 NaN NaN NaN NaN NaN NaN \n", | |
"1 NaN NaN NaN NaN NaN NaN \n", | |
"2 NaN NaN NaN NaN NaN NaN \n", | |
"3 NaN NaN NaN NaN NaN NaN \n", | |
"4 NaN NaN NaN NaN NaN NaN \n", | |
"\n", | |
" inq_last_12m \n", | |
"0 NaN \n", | |
"1 NaN \n", | |
"2 NaN \n", | |
"3 NaN \n", | |
"4 NaN " | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data = pd.read_csv('loan.csv') # read file\n", | |
"data.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"<class 'pandas.core.frame.DataFrame'>\n", | |
"RangeIndex: 887379 entries, 0 to 887378\n", | |
"Data columns (total 74 columns):\n", | |
"id 887379 non-null int64\n", | |
"member_id 887379 non-null int64\n", | |
"loan_amnt 887379 non-null float64\n", | |
"funded_amnt 887379 non-null float64\n", | |
"funded_amnt_inv 887379 non-null float64\n", | |
"term 887379 non-null object\n", | |
"int_rate 887379 non-null float64\n", | |
"installment 887379 non-null float64\n", | |
"grade 887379 non-null object\n", | |
"sub_grade 887379 non-null object\n", | |
"emp_title 835922 non-null object\n", | |
"emp_length 887379 non-null object\n", | |
"home_ownership 887379 non-null object\n", | |
"annual_inc 887375 non-null float64\n", | |
"verification_status 887379 non-null object\n", | |
"issue_d 887379 non-null object\n", | |
"loan_status 887379 non-null object\n", | |
"pymnt_plan 887379 non-null object\n", | |
"url 887379 non-null object\n", | |
"desc 126029 non-null object\n", | |
"purpose 887379 non-null object\n", | |
"title 887228 non-null object\n", | |
"zip_code 887379 non-null object\n", | |
"addr_state 887379 non-null object\n", | |
"dti 887379 non-null float64\n", | |
"delinq_2yrs 887350 non-null float64\n", | |
"earliest_cr_line 887350 non-null object\n", | |
"inq_last_6mths 887350 non-null float64\n", | |
"mths_since_last_delinq 433067 non-null float64\n", | |
"mths_since_last_record 137053 non-null float64\n", | |
"open_acc 887350 non-null float64\n", | |
"pub_rec 887350 non-null float64\n", | |
"revol_bal 887379 non-null float64\n", | |
"revol_util 886877 non-null float64\n", | |
"total_acc 887350 non-null float64\n", | |
"initial_list_status 887379 non-null object\n", | |
"out_prncp 887379 non-null float64\n", | |
"out_prncp_inv 887379 non-null float64\n", | |
"total_pymnt 887379 non-null float64\n", | |
"total_pymnt_inv 887379 non-null float64\n", | |
"total_rec_prncp 887379 non-null float64\n", | |
"total_rec_int 887379 non-null float64\n", | |
"total_rec_late_fee 887379 non-null float64\n", | |
"recoveries 887379 non-null float64\n", | |
"collection_recovery_fee 887379 non-null float64\n", | |
"last_pymnt_d 869720 non-null object\n", | |
"last_pymnt_amnt 887379 non-null float64\n", | |
"next_pymnt_d 634408 non-null object\n", | |
"last_credit_pull_d 887326 non-null object\n", | |
"collections_12_mths_ex_med 887234 non-null float64\n", | |
"mths_since_last_major_derog 221703 non-null float64\n", | |
"policy_code 887379 non-null float64\n", | |
"application_type 887379 non-null object\n", | |
"annual_inc_joint 511 non-null float64\n", | |
"dti_joint 509 non-null float64\n", | |
"verification_status_joint 511 non-null object\n", | |
"acc_now_delinq 887350 non-null float64\n", | |
"tot_coll_amt 817103 non-null float64\n", | |
"tot_cur_bal 817103 non-null float64\n", | |
"open_acc_6m 21372 non-null float64\n", | |
"open_il_6m 21372 non-null float64\n", | |
"open_il_12m 21372 non-null float64\n", | |
"open_il_24m 21372 non-null float64\n", | |
"mths_since_rcnt_il 20810 non-null float64\n", | |
"total_bal_il 21372 non-null float64\n", | |
"il_util 18617 non-null float64\n", | |
"open_rv_12m 21372 non-null float64\n", | |
"open_rv_24m 21372 non-null float64\n", | |
"max_bal_bc 21372 non-null float64\n", | |
"all_util 21372 non-null float64\n", | |
"total_rev_hi_lim 817103 non-null float64\n", | |
"inq_fi 21372 non-null float64\n", | |
"total_cu_tl 21372 non-null float64\n", | |
"inq_last_12m 21372 non-null float64\n", | |
"dtypes: float64(49), int64(2), object(23)\n", | |
"memory usage: 501.0+ MB\n" | |
] | |
} | |
], | |
"source": [ | |
"data.info()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Current 601779\n", | |
"Fully Paid 207723\n", | |
"Charged Off 45248\n", | |
"Late (31-120 days) 11591\n", | |
"Issued 8460\n", | |
"In Grace Period 6253\n", | |
"Late (16-30 days) 2357\n", | |
"Does not meet the credit policy. Status:Fully Paid 1988\n", | |
"Default 1219\n", | |
"Does not meet the credit policy. Status:Charged Off 761\n", | |
"Name: loan_status, dtype: int64" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['loan_status'].value_counts() # Count of different loans." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"emp_title 51457\n", | |
"annual_inc 4\n", | |
"desc 761350\n", | |
"title 151\n", | |
"delinq_2yrs 29\n", | |
"earliest_cr_line 29\n", | |
"inq_last_6mths 29\n", | |
"mths_since_last_delinq 454312\n", | |
"mths_since_last_record 750326\n", | |
"open_acc 29\n", | |
"pub_rec 29\n", | |
"revol_util 502\n", | |
"total_acc 29\n", | |
"last_pymnt_d 17659\n", | |
"next_pymnt_d 252971\n", | |
"last_credit_pull_d 53\n", | |
"collections_12_mths_ex_med 145\n", | |
"mths_since_last_major_derog 665676\n", | |
"annual_inc_joint 886868\n", | |
"dti_joint 886870\n", | |
"verification_status_joint 886868\n", | |
"acc_now_delinq 29\n", | |
"tot_coll_amt 70276\n", | |
"tot_cur_bal 70276\n", | |
"open_acc_6m 866007\n", | |
"open_il_6m 866007\n", | |
"open_il_12m 866007\n", | |
"open_il_24m 866007\n", | |
"mths_since_rcnt_il 866569\n", | |
"total_bal_il 866007\n", | |
"il_util 868762\n", | |
"open_rv_12m 866007\n", | |
"open_rv_24m 866007\n", | |
"max_bal_bc 866007\n", | |
"all_util 866007\n", | |
"total_rev_hi_lim 70276\n", | |
"inq_fi 866007\n", | |
"total_cu_tl 866007\n", | |
"inq_last_12m 866007\n", | |
"dtype: int64" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data_null = data[data.columns].isnull().sum() # Columns that has null values\n", | |
"data_null[data_null > 0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>loan_status</th>\n", | |
" <th>verification_status</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>42449</th>\n", | |
" <td>Does not meet the credit policy. Status:Fully ...</td>\n", | |
" <td>Not Verified</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>42450</th>\n", | |
" <td>Does not meet the credit policy. Status:Fully ...</td>\n", | |
" <td>Not Verified</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>42480</th>\n", | |
" <td>Does not meet the credit policy. Status:Fully ...</td>\n", | |
" <td>Not Verified</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>42533</th>\n", | |
" <td>Does not meet the credit policy. Status:Fully ...</td>\n", | |
" <td>Not Verified</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" loan_status verification_status\n", | |
"42449 Does not meet the credit policy. Status:Fully ... Not Verified\n", | |
"42450 Does not meet the credit policy. Status:Fully ... Not Verified\n", | |
"42480 Does not meet the credit policy. Status:Fully ... Not Verified\n", | |
"42533 Does not meet the credit policy. Status:Fully ... Not Verified" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data[['loan_status','verification_status']][data['annual_inc'].isnull()] # status when annual_inc is null" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 10669.7952, 19000. , 65000. , 250000. , 550000. ])" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"np.percentile(data['annual_inc'].dropna(),q=[0.1,1,50,99,99.9]) \n", | |
"# percentile of values in that given range after dropping null values" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['annual_inc'] = data['annual_inc'].fillna(65000) # Filling missing values\n", | |
"data['annual_inc'].isnull().sum() # Check missing values" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[[1077501L\n", | |
" ' Borrower added on 12/22/11 > I need to upgrade my business technologies.<br>']\n", | |
" [1077430L\n", | |
" ' Borrower added on 12/22/11 > I plan to use this money to finance the motorcycle i am looking at. I plan to have it paid off as soon as possible/when i sell my old bike. I only need this money because the deal im looking at is to good to pass up.<br><br> Borrower added on 12/22/11 > I plan to use this money to finance the motorcycle i am looking at. I plan to have it paid off as soon as possible/when i sell my old bike.I only need this money because the deal im looking at is to good to pass up. I have finished college with an associates degree in business and its takingmeplaces<br>']]\n" | |
] | |
} | |
], | |
"source": [ | |
"print (data[['id','desc']]).head(2).values" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### As the desc depend on particular member own problem, so not treating `desc` missing values" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Debt consolidation 414001\n", | |
"Credit card refinancing 164331\n", | |
"Home improvement 40112\n", | |
"Other 31892\n", | |
"Debt Consolidation 15760\n", | |
"Major purchase 12051\n", | |
"Business 6728\n", | |
"Medical expenses 6674\n", | |
"Car financing 5565\n", | |
"Consolidation 5381\n", | |
"Name: title, dtype: int64" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['title'].value_counts().head(10) # different types of title" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Debt consolidation 414152\n", | |
"Credit card refinancing 164331\n", | |
"Home improvement 40112\n", | |
"Other 31892\n", | |
"Debt Consolidation 15760\n", | |
"Major purchase 12051\n", | |
"Business 6728\n", | |
"Medical expenses 6674\n", | |
"Car financing 5565\n", | |
"Consolidation 5381\n", | |
"Name: title, dtype: int64" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['title'] = data['title'].fillna('Debt consolidation') # Filling missing values\n", | |
"data['title'].value_counts().head(10) # 151 missing values has been filled" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>delinq_2yrs</th>\n", | |
" <th>False</th>\n", | |
" <th>True</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>45248</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>601779</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>1219</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>758</td>\n", | |
" <td>3</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>1962</td>\n", | |
" <td>26</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>207723</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>6253</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>8460</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>2357</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>11591</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"delinq_2yrs False True \n", | |
"loan_status \n", | |
"Charged Off 45248 0\n", | |
"Current 601779 0\n", | |
"Default 1219 0\n", | |
"Does not meet the credit policy. Status:Charged... 758 3\n", | |
"Does not meet the credit policy. Status:Fully Paid 1962 26\n", | |
"Fully Paid 207723 0\n", | |
"In Grace Period 6253 0\n", | |
"Issued 8460 0\n", | |
"Late (16-30 days) 2357 0\n", | |
"Late (31-120 days) 11591 0" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],data['delinq_2yrs'].isnull()) # loan_status when delinq_2yrs is Null" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### When `delinq_2yrs` is null the `loan_status` is mostly ~ `Does not meet the credit policy. Status:Fully Paid`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.0 1663\n", | |
"1.0 202\n", | |
"2.0 60\n", | |
"3.0 18\n", | |
"4.0 7\n", | |
"5.0 5\n", | |
"7.0 2\n", | |
"6.0 2\n", | |
"13.0 1\n", | |
"11.0 1\n", | |
"8.0 1\n", | |
"Name: delinq_2yrs, dtype: int64" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"(data['delinq_2yrs'][data['loan_status']=='Does not meet the credit policy. Status:Fully Paid']).value_counts()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['delinq_2yrs'] = data['delinq_2yrs'].fillna('0.0') # Filling missing values\n", | |
"data['delinq_2yrs'].isnull().sum() # missing values has been filled" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 0. , 2.2, 56. , 98.5, 103. ])" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"np.percentile(data['revol_util'].dropna(),q=[0.1,1,50,99,99.9])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['revol_util'] = data['revol_util'].fillna(56) # Filling missing values\n", | |
"data['revol_util'].isnull().sum() # Check missing values" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Not imputing last and next payment date as they are so many missing values and it totally depend on user" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.0 875553\n", | |
"1.0 10824\n", | |
"2.0 732\n", | |
"3.0 88\n", | |
"4.0 23\n", | |
"5.0 7\n", | |
"6.0 2\n", | |
"20.0 1\n", | |
"16.0 1\n", | |
"14.0 1\n", | |
"10.0 1\n", | |
"7.0 1\n", | |
"Name: collections_12_mths_ex_med, dtype: int64" | |
] | |
}, | |
"execution_count": 17, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['collections_12_mths_ex_med'].value_counts()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['collections_12_mths_ex_med'] = data['collections_12_mths_ex_med'].fillna(0.0) # Filling missing values\n", | |
"data['collections_12_mths_ex_med'].isnull().sum() # Check missing values" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Not Verified 283\n", | |
"Verified 167\n", | |
"Source Verified 61\n", | |
"Name: verification_status_joint, dtype: int64" | |
] | |
}, | |
"execution_count": 19, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['verification_status_joint'].value_counts()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>loan_status</th>\n", | |
" <th>Current</th>\n", | |
" <th>Fully Paid</th>\n", | |
" <th>In Grace Period</th>\n", | |
" <th>Issued</th>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>verification_status_joint</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Not Verified</th>\n", | |
" <td>252</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>29</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Source Verified</th>\n", | |
" <td>50</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>10</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Verified</th>\n", | |
" <td>139</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>25</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"loan_status Current Fully Paid In Grace Period Issued \\\n", | |
"verification_status_joint \n", | |
"Not Verified 252 0 1 29 \n", | |
"Source Verified 50 1 0 10 \n", | |
"Verified 139 0 2 25 \n", | |
"\n", | |
"loan_status Late (31-120 days) \n", | |
"verification_status_joint \n", | |
"Not Verified 1 \n", | |
"Source Verified 0 \n", | |
"Verified 1 " | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['verification_status_joint'],data['loan_status'])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"`verification_status_joint` not showing any dependency to `loan_status`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.0 883236\n", | |
"1.0 3866\n", | |
"2.0 208\n", | |
"3.0 28\n", | |
"4.0 7\n", | |
"5.0 3\n", | |
"14.0 1\n", | |
"6.0 1\n", | |
"Name: acc_now_delinq, dtype: int64" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['acc_now_delinq'].value_counts()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>acc_now_delinq</th>\n", | |
" <th>0.0</th>\n", | |
" <th>1.0</th>\n", | |
" <th>2.0</th>\n", | |
" <th>3.0</th>\n", | |
" <th>4.0</th>\n", | |
" <th>5.0</th>\n", | |
" <th>6.0</th>\n", | |
" <th>14.0</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>45088</td>\n", | |
" <td>148</td>\n", | |
" <td>9</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>598590</td>\n", | |
" <td>2994</td>\n", | |
" <td>162</td>\n", | |
" <td>25</td>\n", | |
" <td>5</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>1213</td>\n", | |
" <td>6</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>758</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>1958</td>\n", | |
" <td>4</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>207148</td>\n", | |
" <td>545</td>\n", | |
" <td>27</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>6223</td>\n", | |
" <td>29</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>8422</td>\n", | |
" <td>36</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>2337</td>\n", | |
" <td>20</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>11499</td>\n", | |
" <td>84</td>\n", | |
" <td>7</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"acc_now_delinq 0.0 1.0 2.0 3.0 \\\n", | |
"loan_status \n", | |
"Charged Off 45088 148 9 2 \n", | |
"Current 598590 2994 162 25 \n", | |
"Default 1213 6 0 0 \n", | |
"Does not meet the credit policy. Status:Charged... 758 0 0 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 1958 4 0 0 \n", | |
"Fully Paid 207148 545 27 1 \n", | |
"In Grace Period 6223 29 1 0 \n", | |
"Issued 8422 36 2 0 \n", | |
"Late (16-30 days) 2337 20 0 0 \n", | |
"Late (31-120 days) 11499 84 7 0 \n", | |
"\n", | |
"acc_now_delinq 4.0 5.0 6.0 14.0 \n", | |
"loan_status \n", | |
"Charged Off 0 1 0 0 \n", | |
"Current 5 1 1 1 \n", | |
"Default 0 0 0 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 0 0 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 0 0 0 \n", | |
"Fully Paid 1 1 0 0 \n", | |
"In Grace Period 0 0 0 0 \n", | |
"Issued 0 0 0 0 \n", | |
"Late (16-30 days) 0 0 0 0 \n", | |
"Late (31-120 days) 1 0 0 0 " | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],data['acc_now_delinq'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>acc_now_delinq</th>\n", | |
" <th>False</th>\n", | |
" <th>True</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>45248</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>601779</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>1219</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>758</td>\n", | |
" <td>3</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>1962</td>\n", | |
" <td>26</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>207723</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>6253</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>8460</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>2357</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>11591</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"acc_now_delinq False True \n", | |
"loan_status \n", | |
"Charged Off 45248 0\n", | |
"Current 601779 0\n", | |
"Default 1219 0\n", | |
"Does not meet the credit policy. Status:Charged... 758 3\n", | |
"Does not meet the credit policy. Status:Fully Paid 1962 26\n", | |
"Fully Paid 207723 0\n", | |
"In Grace Period 6253 0\n", | |
"Issued 8460 0\n", | |
"Late (16-30 days) 2357 0\n", | |
"Late (31-120 days) 11591 0" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],data['acc_now_delinq'].isnull())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['acc_now_delinq'] = data['acc_now_delinq'].fillna('0.0') # Filling missing values\n", | |
"data['acc_now_delinq'].isnull().sum() # missing values has been filled" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['tot_coll_amt'] = data['tot_coll_amt'].fillna(0.0)\n", | |
"data['tot_coll_amt'].isnull().sum()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"count 8.171030e+05\n", | |
"mean 1.394582e+05\n", | |
"std 1.537500e+05\n", | |
"min 0.000000e+00\n", | |
"25% 2.985300e+04\n", | |
"50% 8.055900e+04\n", | |
"75% 2.082050e+05\n", | |
"max 8.000078e+06\n", | |
"Name: tot_cur_bal, dtype: float64" | |
] | |
}, | |
"execution_count": 26, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['tot_cur_bal'].dropna().describe()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['tot_cur_bal'] = data['tot_cur_bal'].fillna(data['tot_cur_bal'].mean()) # filling missing values\n", | |
"data['tot_cur_bal'].isnull().sum()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['total_rev_hi_lim'] = data['total_rev_hi_lim'].fillna(data['total_rev_hi_lim'].median()) # filling missing values\n", | |
"data['total_rev_hi_lim'].isnull().sum()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>home_ownership</th>\n", | |
" <th>ANY</th>\n", | |
" <th>MORTGAGE</th>\n", | |
" <th>NONE</th>\n", | |
" <th>OTHER</th>\n", | |
" <th>OWN</th>\n", | |
" <th>RENT</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>0</td>\n", | |
" <td>19878</td>\n", | |
" <td>7</td>\n", | |
" <td>27</td>\n", | |
" <td>4025</td>\n", | |
" <td>21311</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>2</td>\n", | |
" <td>303764</td>\n", | |
" <td>2</td>\n", | |
" <td>3</td>\n", | |
" <td>62041</td>\n", | |
" <td>235967</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>0</td>\n", | |
" <td>498</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>110</td>\n", | |
" <td>611</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>0</td>\n", | |
" <td>348</td>\n", | |
" <td>1</td>\n", | |
" <td>11</td>\n", | |
" <td>49</td>\n", | |
" <td>352</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>0</td>\n", | |
" <td>908</td>\n", | |
" <td>4</td>\n", | |
" <td>27</td>\n", | |
" <td>138</td>\n", | |
" <td>911</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>1</td>\n", | |
" <td>104966</td>\n", | |
" <td>36</td>\n", | |
" <td>114</td>\n", | |
" <td>17960</td>\n", | |
" <td>84646</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>0</td>\n", | |
" <td>2855</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>637</td>\n", | |
" <td>2761</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>0</td>\n", | |
" <td>4220</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1038</td>\n", | |
" <td>3202</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>0</td>\n", | |
" <td>1101</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>260</td>\n", | |
" <td>996</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>0</td>\n", | |
" <td>5019</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1212</td>\n", | |
" <td>5360</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"home_ownership ANY MORTGAGE NONE \\\n", | |
"loan_status \n", | |
"Charged Off 0 19878 7 \n", | |
"Current 2 303764 2 \n", | |
"Default 0 498 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 348 1 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 908 4 \n", | |
"Fully Paid 1 104966 36 \n", | |
"In Grace Period 0 2855 0 \n", | |
"Issued 0 4220 0 \n", | |
"Late (16-30 days) 0 1101 0 \n", | |
"Late (31-120 days) 0 5019 0 \n", | |
"\n", | |
"home_ownership OTHER OWN RENT \n", | |
"loan_status \n", | |
"Charged Off 27 4025 21311 \n", | |
"Current 3 62041 235967 \n", | |
"Default 0 110 611 \n", | |
"Does not meet the credit policy. Status:Charged... 11 49 352 \n", | |
"Does not meet the credit policy. Status:Fully Paid 27 138 911 \n", | |
"Fully Paid 114 17960 84646 \n", | |
"In Grace Period 0 637 2761 \n", | |
"Issued 0 1038 3202 \n", | |
"Late (16-30 days) 0 260 996 \n", | |
"Late (31-120 days) 0 1212 5360 " | |
] | |
}, | |
"execution_count": 29, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],data['home_ownership']) # This features may give good results" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>funded_amnt</th>\n", | |
" <th>(465.5, 3950]</th>\n", | |
" <th>(3950, 7400]</th>\n", | |
" <th>(7400, 10850]</th>\n", | |
" <th>(10850, 14300]</th>\n", | |
" <th>(14300, 17750]</th>\n", | |
" <th>(17750, 21200]</th>\n", | |
" <th>(21200, 24650]</th>\n", | |
" <th>(24650, 28100]</th>\n", | |
" <th>(28100, 31550]</th>\n", | |
" <th>(31550, 35000]</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>2724</td>\n", | |
" <td>7045</td>\n", | |
" <td>8842</td>\n", | |
" <td>6087</td>\n", | |
" <td>6054</td>\n", | |
" <td>5696</td>\n", | |
" <td>2555</td>\n", | |
" <td>2577</td>\n", | |
" <td>1469</td>\n", | |
" <td>2199</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>29039</td>\n", | |
" <td>86156</td>\n", | |
" <td>107908</td>\n", | |
" <td>83915</td>\n", | |
" <td>82325</td>\n", | |
" <td>80200</td>\n", | |
" <td>36984</td>\n", | |
" <td>41189</td>\n", | |
" <td>20189</td>\n", | |
" <td>33874</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>51</td>\n", | |
" <td>165</td>\n", | |
" <td>218</td>\n", | |
" <td>194</td>\n", | |
" <td>175</td>\n", | |
" <td>169</td>\n", | |
" <td>62</td>\n", | |
" <td>77</td>\n", | |
" <td>36</td>\n", | |
" <td>72</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>133</td>\n", | |
" <td>224</td>\n", | |
" <td>177</td>\n", | |
" <td>73</td>\n", | |
" <td>61</td>\n", | |
" <td>38</td>\n", | |
" <td>27</td>\n", | |
" <td>28</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>429</td>\n", | |
" <td>599</td>\n", | |
" <td>406</td>\n", | |
" <td>173</td>\n", | |
" <td>168</td>\n", | |
" <td>119</td>\n", | |
" <td>35</td>\n", | |
" <td>59</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>15354</td>\n", | |
" <td>39007</td>\n", | |
" <td>43326</td>\n", | |
" <td>29798</td>\n", | |
" <td>25405</td>\n", | |
" <td>23064</td>\n", | |
" <td>9490</td>\n", | |
" <td>9635</td>\n", | |
" <td>4744</td>\n", | |
" <td>7900</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>253</td>\n", | |
" <td>763</td>\n", | |
" <td>1089</td>\n", | |
" <td>889</td>\n", | |
" <td>881</td>\n", | |
" <td>877</td>\n", | |
" <td>386</td>\n", | |
" <td>411</td>\n", | |
" <td>244</td>\n", | |
" <td>460</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>502</td>\n", | |
" <td>1271</td>\n", | |
" <td>1484</td>\n", | |
" <td>1065</td>\n", | |
" <td>1105</td>\n", | |
" <td>1054</td>\n", | |
" <td>547</td>\n", | |
" <td>570</td>\n", | |
" <td>301</td>\n", | |
" <td>561</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>109</td>\n", | |
" <td>338</td>\n", | |
" <td>377</td>\n", | |
" <td>344</td>\n", | |
" <td>319</td>\n", | |
" <td>317</td>\n", | |
" <td>134</td>\n", | |
" <td>158</td>\n", | |
" <td>96</td>\n", | |
" <td>165</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>444</td>\n", | |
" <td>1519</td>\n", | |
" <td>2162</td>\n", | |
" <td>1730</td>\n", | |
" <td>1585</td>\n", | |
" <td>1543</td>\n", | |
" <td>747</td>\n", | |
" <td>677</td>\n", | |
" <td>423</td>\n", | |
" <td>761</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"funded_amnt (465.5, 3950] \\\n", | |
"loan_status \n", | |
"Charged Off 2724 \n", | |
"Current 29039 \n", | |
"Default 51 \n", | |
"Does not meet the credit policy. Status:Charged... 133 \n", | |
"Does not meet the credit policy. Status:Fully Paid 429 \n", | |
"Fully Paid 15354 \n", | |
"In Grace Period 253 \n", | |
"Issued 502 \n", | |
"Late (16-30 days) 109 \n", | |
"Late (31-120 days) 444 \n", | |
"\n", | |
"funded_amnt (3950, 7400] \\\n", | |
"loan_status \n", | |
"Charged Off 7045 \n", | |
"Current 86156 \n", | |
"Default 165 \n", | |
"Does not meet the credit policy. Status:Charged... 224 \n", | |
"Does not meet the credit policy. Status:Fully Paid 599 \n", | |
"Fully Paid 39007 \n", | |
"In Grace Period 763 \n", | |
"Issued 1271 \n", | |
"Late (16-30 days) 338 \n", | |
"Late (31-120 days) 1519 \n", | |
"\n", | |
"funded_amnt (7400, 10850] \\\n", | |
"loan_status \n", | |
"Charged Off 8842 \n", | |
"Current 107908 \n", | |
"Default 218 \n", | |
"Does not meet the credit policy. Status:Charged... 177 \n", | |
"Does not meet the credit policy. Status:Fully Paid 406 \n", | |
"Fully Paid 43326 \n", | |
"In Grace Period 1089 \n", | |
"Issued 1484 \n", | |
"Late (16-30 days) 377 \n", | |
"Late (31-120 days) 2162 \n", | |
"\n", | |
"funded_amnt (10850, 14300] \\\n", | |
"loan_status \n", | |
"Charged Off 6087 \n", | |
"Current 83915 \n", | |
"Default 194 \n", | |
"Does not meet the credit policy. Status:Charged... 73 \n", | |
"Does not meet the credit policy. Status:Fully Paid 173 \n", | |
"Fully Paid 29798 \n", | |
"In Grace Period 889 \n", | |
"Issued 1065 \n", | |
"Late (16-30 days) 344 \n", | |
"Late (31-120 days) 1730 \n", | |
"\n", | |
"funded_amnt (14300, 17750] \\\n", | |
"loan_status \n", | |
"Charged Off 6054 \n", | |
"Current 82325 \n", | |
"Default 175 \n", | |
"Does not meet the credit policy. Status:Charged... 61 \n", | |
"Does not meet the credit policy. Status:Fully Paid 168 \n", | |
"Fully Paid 25405 \n", | |
"In Grace Period 881 \n", | |
"Issued 1105 \n", | |
"Late (16-30 days) 319 \n", | |
"Late (31-120 days) 1585 \n", | |
"\n", | |
"funded_amnt (17750, 21200] \\\n", | |
"loan_status \n", | |
"Charged Off 5696 \n", | |
"Current 80200 \n", | |
"Default 169 \n", | |
"Does not meet the credit policy. Status:Charged... 38 \n", | |
"Does not meet the credit policy. Status:Fully Paid 119 \n", | |
"Fully Paid 23064 \n", | |
"In Grace Period 877 \n", | |
"Issued 1054 \n", | |
"Late (16-30 days) 317 \n", | |
"Late (31-120 days) 1543 \n", | |
"\n", | |
"funded_amnt (21200, 24650] \\\n", | |
"loan_status \n", | |
"Charged Off 2555 \n", | |
"Current 36984 \n", | |
"Default 62 \n", | |
"Does not meet the credit policy. Status:Charged... 27 \n", | |
"Does not meet the credit policy. Status:Fully Paid 35 \n", | |
"Fully Paid 9490 \n", | |
"In Grace Period 386 \n", | |
"Issued 547 \n", | |
"Late (16-30 days) 134 \n", | |
"Late (31-120 days) 747 \n", | |
"\n", | |
"funded_amnt (24650, 28100] \\\n", | |
"loan_status \n", | |
"Charged Off 2577 \n", | |
"Current 41189 \n", | |
"Default 77 \n", | |
"Does not meet the credit policy. Status:Charged... 28 \n", | |
"Does not meet the credit policy. Status:Fully Paid 59 \n", | |
"Fully Paid 9635 \n", | |
"In Grace Period 411 \n", | |
"Issued 570 \n", | |
"Late (16-30 days) 158 \n", | |
"Late (31-120 days) 677 \n", | |
"\n", | |
"funded_amnt (28100, 31550] \\\n", | |
"loan_status \n", | |
"Charged Off 1469 \n", | |
"Current 20189 \n", | |
"Default 36 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 4744 \n", | |
"In Grace Period 244 \n", | |
"Issued 301 \n", | |
"Late (16-30 days) 96 \n", | |
"Late (31-120 days) 423 \n", | |
"\n", | |
"funded_amnt (31550, 35000] \n", | |
"loan_status \n", | |
"Charged Off 2199 \n", | |
"Current 33874 \n", | |
"Default 72 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 7900 \n", | |
"In Grace Period 460 \n", | |
"Issued 561 \n", | |
"Late (16-30 days) 165 \n", | |
"Late (31-120 days) 761 " | |
] | |
}, | |
"execution_count": 30, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],pd.cut(data['funded_amnt'],10)) # Divide the funded_amnt data into 10 bins\n", | |
"# The total amount committed to that loan at that point in time. This features may give good results" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>funded_amnt_inv</th>\n", | |
" <th>(-35, 3500]</th>\n", | |
" <th>(3500, 7000]</th>\n", | |
" <th>(7000, 10500]</th>\n", | |
" <th>(10500, 14000]</th>\n", | |
" <th>(14000, 17500]</th>\n", | |
" <th>(17500, 21000]</th>\n", | |
" <th>(21000, 24500]</th>\n", | |
" <th>(24500, 28000]</th>\n", | |
" <th>(28000, 31500]</th>\n", | |
" <th>(31500, 35000]</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>2581</td>\n", | |
" <td>6888</td>\n", | |
" <td>8885</td>\n", | |
" <td>6364</td>\n", | |
" <td>6010</td>\n", | |
" <td>5700</td>\n", | |
" <td>2621</td>\n", | |
" <td>2518</td>\n", | |
" <td>1498</td>\n", | |
" <td>2183</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>25507</td>\n", | |
" <td>83614</td>\n", | |
" <td>109769</td>\n", | |
" <td>86471</td>\n", | |
" <td>82255</td>\n", | |
" <td>81113</td>\n", | |
" <td>37298</td>\n", | |
" <td>41549</td>\n", | |
" <td>20335</td>\n", | |
" <td>33868</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>37</td>\n", | |
" <td>165</td>\n", | |
" <td>219</td>\n", | |
" <td>203</td>\n", | |
" <td>175</td>\n", | |
" <td>171</td>\n", | |
" <td>64</td>\n", | |
" <td>76</td>\n", | |
" <td>37</td>\n", | |
" <td>72</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>326</td>\n", | |
" <td>189</td>\n", | |
" <td>124</td>\n", | |
" <td>53</td>\n", | |
" <td>31</td>\n", | |
" <td>17</td>\n", | |
" <td>18</td>\n", | |
" <td>3</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>813</td>\n", | |
" <td>487</td>\n", | |
" <td>291</td>\n", | |
" <td>145</td>\n", | |
" <td>113</td>\n", | |
" <td>76</td>\n", | |
" <td>33</td>\n", | |
" <td>30</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>14488</td>\n", | |
" <td>38029</td>\n", | |
" <td>44248</td>\n", | |
" <td>30678</td>\n", | |
" <td>25287</td>\n", | |
" <td>23131</td>\n", | |
" <td>9731</td>\n", | |
" <td>9476</td>\n", | |
" <td>4784</td>\n", | |
" <td>7871</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>224</td>\n", | |
" <td>727</td>\n", | |
" <td>1119</td>\n", | |
" <td>895</td>\n", | |
" <td>884</td>\n", | |
" <td>889</td>\n", | |
" <td>392</td>\n", | |
" <td>416</td>\n", | |
" <td>247</td>\n", | |
" <td>460</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>427</td>\n", | |
" <td>1260</td>\n", | |
" <td>1509</td>\n", | |
" <td>1105</td>\n", | |
" <td>1101</td>\n", | |
" <td>1072</td>\n", | |
" <td>549</td>\n", | |
" <td>571</td>\n", | |
" <td>304</td>\n", | |
" <td>562</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>94</td>\n", | |
" <td>336</td>\n", | |
" <td>377</td>\n", | |
" <td>346</td>\n", | |
" <td>323</td>\n", | |
" <td>323</td>\n", | |
" <td>136</td>\n", | |
" <td>160</td>\n", | |
" <td>97</td>\n", | |
" <td>165</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>383</td>\n", | |
" <td>1417</td>\n", | |
" <td>2197</td>\n", | |
" <td>1815</td>\n", | |
" <td>1586</td>\n", | |
" <td>1563</td>\n", | |
" <td>752</td>\n", | |
" <td>688</td>\n", | |
" <td>431</td>\n", | |
" <td>759</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"funded_amnt_inv (-35, 3500] (3500, 7000] \\\n", | |
"loan_status \n", | |
"Charged Off 2581 6888 \n", | |
"Current 25507 83614 \n", | |
"Default 37 165 \n", | |
"Does not meet the credit policy. Status:Charged... 326 189 \n", | |
"Does not meet the credit policy. Status:Fully Paid 813 487 \n", | |
"Fully Paid 14488 38029 \n", | |
"In Grace Period 224 727 \n", | |
"Issued 427 1260 \n", | |
"Late (16-30 days) 94 336 \n", | |
"Late (31-120 days) 383 1417 \n", | |
"\n", | |
"funded_amnt_inv (7000, 10500] \\\n", | |
"loan_status \n", | |
"Charged Off 8885 \n", | |
"Current 109769 \n", | |
"Default 219 \n", | |
"Does not meet the credit policy. Status:Charged... 124 \n", | |
"Does not meet the credit policy. Status:Fully Paid 291 \n", | |
"Fully Paid 44248 \n", | |
"In Grace Period 1119 \n", | |
"Issued 1509 \n", | |
"Late (16-30 days) 377 \n", | |
"Late (31-120 days) 2197 \n", | |
"\n", | |
"funded_amnt_inv (10500, 14000] \\\n", | |
"loan_status \n", | |
"Charged Off 6364 \n", | |
"Current 86471 \n", | |
"Default 203 \n", | |
"Does not meet the credit policy. Status:Charged... 53 \n", | |
"Does not meet the credit policy. Status:Fully Paid 145 \n", | |
"Fully Paid 30678 \n", | |
"In Grace Period 895 \n", | |
"Issued 1105 \n", | |
"Late (16-30 days) 346 \n", | |
"Late (31-120 days) 1815 \n", | |
"\n", | |
"funded_amnt_inv (14000, 17500] \\\n", | |
"loan_status \n", | |
"Charged Off 6010 \n", | |
"Current 82255 \n", | |
"Default 175 \n", | |
"Does not meet the credit policy. Status:Charged... 31 \n", | |
"Does not meet the credit policy. Status:Fully Paid 113 \n", | |
"Fully Paid 25287 \n", | |
"In Grace Period 884 \n", | |
"Issued 1101 \n", | |
"Late (16-30 days) 323 \n", | |
"Late (31-120 days) 1586 \n", | |
"\n", | |
"funded_amnt_inv (17500, 21000] \\\n", | |
"loan_status \n", | |
"Charged Off 5700 \n", | |
"Current 81113 \n", | |
"Default 171 \n", | |
"Does not meet the credit policy. Status:Charged... 17 \n", | |
"Does not meet the credit policy. Status:Fully Paid 76 \n", | |
"Fully Paid 23131 \n", | |
"In Grace Period 889 \n", | |
"Issued 1072 \n", | |
"Late (16-30 days) 323 \n", | |
"Late (31-120 days) 1563 \n", | |
"\n", | |
"funded_amnt_inv (21000, 24500] \\\n", | |
"loan_status \n", | |
"Charged Off 2621 \n", | |
"Current 37298 \n", | |
"Default 64 \n", | |
"Does not meet the credit policy. Status:Charged... 18 \n", | |
"Does not meet the credit policy. Status:Fully Paid 33 \n", | |
"Fully Paid 9731 \n", | |
"In Grace Period 392 \n", | |
"Issued 549 \n", | |
"Late (16-30 days) 136 \n", | |
"Late (31-120 days) 752 \n", | |
"\n", | |
"funded_amnt_inv (24500, 28000] \\\n", | |
"loan_status \n", | |
"Charged Off 2518 \n", | |
"Current 41549 \n", | |
"Default 76 \n", | |
"Does not meet the credit policy. Status:Charged... 3 \n", | |
"Does not meet the credit policy. Status:Fully Paid 30 \n", | |
"Fully Paid 9476 \n", | |
"In Grace Period 416 \n", | |
"Issued 571 \n", | |
"Late (16-30 days) 160 \n", | |
"Late (31-120 days) 688 \n", | |
"\n", | |
"funded_amnt_inv (28000, 31500] \\\n", | |
"loan_status \n", | |
"Charged Off 1498 \n", | |
"Current 20335 \n", | |
"Default 37 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 4784 \n", | |
"In Grace Period 247 \n", | |
"Issued 304 \n", | |
"Late (16-30 days) 97 \n", | |
"Late (31-120 days) 431 \n", | |
"\n", | |
"funded_amnt_inv (31500, 35000] \n", | |
"loan_status \n", | |
"Charged Off 2183 \n", | |
"Current 33868 \n", | |
"Default 72 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 7871 \n", | |
"In Grace Period 460 \n", | |
"Issued 562 \n", | |
"Late (16-30 days) 165 \n", | |
"Late (31-120 days) 759 " | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],pd.cut(data['funded_amnt_inv'],10)) # Divide the funded_amnt_inv data into 10 bins\n", | |
"# The total amount committed by investors for that loan at that point in time. This features may give good results" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>installment</th>\n", | |
" <th>(14.24, 158.649]</th>\n", | |
" <th>(158.649, 301.628]</th>\n", | |
" <th>(301.628, 444.607]</th>\n", | |
" <th>(444.607, 587.586]</th>\n", | |
" <th>(587.586, 730.565]</th>\n", | |
" <th>(730.565, 873.544]</th>\n", | |
" <th>(873.544, 1016.523]</th>\n", | |
" <th>(1016.523, 1159.502]</th>\n", | |
" <th>(1159.502, 1302.481]</th>\n", | |
" <th>(1302.481, 1445.46]</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>4162</td>\n", | |
" <td>10321</td>\n", | |
" <td>11723</td>\n", | |
" <td>8455</td>\n", | |
" <td>4878</td>\n", | |
" <td>2655</td>\n", | |
" <td>1791</td>\n", | |
" <td>585</td>\n", | |
" <td>582</td>\n", | |
" <td>96</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>46208</td>\n", | |
" <td>143516</td>\n", | |
" <td>154691</td>\n", | |
" <td>110012</td>\n", | |
" <td>67257</td>\n", | |
" <td>42772</td>\n", | |
" <td>19674</td>\n", | |
" <td>10018</td>\n", | |
" <td>7437</td>\n", | |
" <td>194</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>75</td>\n", | |
" <td>276</td>\n", | |
" <td>338</td>\n", | |
" <td>243</td>\n", | |
" <td>128</td>\n", | |
" <td>77</td>\n", | |
" <td>46</td>\n", | |
" <td>18</td>\n", | |
" <td>18</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>191</td>\n", | |
" <td>272</td>\n", | |
" <td>135</td>\n", | |
" <td>76</td>\n", | |
" <td>34</td>\n", | |
" <td>42</td>\n", | |
" <td>11</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>607</td>\n", | |
" <td>653</td>\n", | |
" <td>336</td>\n", | |
" <td>200</td>\n", | |
" <td>102</td>\n", | |
" <td>67</td>\n", | |
" <td>23</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>24031</td>\n", | |
" <td>53187</td>\n", | |
" <td>53641</td>\n", | |
" <td>33307</td>\n", | |
" <td>20706</td>\n", | |
" <td>11373</td>\n", | |
" <td>5974</td>\n", | |
" <td>2797</td>\n", | |
" <td>2511</td>\n", | |
" <td>196</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>358</td>\n", | |
" <td>1302</td>\n", | |
" <td>1567</td>\n", | |
" <td>1233</td>\n", | |
" <td>763</td>\n", | |
" <td>466</td>\n", | |
" <td>294</td>\n", | |
" <td>144</td>\n", | |
" <td>118</td>\n", | |
" <td>8</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>779</td>\n", | |
" <td>1971</td>\n", | |
" <td>2021</td>\n", | |
" <td>1485</td>\n", | |
" <td>915</td>\n", | |
" <td>655</td>\n", | |
" <td>315</td>\n", | |
" <td>193</td>\n", | |
" <td>126</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>176</td>\n", | |
" <td>496</td>\n", | |
" <td>594</td>\n", | |
" <td>444</td>\n", | |
" <td>278</td>\n", | |
" <td>146</td>\n", | |
" <td>119</td>\n", | |
" <td>42</td>\n", | |
" <td>58</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>667</td>\n", | |
" <td>2597</td>\n", | |
" <td>3085</td>\n", | |
" <td>2210</td>\n", | |
" <td>1282</td>\n", | |
" <td>797</td>\n", | |
" <td>523</td>\n", | |
" <td>199</td>\n", | |
" <td>212</td>\n", | |
" <td>19</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"installment (14.24, 158.649] \\\n", | |
"loan_status \n", | |
"Charged Off 4162 \n", | |
"Current 46208 \n", | |
"Default 75 \n", | |
"Does not meet the credit policy. Status:Charged... 191 \n", | |
"Does not meet the credit policy. Status:Fully Paid 607 \n", | |
"Fully Paid 24031 \n", | |
"In Grace Period 358 \n", | |
"Issued 779 \n", | |
"Late (16-30 days) 176 \n", | |
"Late (31-120 days) 667 \n", | |
"\n", | |
"installment (158.649, 301.628] \\\n", | |
"loan_status \n", | |
"Charged Off 10321 \n", | |
"Current 143516 \n", | |
"Default 276 \n", | |
"Does not meet the credit policy. Status:Charged... 272 \n", | |
"Does not meet the credit policy. Status:Fully Paid 653 \n", | |
"Fully Paid 53187 \n", | |
"In Grace Period 1302 \n", | |
"Issued 1971 \n", | |
"Late (16-30 days) 496 \n", | |
"Late (31-120 days) 2597 \n", | |
"\n", | |
"installment (301.628, 444.607] \\\n", | |
"loan_status \n", | |
"Charged Off 11723 \n", | |
"Current 154691 \n", | |
"Default 338 \n", | |
"Does not meet the credit policy. Status:Charged... 135 \n", | |
"Does not meet the credit policy. Status:Fully Paid 336 \n", | |
"Fully Paid 53641 \n", | |
"In Grace Period 1567 \n", | |
"Issued 2021 \n", | |
"Late (16-30 days) 594 \n", | |
"Late (31-120 days) 3085 \n", | |
"\n", | |
"installment (444.607, 587.586] \\\n", | |
"loan_status \n", | |
"Charged Off 8455 \n", | |
"Current 110012 \n", | |
"Default 243 \n", | |
"Does not meet the credit policy. Status:Charged... 76 \n", | |
"Does not meet the credit policy. Status:Fully Paid 200 \n", | |
"Fully Paid 33307 \n", | |
"In Grace Period 1233 \n", | |
"Issued 1485 \n", | |
"Late (16-30 days) 444 \n", | |
"Late (31-120 days) 2210 \n", | |
"\n", | |
"installment (587.586, 730.565] \\\n", | |
"loan_status \n", | |
"Charged Off 4878 \n", | |
"Current 67257 \n", | |
"Default 128 \n", | |
"Does not meet the credit policy. Status:Charged... 34 \n", | |
"Does not meet the credit policy. Status:Fully Paid 102 \n", | |
"Fully Paid 20706 \n", | |
"In Grace Period 763 \n", | |
"Issued 915 \n", | |
"Late (16-30 days) 278 \n", | |
"Late (31-120 days) 1282 \n", | |
"\n", | |
"installment (730.565, 873.544] \\\n", | |
"loan_status \n", | |
"Charged Off 2655 \n", | |
"Current 42772 \n", | |
"Default 77 \n", | |
"Does not meet the credit policy. Status:Charged... 42 \n", | |
"Does not meet the credit policy. Status:Fully Paid 67 \n", | |
"Fully Paid 11373 \n", | |
"In Grace Period 466 \n", | |
"Issued 655 \n", | |
"Late (16-30 days) 146 \n", | |
"Late (31-120 days) 797 \n", | |
"\n", | |
"installment (873.544, 1016.523] \\\n", | |
"loan_status \n", | |
"Charged Off 1791 \n", | |
"Current 19674 \n", | |
"Default 46 \n", | |
"Does not meet the credit policy. Status:Charged... 11 \n", | |
"Does not meet the credit policy. Status:Fully Paid 23 \n", | |
"Fully Paid 5974 \n", | |
"In Grace Period 294 \n", | |
"Issued 315 \n", | |
"Late (16-30 days) 119 \n", | |
"Late (31-120 days) 523 \n", | |
"\n", | |
"installment (1016.523, 1159.502] \\\n", | |
"loan_status \n", | |
"Charged Off 585 \n", | |
"Current 10018 \n", | |
"Default 18 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 2797 \n", | |
"In Grace Period 144 \n", | |
"Issued 193 \n", | |
"Late (16-30 days) 42 \n", | |
"Late (31-120 days) 199 \n", | |
"\n", | |
"installment (1159.502, 1302.481] \\\n", | |
"loan_status \n", | |
"Charged Off 582 \n", | |
"Current 7437 \n", | |
"Default 18 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 2511 \n", | |
"In Grace Period 118 \n", | |
"Issued 126 \n", | |
"Late (16-30 days) 58 \n", | |
"Late (31-120 days) 212 \n", | |
"\n", | |
"installment (1302.481, 1445.46] \n", | |
"loan_status \n", | |
"Charged Off 96 \n", | |
"Current 194 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 196 \n", | |
"In Grace Period 8 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 4 \n", | |
"Late (31-120 days) 19 " | |
] | |
}, | |
"execution_count": 32, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],pd.cut(data['installment'],10)) # Divide the installment data into 10 bins" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>emp_title</th>\n", | |
" <th>False</th>\n", | |
" <th>True</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>41808</td>\n", | |
" <td>3440</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>566347</td>\n", | |
" <td>35432</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>1140</td>\n", | |
" <td>79</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>711</td>\n", | |
" <td>50</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>1880</td>\n", | |
" <td>108</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>197235</td>\n", | |
" <td>10488</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>5981</td>\n", | |
" <td>272</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>7823</td>\n", | |
" <td>637</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>2195</td>\n", | |
" <td>162</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>10802</td>\n", | |
" <td>789</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"emp_title False True \n", | |
"loan_status \n", | |
"Charged Off 41808 3440\n", | |
"Current 566347 35432\n", | |
"Default 1140 79\n", | |
"Does not meet the credit policy. Status:Charged... 711 50\n", | |
"Does not meet the credit policy. Status:Fully Paid 1880 108\n", | |
"Fully Paid 197235 10488\n", | |
"In Grace Period 5981 272\n", | |
"Issued 7823 637\n", | |
"Late (16-30 days) 2195 162\n", | |
"Late (31-120 days) 10802 789" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],data['emp_title'].isnull())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"`emp_title` is null still `loan_status` has many variations and so now not using this features" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>purpose</th>\n", | |
" <th>car</th>\n", | |
" <th>credit_card</th>\n", | |
" <th>debt_consolidation</th>\n", | |
" <th>educational</th>\n", | |
" <th>home_improvement</th>\n", | |
" <th>house</th>\n", | |
" <th>major_purchase</th>\n", | |
" <th>medical</th>\n", | |
" <th>moving</th>\n", | |
" <th>other</th>\n", | |
" <th>renewable_energy</th>\n", | |
" <th>small_business</th>\n", | |
" <th>vacation</th>\n", | |
" <th>wedding</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>448</td>\n", | |
" <td>7826</td>\n", | |
" <td>27599</td>\n", | |
" <td>56</td>\n", | |
" <td>2269</td>\n", | |
" <td>286</td>\n", | |
" <td>874</td>\n", | |
" <td>569</td>\n", | |
" <td>425</td>\n", | |
" <td>2936</td>\n", | |
" <td>54</td>\n", | |
" <td>1371</td>\n", | |
" <td>270</td>\n", | |
" <td>265</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>4937</td>\n", | |
" <td>149835</td>\n", | |
" <td>356239</td>\n", | |
" <td>1</td>\n", | |
" <td>34980</td>\n", | |
" <td>1854</td>\n", | |
" <td>10308</td>\n", | |
" <td>5324</td>\n", | |
" <td>3121</td>\n", | |
" <td>26607</td>\n", | |
" <td>282</td>\n", | |
" <td>5020</td>\n", | |
" <td>2946</td>\n", | |
" <td>325</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>10</td>\n", | |
" <td>233</td>\n", | |
" <td>790</td>\n", | |
" <td>0</td>\n", | |
" <td>47</td>\n", | |
" <td>7</td>\n", | |
" <td>14</td>\n", | |
" <td>15</td>\n", | |
" <td>11</td>\n", | |
" <td>65</td>\n", | |
" <td>0</td>\n", | |
" <td>19</td>\n", | |
" <td>8</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>13</td>\n", | |
" <td>69</td>\n", | |
" <td>292</td>\n", | |
" <td>32</td>\n", | |
" <td>71</td>\n", | |
" <td>11</td>\n", | |
" <td>23</td>\n", | |
" <td>22</td>\n", | |
" <td>15</td>\n", | |
" <td>121</td>\n", | |
" <td>1</td>\n", | |
" <td>72</td>\n", | |
" <td>6</td>\n", | |
" <td>13</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>51</td>\n", | |
" <td>271</td>\n", | |
" <td>808</td>\n", | |
" <td>65</td>\n", | |
" <td>143</td>\n", | |
" <td>33</td>\n", | |
" <td>100</td>\n", | |
" <td>36</td>\n", | |
" <td>31</td>\n", | |
" <td>303</td>\n", | |
" <td>2</td>\n", | |
" <td>89</td>\n", | |
" <td>13</td>\n", | |
" <td>43</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>3198</td>\n", | |
" <td>42250</td>\n", | |
" <td>120764</td>\n", | |
" <td>269</td>\n", | |
" <td>12660</td>\n", | |
" <td>1366</td>\n", | |
" <td>5391</td>\n", | |
" <td>2285</td>\n", | |
" <td>1603</td>\n", | |
" <td>11341</td>\n", | |
" <td>213</td>\n", | |
" <td>3375</td>\n", | |
" <td>1318</td>\n", | |
" <td>1690</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>40</td>\n", | |
" <td>1150</td>\n", | |
" <td>3998</td>\n", | |
" <td>0</td>\n", | |
" <td>367</td>\n", | |
" <td>37</td>\n", | |
" <td>125</td>\n", | |
" <td>56</td>\n", | |
" <td>43</td>\n", | |
" <td>310</td>\n", | |
" <td>8</td>\n", | |
" <td>79</td>\n", | |
" <td>37</td>\n", | |
" <td>3</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>81</td>\n", | |
" <td>2071</td>\n", | |
" <td>4796</td>\n", | |
" <td>0</td>\n", | |
" <td>493</td>\n", | |
" <td>37</td>\n", | |
" <td>184</td>\n", | |
" <td>91</td>\n", | |
" <td>52</td>\n", | |
" <td>480</td>\n", | |
" <td>6</td>\n", | |
" <td>112</td>\n", | |
" <td>57</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>15</td>\n", | |
" <td>381</td>\n", | |
" <td>1510</td>\n", | |
" <td>0</td>\n", | |
" <td>137</td>\n", | |
" <td>15</td>\n", | |
" <td>51</td>\n", | |
" <td>17</td>\n", | |
" <td>23</td>\n", | |
" <td>136</td>\n", | |
" <td>0</td>\n", | |
" <td>50</td>\n", | |
" <td>22</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>70</td>\n", | |
" <td>2096</td>\n", | |
" <td>7419</td>\n", | |
" <td>0</td>\n", | |
" <td>662</td>\n", | |
" <td>61</td>\n", | |
" <td>207</td>\n", | |
" <td>125</td>\n", | |
" <td>90</td>\n", | |
" <td>595</td>\n", | |
" <td>9</td>\n", | |
" <td>190</td>\n", | |
" <td>59</td>\n", | |
" <td>8</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"purpose car credit_card \\\n", | |
"loan_status \n", | |
"Charged Off 448 7826 \n", | |
"Current 4937 149835 \n", | |
"Default 10 233 \n", | |
"Does not meet the credit policy. Status:Charged... 13 69 \n", | |
"Does not meet the credit policy. Status:Fully Paid 51 271 \n", | |
"Fully Paid 3198 42250 \n", | |
"In Grace Period 40 1150 \n", | |
"Issued 81 2071 \n", | |
"Late (16-30 days) 15 381 \n", | |
"Late (31-120 days) 70 2096 \n", | |
"\n", | |
"purpose debt_consolidation \\\n", | |
"loan_status \n", | |
"Charged Off 27599 \n", | |
"Current 356239 \n", | |
"Default 790 \n", | |
"Does not meet the credit policy. Status:Charged... 292 \n", | |
"Does not meet the credit policy. Status:Fully Paid 808 \n", | |
"Fully Paid 120764 \n", | |
"In Grace Period 3998 \n", | |
"Issued 4796 \n", | |
"Late (16-30 days) 1510 \n", | |
"Late (31-120 days) 7419 \n", | |
"\n", | |
"purpose educational \\\n", | |
"loan_status \n", | |
"Charged Off 56 \n", | |
"Current 1 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 32 \n", | |
"Does not meet the credit policy. Status:Fully Paid 65 \n", | |
"Fully Paid 269 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"purpose home_improvement house \\\n", | |
"loan_status \n", | |
"Charged Off 2269 286 \n", | |
"Current 34980 1854 \n", | |
"Default 47 7 \n", | |
"Does not meet the credit policy. Status:Charged... 71 11 \n", | |
"Does not meet the credit policy. Status:Fully Paid 143 33 \n", | |
"Fully Paid 12660 1366 \n", | |
"In Grace Period 367 37 \n", | |
"Issued 493 37 \n", | |
"Late (16-30 days) 137 15 \n", | |
"Late (31-120 days) 662 61 \n", | |
"\n", | |
"purpose major_purchase medical \\\n", | |
"loan_status \n", | |
"Charged Off 874 569 \n", | |
"Current 10308 5324 \n", | |
"Default 14 15 \n", | |
"Does not meet the credit policy. Status:Charged... 23 22 \n", | |
"Does not meet the credit policy. Status:Fully Paid 100 36 \n", | |
"Fully Paid 5391 2285 \n", | |
"In Grace Period 125 56 \n", | |
"Issued 184 91 \n", | |
"Late (16-30 days) 51 17 \n", | |
"Late (31-120 days) 207 125 \n", | |
"\n", | |
"purpose moving other \\\n", | |
"loan_status \n", | |
"Charged Off 425 2936 \n", | |
"Current 3121 26607 \n", | |
"Default 11 65 \n", | |
"Does not meet the credit policy. Status:Charged... 15 121 \n", | |
"Does not meet the credit policy. Status:Fully Paid 31 303 \n", | |
"Fully Paid 1603 11341 \n", | |
"In Grace Period 43 310 \n", | |
"Issued 52 480 \n", | |
"Late (16-30 days) 23 136 \n", | |
"Late (31-120 days) 90 595 \n", | |
"\n", | |
"purpose renewable_energy \\\n", | |
"loan_status \n", | |
"Charged Off 54 \n", | |
"Current 282 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 1 \n", | |
"Does not meet the credit policy. Status:Fully Paid 2 \n", | |
"Fully Paid 213 \n", | |
"In Grace Period 8 \n", | |
"Issued 6 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 9 \n", | |
"\n", | |
"purpose small_business vacation \\\n", | |
"loan_status \n", | |
"Charged Off 1371 270 \n", | |
"Current 5020 2946 \n", | |
"Default 19 8 \n", | |
"Does not meet the credit policy. Status:Charged... 72 6 \n", | |
"Does not meet the credit policy. Status:Fully Paid 89 13 \n", | |
"Fully Paid 3375 1318 \n", | |
"In Grace Period 79 37 \n", | |
"Issued 112 57 \n", | |
"Late (16-30 days) 50 22 \n", | |
"Late (31-120 days) 190 59 \n", | |
"\n", | |
"purpose wedding \n", | |
"loan_status \n", | |
"Charged Off 265 \n", | |
"Current 325 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 13 \n", | |
"Does not meet the credit policy. Status:Fully Paid 43 \n", | |
"Fully Paid 1690 \n", | |
"In Grace Period 3 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 8 " | |
] | |
}, | |
"execution_count": 34, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],data['purpose'])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### When people says `purpose` ~ *other* , mostly `loan_status` are in *current* or *Fully Paid*" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>dti</th>\n", | |
" <th>(-9.999, 999.9]</th>\n", | |
" <th>(999.9, 1999.8]</th>\n", | |
" <th>(1999.8, 2999.7]</th>\n", | |
" <th>(2999.7, 3999.6]</th>\n", | |
" <th>(3999.6, 4999.5]</th>\n", | |
" <th>(4999.5, 5999.4]</th>\n", | |
" <th>(5999.4, 6999.3]</th>\n", | |
" <th>(6999.3, 7999.2]</th>\n", | |
" <th>(7999.2, 8999.1]</th>\n", | |
" <th>(8999.1, 9999]</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>loan_status</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Charged Off</th>\n", | |
" <td>45248</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Current</th>\n", | |
" <td>601776</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Default</th>\n", | |
" <td>1219</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Charged Off</th>\n", | |
" <td>761</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Does not meet the credit policy. Status:Fully Paid</th>\n", | |
" <td>1988</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fully Paid</th>\n", | |
" <td>207723</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>In Grace Period</th>\n", | |
" <td>6253</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Issued</th>\n", | |
" <td>8460</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (16-30 days)</th>\n", | |
" <td>2357</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Late (31-120 days)</th>\n", | |
" <td>11591</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"dti (-9.999, 999.9] \\\n", | |
"loan_status \n", | |
"Charged Off 45248 \n", | |
"Current 601776 \n", | |
"Default 1219 \n", | |
"Does not meet the credit policy. Status:Charged... 761 \n", | |
"Does not meet the credit policy. Status:Fully Paid 1988 \n", | |
"Fully Paid 207723 \n", | |
"In Grace Period 6253 \n", | |
"Issued 8460 \n", | |
"Late (16-30 days) 2357 \n", | |
"Late (31-120 days) 11591 \n", | |
"\n", | |
"dti (999.9, 1999.8] \\\n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 1 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"dti (1999.8, 2999.7] \\\n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 0 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"dti (2999.7, 3999.6] \\\n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 0 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"dti (3999.6, 4999.5] \\\n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 0 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"dti (4999.5, 5999.4] \\\n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 0 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"dti (5999.4, 6999.3] \\\n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 0 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"dti (6999.3, 7999.2] \\\n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 0 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"dti (7999.2, 8999.1] \\\n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 0 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 \n", | |
"\n", | |
"dti (8999.1, 9999] \n", | |
"loan_status \n", | |
"Charged Off 0 \n", | |
"Current 2 \n", | |
"Default 0 \n", | |
"Does not meet the credit policy. Status:Charged... 0 \n", | |
"Does not meet the credit policy. Status:Fully Paid 0 \n", | |
"Fully Paid 0 \n", | |
"In Grace Period 0 \n", | |
"Issued 0 \n", | |
"Late (16-30 days) 0 \n", | |
"Late (31-120 days) 0 " | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.crosstab(data['loan_status'],pd.cut(data['dti'],10))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### dti\n", | |
"A ratio calculated using the borrower’s total monthly debt payments on the total debt obligations, excluding mortgage and the requested LC loan, divided by the borrower’s self-reported monthly income." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"features = ['annual_inc','title','delinq_2yrs','revol_util','collections_12_mths_ex_med','acc_now_delinq','home_ownership',\n", | |
" 'funded_amnt','funded_amnt_inv','term','int_rate','installment','grade','verification_status','purpose','dti',\n", | |
" 'open_acc','pub_rec','revol_bal','total_acc','initial_list_status','out_prncp','out_prncp_inv','total_pymnt',\n", | |
" 'total_pymnt_inv','total_rec_prncp','total_rec_int','total_rec_late_fee','recoveries','collection_recovery_fee',\n", | |
" 'last_pymnt_amnt','last_credit_pull_d','application_type','tot_coll_amt','tot_cur_bal','total_rev_hi_lim']\n", | |
"\n", | |
"new_features = features + ['loan_status']" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"In all other 73 features, I considered these 36 features for model building " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"data[new_features].to_csv('rich_features.csv') # Saving a new file after Data Exploration" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 2. Model Building" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"data = pd.read_csv('rich_features.csv') # loading a rich features file" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"var_mod = ['title','delinq_2yrs','acc_now_delinq','home_ownership','term','grade','verification_status','purpose',\n", | |
" 'initial_list_status','last_credit_pull_d','application_type','loan_status']\n", | |
"le = LabelEncoder()\n", | |
"# To encode categorical variable into numerical \n", | |
"for i in var_mod:\n", | |
" data[i] = le.fit_transform(data[i])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### 5-fold cross validation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Accuracy: 95.59% Std.Dev. (1.48%)\n", | |
"min: 0.927, mean: 0.956, max: 0.966\n", | |
"Wall time: 1h 20min 1s\n" | |
] | |
} | |
], | |
"source": [ | |
"%%time\n", | |
"from sklearn.cross_validation import cross_val_score\n", | |
"from xgboost import XGBClassifier\n", | |
"\n", | |
"model = XGBClassifier()\n", | |
"results = cross_val_score(model, data[features], data['loan_status'], cv=5, n_jobs=4)\n", | |
"print(\"Accuracy: %.2f%% Std.Dev. (%.2f%%)\" % (results.mean()*100, results.std()*100))\n", | |
"print(\"min: {:.3f}, mean: {:.3f}, max: {:.3f}\".format(\n", | |
" results.min(), results.mean(), results.max()))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 0.95899256, 0.92674585, 0.96417001, 0.96634418, 0.96307002])" | |
] | |
}, | |
"execution_count": 41, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results # all the 5-fold results" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Parameter Tuning" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Wall time: 3h 12min 26s\n" | |
] | |
} | |
], | |
"source": [ | |
"%%time\n", | |
"\n", | |
"params = {\n", | |
" 'learning_rate': [0.05, 0.1, 0.5]\n", | |
"}\n", | |
"gs = GridSearchCV(model, params, cv=4, scoring='accuracy', n_jobs=4)\n", | |
"gs.fit(data[features], data['loan_status'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[mean: 0.95412, std: 0.01485, params: {'learning_rate': 0.1},\n", | |
" mean: 0.95127, std: 0.01446, params: {'learning_rate': 0.05},\n", | |
" mean: 0.91808, std: 0.06100, params: {'learning_rate': 0.5}]" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sorted(gs.grid_scores_, key=lambda x: x.mean_validation_score, reverse=True)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Split data into train and test" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(665534, 36)\n", | |
"(221845, 36)\n", | |
"(665534L,)\n", | |
"(221845L,)\n" | |
] | |
} | |
], | |
"source": [ | |
"X_train, X_test, y_train, y_test = train_test_split(data[features],data['loan_status'], random_state=1) \n", | |
"# By default divide the test dataset in 25%\n", | |
"print(X_train.shape)\n", | |
"print(X_test.shape)\n", | |
"print(y_train.shape)\n", | |
"print(y_test.shape)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### Model build on train and check on test data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Accuracy: 96.56156%\n", | |
"[ 0.01633215 0.00491932 0.01534829 0.01436442 0. 0.\n", | |
" 0.00609996 0.01751279 0.03896104 0.00924833 0.14010233 0.01908697\n", | |
" 0.02321921 0.00550964 0.0021645 0.00826446 0.00393546 0.00157418\n", | |
" 0.02144825 0.0116096 0.00688705 0.17965367 0.0210547 0.01357733\n", | |
" 0.01200315 0.05588351 0.05332546 0.0515545 0.03423849 0.00413223\n", | |
" 0.09681228 0.04368359 0. 0.00236128 0.04388036 0.02125148]\n", | |
"Wall time: 14min 30s\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA30AAAJlCAYAAABueJv7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt0VIW99vFnZwYSwwRMWIkt6IEQibblNAJe8BIaQHoi\ndaktpE3kUirqUo4eiigcQIkgMFwUaItB8FIKWmOxSIH2VBsgtEbkkhoxCqhgEAG5JSSZZDQkM+8f\nvozGJEzCzN5JNt/PWmetmX159s85SPt03wy/3+8XAAAAAMCWIlp7AAAAAACAeSh9AAAAAGBjlD4A\nAAAAsDFKHwAAAADYGKUPAAAAAGyM0gcAAAAANuZs7QEAABeOK6+8UsnJyYqI+Op/czQMQ3369NET\nTzxxXnnvvfeeXn31Vc2cOTOcY9Zz5ZVX6u2339bFF19s2jEas2bNGtXW1iorK8vS4wIA7IfSBwCw\njGEYWr16tbp06RKWvI8++kjHjh0LS1ZTDMMwNb8p//73v5WcnNwqxwYA2AulDwBgGb/fL7/f3+i6\n/fv3a+7cuTp9+rR8Pp9GjRql4cOHy+/3a+7cudq9e7eqqqrk9/s1e/Zsffe739Xvfvc7eTweTZs2\nTXfccYeeeOIJbdiwQZK0Y8eOwPelS5fqnXfe0YkTJ3TllVdqwYIFeuaZZ/TGG2/I7/ere/fuys7O\nVnx8fKMzS9Lhw4f1y1/+UgMGDFBRUZFqa2s1efJkvfLKKzpw4ID69OmjxYsX6/Dhwxo9erSuvfZa\n7d27V5L06KOP6uqrr1Ztba3mzZunbdu2yeFwKCUlRVOnTlV0dLQGDx6slJQUffjhh5o4caI2b96s\nt956S5GRkfqv//ovzZgxQ6dOndLJkyfVrVs3LVmyRHFxcRo8eLB+9rOfadu2bTp69KhuueUWPfLI\nI5KkV199VStXrpTD4VBsbKzmzZun73znO9qyZYuWLVum2tpaRUVFafLkybrqqqt04MABTZ8+XTU1\nNfL7/RoxYoTuvPNOM/4oAAAsROkDAFhqzJgxcjgc8vv9MgxDzz//vLp06aIJEyZo4cKF+t73vieP\nx6Nf/OIX6t27t3w+n06cOKFXXnlFkrRixQqtWLFCy5Yt0//8z//o9ddf19y5c7Vjx45zHvfo0aP6\n61//KsMwtG7dOn344Yd69dVXFRERoT/96U+aPn26VqxYcc6Mzz77TDfffLNmz56txx9/XHPnztX6\n9evldDo1ZMgQFRUVKT4+XkeOHNHAgQM1b948/fOf/9TEiROVn5+vnJwcHT9+XBs2bFBERISmTZum\nBQsW6PHHH5ckJScna/HixZKkTZs2KTk5WXfeeadWrVqlvn376u6775Yk3XvvvVq/fr3Gjh0rSaqu\nrtZLL72kY8eO6cc//rHuvPNOVVZW6qmnntK6det0ySWXaNWqVXrmmWf0q1/9SosWLdKLL76oLl26\n6OOPP9bYsWOVl5en559/XoMHD9Y999yjkydPyu12U/oAwAYofQAASzV2eef+/fv16aefatq0aYEz\na19++aU++OADZWZmasKECXr55Zf16aefaseOHXK5XC0+bkpKSuBSzfz8fL333nv62c9+Jkny+Xz6\n8ssvg2Z06NBBaWlpkqT/+I//UN++fRUdHS1JSkhIUHl5ueLj49WlSxcNGzZMkjRw4EA5nU7t3btX\n//rXv/TQQw8F7mkcPXq0/vu//zuQf/XVVzd63DFjxmjXrl1auXKlSkpK9PHHHyslJSWwfsiQIZKk\nSy65RF27dlV5ebl27Nih1NRUXXLJJYEMSfrjH/+okydPauzYsYHf2ul06uDBgxo6dKimTJmi3bt3\n6/rrr9f06dOb8csCANo6Sh8AwFKNXd5ZV1enzp0767XXXgssO3XqlGJiYpSfn6+5c+fqrrvu0s03\n36xevXoFLuH8pm/fe3fmzJl63zt16hT47PP5dM899ygzMzOwbXl5edDZO3ToUO+709n4f4x+e3ld\nXZ0cDod8Pl+D5bW1tYHvZwvkty1cuFDFxcUaPny4BgwYoNra2nq/Y1RUVL3t/X6/HA5Hvd/kyy+/\n1OHDh+Xz+XT99ddr0aJFgXWff/65LrnkEl1xxRV64403VFBQoLfffltPP/20cnNzddlllzU6FwCg\nfeCVDQCAVpeYmKjIyEitX79e0leXYt566616//339dZbb2nw4MHKzMxUnz59tGnTpkB5cjgcgdIU\nFxenI0eOqLS0VH6/X3l5eU0e76abbtKaNWvk8XgkSUuWLNGUKVOCztnU/YjfdurUKb355puSpM2b\nN6tDhw664oordNNNN+nll19WbW2tfD6f/vjHP+rGG29sNMPhcASKa0FBgX75y1/qtttuU2xsrN56\n660GBfLbrrvuOr311ls6efKkJOnll1/Wk08+qeuvv14FBQU6cOCAJGnr1q26/fbb9eWXX2rSpEn6\n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\nY+LjY8KSQ3bbyCfb+nyyrc8n2/p8sq3PJ9v6fLKtzyfb+vy2lH2ugmhq6Rs6dKgKCgqUmZkpSXK7\n3dq4caO8Xq8yMjIC2xmGEficlpamXbt2acSIEYGnf35zPQAAAACg+UwtfYZhaObMmfWWJSYmNthu\n1apV9b4//PDDZo4FAAAAABcMXs4OAAAAADZG6QMAAAAAG6P0AQAAAICNUfoAAAAAwMYofQAAAABg\nY5Q+AAAAALAxSh8AAAAA2BilDwAAAABsjNIHAAAAADZG6QMAAAAAG6P0AQAAAICNUfoAAAAAwMYo\nfQAAAABgY5Q+AAAAALAxSh8AAAAA2BilDwAAAABsjNIHAAAAADZG6QMAAAAAG6P0AQAAAICNUfoA\nAAAAwMYofQAAAABgY5Q+AAAAALAxSh8AAAAA2BilDwAAAABsjNIHAAAAADZG6QMAAAAAG6P0AQAA\nAICNUfoAAAAAwMYofQAAAABgY5Q+AAAAALAxSh8AAAAA2BilDwAAAABsjNIHAAAAADZG6QMAAAAA\nG6P0AQAAAICNUfoAAAAAwMYofQAAAABgY5Q+AAAAALAxSh8AAAAA2BilDwAAAABsjNIHAAAAADZG\n6QMAAAAAGzO19Pn9fmVnZyszM1NjxozRoUOHGmzj9XqVlZWlTz75pN7yU6dOKS0trcFyAAAAAEDz\nmVr68vLyVFNTo9zcXE2aNElut7ve+uLiYo0aNapBGaytrVV2draioqLMHA8AAAAAbM/U0ldYWKjU\n1FRJUkpKioqLi+utP3PmjHJyctSrV696y+fPn6+srCwlJCSYOR4AAAAA2J7TzHCPx6OYmJivD+Z0\nyufzKSLiq67Zt29fSV9dBnrW2rVr1bVrV91444165plnzBzvvNXV1amk5ECj68rKXCot9TRY3rNn\nLzkcDrNHAwAAAIB6TC19LpdLVVVVge/fLHxNWbt2rQzDUEFBgfbu3aspU6Zo2bJl6tq1a5P7xMZG\ny+msX6jKylwtmjUuzqX4+JjgG0r68MMPNWHhekV3ad6ZyOry41rtvlPJycktmqkxzZ3xQso2O59s\n6/PJtj6fbOvzybY+n2zr88m2Pp9s6/PbQ7appa9fv37asmWL0tPTVVRU1KzS8+KLLwY+jx49WrNm\nzTpn4ZOksrLqBssaO9t2LqWlHp04UdnsbaO7JMgV292U/KbEx8eEnGG3bLPzybY+n2zr88m2Pp9s\n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\nneB+QZwPSh8AAADQTph5vyCF0r4ofQAAAEA7Ytb9gmY/gMbMJ6bi3EwtfX6/X48//rj27dunjh07\nas6cObrssssC6zdv3qycnBw5nU4NHz5cGRkZQfcBAAAAYA4zH0Bj5hNTcW6mlr68vDzV1NQoNzdX\n7777rtxut3JyciRJtbW1mjdvntauXavIyEhlZWVpyJAhKiwsbHIfAAAAAO0XTzVtHaaWvsLCQqWm\npkqSUlJSVFxcHFi3f/9+9ejRQy6XS5J09dVXa8eOHSoqKmpyHwAAAABAy5ha+jwej2JiYr4+mNMp\nn8+niIiIBuuio6NVWVmpqqqqJvdpqery42Hd7nz3aWl+e81uyT785uHJbsk+/ObhyW7JPvzm4clu\nyT785uHJbsk+/ObhyW7JPvzm4cluyT785uHJbsk+55O9f/9HjS5v6p7Bllw62l6zzzL8fr+/xXs1\n07x583TVVVcpPT1dkpSWlqb8/HxJ0r59+/TUU09pxYoVkiS3263+/fvrnXfeUUpKSqP7AAAAAABa\nxtSXs/fr109bt26VJBUVFSk5OTmwLikpSQcPHlRFRYVqamq0a9cuXXXVVerbt2+T+wAAAAAAWsbU\nM33ffBKn9NXZvPfff19er1cZGRnKz8/X0qVL5ff7NWLECGVlZTW6T2JiolkjAgAAAICtmVr6AAAA\nAACty9TLOwEAAAAArYvSBwAAAAA2RukDAAAAABuj9AEAAACAjVH6AAAAAMDGLpjSt2fPHv3tb38L\nvAoi3EpKSrR161Z9/vnn4oGoaA179+5t7RFCEu5/h2pqapr8v/aitrbWtOzPP/+83vcDBw6Ydqz2\n6ujRo609QrN9+89KRUVF2LL/8Ic/qLy8PGx533b2z+J7771n2jHC6exv3Z7/bmnPzP7vW6dPnw57\n5llm/VnfsmVLve9/+9vfwpoP63k8Hu3du1fV1dVhy7wgXtmwePFibd++XT/84Q+1e/du3Xzzzbr7\n7rvDlv/iiy/qH//4h8rLy3XHHXfo008/1YwZM8KSPWvWrHpZkydP1oIFC8KS/e9//1szZ87UqVOn\nlJCQoNmzZ+v73/9+SJl1dXWqq6vTQw89pMWLF8vv98vv9+uee+7RqlWrwjK3x+PRs88+q+PHj2vQ\noEG64oor1KNHj5Bz33zzzSbX3XTTTSFlDx48WIZhBL47nU7V1taqY8eO+r//+7+Qss+67777dPr0\naf3sZz/Trbfequjo6LDknrV37155vV5FRERo0aJFuu+++3T99deHJduMf4fO/ubf/ivOMAxt2rQp\npOyzFi9erFdffbXe/2/P9eeopW655RYNGjRIGRkZYXtf6Ycffqhjx47pySef1COPPCLpq39vFy1a\npL/85S9hOYaZf299+umn2r17t2699VY99dRT+sUvfqFLL700LNmS9Nxzz6lz586qqKjQ2rVrlZqa\nqqlTp4aU+dBDD9X7M/JNTz31VEjZJ06ckMfj0ZQpU7RgwQL5/X75fD5NmTJFr776akjZZ73wwgva\nuHGjEhMT9fOf/1zXXXddWHIlacaMGerRo4fGjRun2bNnS5IeffTRsOUfOnRIW7Zs0ZdffhlYds89\n94SUOWnSJD311FMN/o4J598tknTs2DFVVlbK4XDo2Wef1ejRo/W9730vLNlm/Of/WWbObeZ/39qx\nY4dmzZqluro6paenq1u3bv+PvTOPqzH9///roMUSSaJGoiPCp2z1sY9JlobI0oJKYx0URqQSEZKl\nyKAsHyOSStZGhtGYkWWQjCRmIklUokWi9XT//uh3398OxYz7fUVTz8djHqPjMe9zzek61329t9cb\nVlZWJLYBNnv9119/xc2bNxEVFQVzc3MAFef5+fPnye4Wz549w6ZNm5CTkwMzMzN06dIFPXr0ILEN\nAOfPn8edO3ewYMECzJgxA9OmTRN95+LZvn17tX/n5OT0UTb5tZWWlqKwsBCamprIzMxEq1atcP78\n+Y+y+TZnzpzBzp07hb0okUgwb9488Ya5OsD48eM5mUzGcRzHlZWVcRMnTiS1P2nSJE4mk3F2dnYc\nx3HchAkTRNs8ePAgN3DgQK579+7cwIEDuYEDB3IDBgzgpk6dKto2z/jx47n79+9zHMdxf/31F2dj\nYyPaZnh4OGdiYsIZGBhwQ4cO5UxMTDhTU1PO1dVVtG2e+fPncxEREdzkyZO5uLg4ztbWlsSum5tb\ntf+Ipbi4mCsqKuLc3d25+Ph4juM4LjExkfPw8BBtuzJZWVncnj17OBsbG27ZsmWktm1sbLg7d+5w\n3377LffHH39wU6ZMIbPN4jtUE1hYWHDFxcXM7BcXF3M//fQTN3v2bM7BwYE7efKkaJuxsbGcm5sb\nN3DgQGF/u7u7c2FhYaJt18S5ZWNjw/3xxx8cx3Hc9evXSW1zHMdZWVlxxcXFnL29PcdxnPBvMVy7\n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\ncPXqVQCATqdDYmKixInMY9FHREREREQ0SHq9HhEREQCAlStXor6+XuJE5rHoIyIiIiIiGiRBEKDT\n6QAAtbW1uH//vsSJzOOZPiIiIiIiokG6fPkytm7disbGRsjlcqSmpsLPz0/qWANi0UdERERERDQE\nBoMBt27dglKphKurq9RxzOKVDURERERERIN05swZZGVloaenB2FhYRAEAXFxcVLHGhDP9BERERER\nEQ3SkSNHUFhYCHd3d8TFxUGr1UodySwWfURERERERIPk6OgImUwGQRAgCAJGjRoldSSzWPQRERER\nEREN0pw5c5CQkAC9Xo/k5GSbb+ICsJELERERERHRkJw/fx7V1dVQqVQIDg6WOo5ZLPqIiIiIiIjM\nKCgoeOLvoqKihjHJ0LF7JxERERERkRkNDQ1SR3hqXOkjIiIiIiIyQ6fTPfF33t7ew5hk6Fj0ERER\nERERmREbGwtBEGAsn4z/FgQB2dnZEqcbGIs+IiIiIiKiIWhubkZdXR2mTJmC8ePHSx3HLF7ZQERE\nRERENEinT59GdHQ0Dh48iKioKJw4cULqSGaxkQsREREREdEgaTQaFBcXw9XVFa2trVi+fDnCw8Ol\njjUgrvQRERERERENkiAIcHV1BQC4ubnBxcVF4kTmcaWPiIiIiIhokJRKJXbt2oWAgABcunQJXl5e\nUkcyiyt9REREREREgxQVFYXnn38eFy5cQHFxMWJiYqSOZBa7dxIREREREQ1SREQE9uzZAy8vL9TV\n1SExMRE5OTlSxxoQV/qIiIiIiIgGydnZ2bSlU6lUwsHB9ksqnukjIiIiIiIaJE9PT2RkZGD27Nm4\ncuUK5HK51JHM4vZOIiIiIiKiQero6EBeXh50Oh1UKhWio6Mhk8mkjjUgFn1ERERERETPMNvfgEpE\nRERERERPjUUfERERERHRM4xFHxERERER0TOMRR8REREREdEzjEUfERERERHRM+z/AElHes78+AeS\nAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x2cea57f0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%%time\n", | |
"\n", | |
"model = XGBClassifier()\n", | |
"model.fit(X_train,y_train)\n", | |
"pred = model.predict(X_test)\n", | |
"\n", | |
"accuracy = metrics.accuracy_score(y_test, pred)\n", | |
"print(\"Accuracy: %.5f%%\" % (accuracy * 100.0))\n", | |
"print model.feature_importances_\n", | |
"\n", | |
"feature = pd.DataFrame(model.feature_importances_,features)\n", | |
"feature = feature.sort_values(by=0,ascending=False)\n", | |
"\n", | |
"feature.plot(kind='bar', title='Feature Importances',figsize=(15,8))\n", | |
"plt.ylabel('Feature Importance Score')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### It shows `out_pmcp, int_rate, last_pymnt_amnt` are more important features in deciding `loan_status`." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"class_names = ['Charged Off', 'Current', 'Default','Does not meet the credit policy. Status:Charged Off',\n", | |
" 'Does not meet the credit policy. Status:Fully Paid','Fully Paid','In Grace Period', 'Issued',\n", | |
" 'Late (16-30 days)','Late (31-120 days)']\n", | |
"# all classes of loan_status" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 53, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# function to plot confusion matrix\n", | |
"def plot_confusion_matrix(cm, classes,\n", | |
" normalize=False,\n", | |
" title='Confusion matrix',\n", | |
" cmap=plt.cm.Blues):\n", | |
" \"\"\"\n", | |
" This function prints and plots the confusion matrix.\n", | |
" Normalization can be applied by setting `normalize=True`.\n", | |
" \"\"\"\n", | |
" plt.imshow(cm, interpolation='nearest', cmap=cmap)\n", | |
" plt.title(title, y=-.08,fontweight=\"bold\")\n", | |
" plt.colorbar()\n", | |
" tick_marks = np.arange(len(classes))\n", | |
" plt.xticks(tick_marks, classes, rotation='vertical')\n", | |
" plt.yticks(tick_marks, classes)\n", | |
" plt.tick_params(labeltop = True,labelbottom = False)\n", | |
" \n", | |
" #plt.tight_layout()\n", | |
" plt.ylabel('True label')\n", | |
" plt.xlabel('Predicted label')\n", | |
"\n", | |
" if normalize:\n", | |
" cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n", | |
" print(\"Normalized confusion matrix\")\n", | |
" else:\n", | |
" print('Confusion matrix, without normalization')\n", | |
"\n", | |
" print(cm)\n", | |
"\n", | |
" thresh = cm.max() / 2.\n", | |
" for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n", | |
" plt.text(j, i, cm[i, j],\n", | |
" horizontalalignment=\"center\",\n", | |
" color=\"white\" if cm[i, j] > thresh else \"black\")\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 55, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
" precision recall f1-score support\n", | |
"\n", | |
" 0 0.99 0.97 0.98 11408\n", | |
" 1 0.96 1.00 0.98 150220\n", | |
" 2 0.00 0.00 0.00 311\n", | |
" 3 0.85 0.20 0.32 179\n", | |
" 4 0.62 0.14 0.22 518\n", | |
" 5 0.98 1.00 0.99 52024\n", | |
" 6 0.00 0.00 0.00 1572\n", | |
" 7 0.70 0.67 0.69 2136\n", | |
" 8 0.00 0.00 0.00 587\n", | |
" 9 0.70 0.01 0.02 2890\n", | |
"\n", | |
"avg / total 0.95 0.97 0.95 221845\n", | |
"\n", | |
"Confusion matrix, without normalization\n", | |
"[[ 11055 0 0 6 3 344 0 0 0 0]\n", | |
" [ 0 149608 0 0 0 19 0 584 0 9]\n", | |
" [ 0 311 0 0 0 0 0 0 0 0]\n", | |
" [ 130 0 0 35 10 4 0 0 0 0]\n", | |
" [ 0 0 0 0 70 448 0 0 0 0]\n", | |
" [ 11 0 0 0 30 51983 0 0 0 0]\n", | |
" [ 0 1559 0 0 0 3 0 7 0 3]\n", | |
" [ 0 700 0 0 0 0 0 1436 0 0]\n", | |
" [ 0 584 0 0 0 0 0 2 0 1]\n", | |
" [ 0 2850 0 0 0 1 0 9 0 30]]\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\nkxOtW7dm6NChAERFRbFp0yacnJwIDw+nSZMmN61Lk0MRERERETGuYnZBmrlz57JmzRrbpG/WrFm8\n/PLL+Pr6Eh4eztdff02HDh04cOAA8+bNo3z58rbbfvTRR9SvX5+hQ4eydu1aoqOjiYiIYMKECURF\nReHt7c2gQYNITk7GYrGwY8cOVqxYQXp6OsOGDWPlypU3rU09VhERERERETupWbMms2fPtn0fFRWF\nr68v2dnZnD59Gg8PD6xWK0ePHmXcuHEEBgayatUqAHbu3Enbtm0BaNu2LVu3bsVsNpOTk4O3tzcA\n/v7+bN68mZ07d9KmTRsAvLy8sFgsnDt37qa1qXMoIiIiIiLGVczOOXz00Uc5fvy47XuTyURaWhp9\n+/bFw8ODBg0acOHCBYKDg+nbty+5ubn07t2bRo0aYTabcXd3B8DNzY3MzEyysrJs265tT0lJoXTp\n0nm6jq6urpjNZjw9PW9YW/F6pERERERERP7HVK1alS+++IKAgACmTJmCq6srwcHBlCpVCjc3Nx54\n4AGSk5Px8PAgKysLgKysLDw8PHBzc8NsNtvuKysri3LlyuHu7m7b98/734wmhyIiIiIiYlwmk32/\n/qEXXniBo0ePAle7fg4ODhw5coTAwECsVis5OTns3LmTRo0a0aJFCzZt2gTApk2b8PPzw93dHRcX\nF1JSUrBarSQmJuLr60vz5s1JTEzEarWSlpaG1WrN00nMj5aVioiIiIiIFJFBgwYxevRoXFxcKFOm\nDP/+97+pVKkSzzzzDN26dcPZ2Zlnn30WHx8fqlWrRlhYGEFBQbi4uBAZGQnAxIkTeeWVV7BYLLRp\n08Z2VVJfX18CAgKwWq22K6LejMlqtVrvaFoRKfZO/p5jt7GqlHW223jlXJ3tMg5AaSe4lGu34ezC\niJlAuUoSI2YCY+YyYiYwZi57ZypdDFpRZZ6Msut4Fz8datfxCpOWlYqIiIiIiIiWlYqIiIiIiIEV\ns6uVFmd6pERERERERESTQxEREREREdGyUhERERERMbJb+PMS/6vUORQRERERERF1DkXEvn/ywZ7j\neba036WkL+6Osst457bb93LcIiIiJZ4uSFNgeqREREREREREnUMRERERETEwnXNYYOocioiIiIiI\niDqHIiIiIiJiYDrnsMD0SImIiIiIiIg6hyIiIiIiYmA657DA1DkUERERERERTQ5FREREREREy0pF\n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\ndht3d3d8fX3p3r07jo6OlC9fnlOnTvH000/j4eFBQEAAderUoXr16nnGqlixIrm5uURGRvLyvIbl\nRAAAIABJREFUyy/bO6qIiIhIkTPa6R93kpaViohdP0E06ieWRsxlxEygXCWJETOBMXMZMRMYM5e9\nMxWHZaX1Xv3cruMdmv64XccrTMXgcImIiIiIiNwZahwWnP6UhYiIiIiIiKhzKCIiIiIixqVzDgtO\nnUMRERERERFR51BERERERIxLjcOCU+dQRERERERE1DkUERERERHjcnBQ67Cg1DkUERERERERTQ5F\nREREREREy0pFRERERMTAdEGaglPnUERERERERNQ5FBERERER4zKpdVhg6hyKiIiIiIiIOociIiIi\nImJcxbFxuHfvXmbMmEFcXBzHjh1j9OjRODg4UK9ePcaPHw/ApEmT2LVrF25ubgBER0fj7OzMq6++\nypkzZ3B3d2fq1Kl4enqyZ88eJk+ejJOTE61bt2bo0KEAREVFsWnTJpycnAgPD6dJkyY3rUuTQxER\nERERETuZO3cua9assU36pkyZQmhoKH5+fowfP54NGzbQoUMHDhw4wLx58yhfvrztth999BH169dn\n6NChrF27lujoaCIiIpgwYQJRUVF4e3szaNAgkpOTsVgs7NixgxUrVpCens6wYcNYuXLlTWvTslIR\nERERETEsk8lk16+/U7NmTWbPnm37/sCBA/j5+QHQtm1btmzZgtVq5ejRo4wbN47AwEBWrVoFwM6d\nO2nbtq1t361bt2I2m8nJycHb2xsAf39/Nm/ezM6dO2nTpg0AXl5eWCwWzp07d9Pa1DkUERERERGx\nk0cffZTjx4/bvrdarbZ/u7m5kZmZycWLFwkODqZv377k5ubSu3dvGjVqhNlsxt3dPc++WVlZtm3X\ntqekpFC6dOk8XUdXV1fMZjOenp43rE2TQxERERERMazifrVSB4c/FnNmZWVRtmxZypQpQ3BwMKVK\nlaJUqVI88MADJCcn4+HhQVZWlm1fDw8P3NzcMJvNee6jXLlyODs72/b98/43raWQs4mIiIiIiEgB\n3XvvvWzfvh2Ab7/9Fl9fX44cOUJgYCBWq5WcnBx27txJo0aNaNGiBZs2bQJg06ZN+Pn54e7ujouL\nCykpKVitVhITE/H19aV58+YkJiZitVpJS0vDarXm6STmR51DERERERExrGLeOCQsLIyxY8eSk5OD\nj48Pjz/+OCaTiWeeeYZu3brh7OzMs88+i4+PD9WqVSMsLIygoCBcXFyIjIwEYOLEibzyyitYLBba\ntGljuyqpr68vAQEBWK1Wxo0b97e1mKx/XuQqIv+TLuXab6zSTvYdz16MmMuImUC5ShIjZgJj5jJi\nJjBmLntnKl0MWlHNJnxl1/H2THjEruMVJi0rFRERERERES0rFRERERER4yruF6QpTtQ5FBERERER\nEXUORURERETEuNQ4LDh1DkVERERERESdQxERERERMS6dc1hw6hyKiIiIiIiIOociIiIiImJcahwW\nnDqHIiIiIiIios6hiIiIiIgYl845LDh1DkVERERERESTQxEREREREdGyUhERERERMTCtKi04dQ5F\nREREREREnUMRERERETEuXZCm4NQ5FBEREREREXUORURERETEuNQ4LDh1DkVERERERESdQxERERER\nMS6dc1hw6hyKiIiIiIiIOociIiIiImJcahwWnDqHInJHDOzXh3dmzQTg999/J6hHN/yaNaZRo0ZE\nznjLtt/hn3+mw8NtadH0Ptq2eZCD//1vUZV8S9at/Yz7WzSlYcOG9AoKwGw2F3VJhWLd2s9o2rQp\nzRqX7Fzvz47Ct1kjWjZvQvfnnyUjIwOA6l6VadWyhe0rftnSIq70nxvUv6/tNWaxWBg5ciTNGjek\n8b31mfvBnCKurnCsXr2aKhXLFXUZhcaI7xdGzATGzmWE93a5czQ5FJFC9d/kZJ7o+AgJH6+0bZs4\nfize3tXZsWc/SUlJxM55n6Rt2wDoE9KTwS+8xK69BxgzbgKBAV2LqvR/LCMjgyED+xG/MoGffvqJ\nWrVqMyY8rKjLum3XciUkJLBnf8nNtXvXLt59ZyabEreyffc+fHzq8sb4sRw8eJAKFSuyZfsu21dA\nj8CiLrfArr3GPl61wrYtdk4MP//8M7v3/ch33ycR9d7b7NyxowirvH0/HzrEq6++itVqLepSCoUR\n3y+MmAmMn6ukv7ffCpPJZNevkkyTQxEpVDHvzyakTz+6Pt/dti1y1jtMfWsGAGlpaWRnZ1OuXDnS\n0tI4dPC/dOseAEDHxx4nKyuLvXv2FEnt/9SGL9fj1/J+atepA8DAwS+wbOniIq7q9l3LVaeE52re\nogU//HQId3d3Ll26RFracSpUrMj333+Pg4MDjz/anvtbNGXKpDexWCxFXW6B5fca+88nq+nbty8m\n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\n/vz5tm7a3/H09KRPnz707NkTi8WCt7c3nTp1YvDgwURERLBs2TKysrIYNmzYDceoWLEiOTk5REZG\nUqpUqQKP8WdvvPEG4eHhODg4cNddd9GnTx8WLvzjE5+AgADGjh1LcHAwWVlZBAYG4uzszNixY+nf\nvz/ly5fPt1t3o8fk9OnT9OnTx3Zunclk4s0332To0KE4ODhQtmxZpk6dysGDB6+7z4kTJ15XK8DT\nTz/N559/jo+PDwCffvopFy9epFu3brbb3nvvvQQHB9OrVy9Kly6NxWKhW7du1KpVi4sXLzJnzhzu\nvfdeunTpQlBQEK6urlSqVMk2EfT19WXgwIF8+OGHeHh4EBAQQJ06dWxX8mvSpAmDBw/Gzc0NNzc3\nHn744TznHHbq1IlTp04RFBSEs7MzFouF6dOnU6FChXyfH02bNiU6Oprg4GDg6kT/Wi3X1K9fn7Zt\n29K9e3c8PT1xdnbGyckp3+dQhQoVGDhwIAEBAVSoUAE3N7frxrz33nsJDQ1l1KhRWCwWcnNzefTR\nR+nfv/91+xbkDTH79i7u+o+Udio+PywKkxFzGTETKFdJYsRMYMxcRswExsxlxExSeExWI10KTApN\nQkICv/zyy3UXxbld8+bNw9PTk+eee65Q77e4O3v2LJ9//jlBQUFkZ2fz1FNPsWDBgmJzDo09f0gY\n9YeSEXMZMRMoV0lixExgzFxGzATGzGXvTKXtehJb/h6atdmu420a1cau4xWmYnC45H9FeHg4p06d\nIiYmpqhLsbtrS3qff/55HBwc6NatW7GZGIqIiIiIgDqHIoI6h4XBiLmMmAmUqyQxYiYwZi4jZgJj\n5vpf7By2e/t7u463cWTrv9+pmLLrn7IQERERERGR4qkYzOVFRERERETuDF2stODUORQRERERERFN\nDkVERERERETLSkVERERExMAK8jef5Sp1DkVERERERESdQxERERERMS41DgtOnUMRERERERFR51BE\nRERERIzLQa3DAlPnUERERERERNQ5FBERERER41LjsODUORQRERERERF1DkVERERExLj0dw4LTp1D\nERERERERUedQRERERETEHrKzswkPDyc1NRV3d3fGjx8PwOjRo3FwcKBevXq2bcuXLyc+Ph5nZ2eG\nDBlCu3btuHz5Mq+++ipnzpzB3d2dqVOn4unpyZ49e5g8eTJOTk60bt2aoUOH3lJ9mhyKiIiIiIhh\n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\ndnsEKUQc/DAXydvt/hH+2GOPsXDhQnbv3m2dWnr8+HFOnz5t3c/J6WqBPT4+npIlSxIZGcnx48dZ\nterqTxxUr16dPXv20KxZMz7++GN+//13/Pz86N27Nw0bNiQpKYnt27fbHG+1atV45513KF++PDt2\n7LAOaK/FAX9OSfXz82Pbtm20bduW/fv3U7ZsWapUqcLhw4fJysrC2dmZffv2ERh4+zOeWVdsDu+u\ntWnXni3b21PU5c8/Fvn9R8NstuS9UR5mzVsMcPV6QueizJyz8Ibnr11n2LhxY9Z/92Ouz42KiGRU\nRKR1/aVsgLuLzSk/R/HXadOuPbt2tb+hjxz9j3xBHIP2YMS8evQZQI8+AwyVExizr+o2DGD3vkOA\n4+dyPSP2FVz9bA0YMMBQ3+22KMTnYwsdDQ7F0PKqzhQvXpx58+YxdepUzp49S05ODi4uLrzxxht4\ne3vfsG2zZs0YNmwYu3btwtXVFV9fX3799VeGDx/O2LFjmTt3LsWKFePf//43rVu3Zvz48WRlZZGZ\nmcno0bb/rt24ceMYPnw4V65cwcnJibfffvumaxav5XVtOuqSJUvIyclh4sSJeHl50b9/f4KDgylV\nqhTu7u42ty0iIiIif18my/V3xRCRvyV7njW8/ixsfrsflUNbFXczWSuF+clelUOwb1/Zk/JyHEbM\nCYyZlxFzAmPmZe+cCsN03BU7T9q1vZBGFe3a3v2kG9KIiIiIiIiIBociIiIiIiKiaw5FRERERMTA\nVA2znd4rERERERERUeVQRERERESMqzD/tnBho8qhiIiIiIiIqHIoIiIiIiLGpbqh7VQ5FBERERER\nEVUORURERETEuHTNoe1UORQRERERERFVDkVERERExLhUDbOd3isRERERERHR4FBEREREREQ0rVRE\nRERERAxMN6SxnSqHIiIiIiIiosqhiIiIiIgYl+qGtlPlUERERERERFQ5FBERERER49Ilh7ZT5VBE\nRERERERUORQREREREeNy0lWHNlPlUERERERERFQ5FBERERER49I1h7ZT5VBERERERERUORQR47L3\nmUKdmRSRwsZsttipJZMd2wInJ33hiu1MhfCaw3PnztGpUyeWLl3K5cuXGTBgAL6+vgCEhITw1FNP\nsXLlSuLi4nB1dWXgwIG0adOGzMxMhg8fzrlz5/Dw8GDy5Ml4eXmxa9cuJk6ciIuLC82bN2fw4MF3\nFZcGhyIiIiIiInaSk5PDuHHjKFq0KAA//fQTvXv3pmfPntZtUlNTiYqKIj4+nsuXLxMSEkKLFi1Y\nsWIFNWvWZPDgwXz66afMmTOH0aNHM378eGbNmoWPjw/9+/fnwIED1KpV645j07RSERERERERO5ky\nZQohISGUK1cOgL179/Ldd9/RvXt3xowZQ0ZGBrt378bf3x8XFxc8PDzw9fXlwIEDJCYm0qpVKwBa\ntWrFli1bSE9PJzs7Gx8fHwBatmzJpk2b7io2DQ5FRERERMSwTCb7Pm5nzZo1lC5dmhYtWmCxWLBY\nLDRo0IDXX3+d6OhoKlWqxKxZs0hPT8fT09O6X/HixUlPTycjIwMPDw8A3N3dSUtLu2Hd9evvhgaH\nIiIiIiIidrBmzRp+/PFHwsLCOHDgACNHjqRVq1bUqVMHgHbt2nHgwAE8PT1JT0+37peRkUGJEiXw\n8PAgIyPDus7T0xN3d/dct70bGhyKiIiIiIhhOWGy6+N2oqOjiYqKIioqitq1azNlyhRefPFFdu/e\nDcDmzZt56KGHqFevHomJiWRlZZGWlkZSUhI1atSgUaNGbNiwAYANGzYQEBCAh4cHbm5unDhxAovF\nwsaNG/H397+r90o3pBERERERESkgEyZMIDIyEldXV8qWLUtkZCTu7u6EhYURGhqKxWJh6NChuLm5\nERISwogRIwgNDcXNzY1p06ZZX+O1117DbDbTokUL6tevf1exmCwWi/3uOywihdLlHPu1VdTFfu3Z\n8+utmKuJS9n5357Jjr+XYc++sifl5TiMmBPYNy97/bxEcTcTF7OM91MWRjwG7Z1T0UJQivpi31m7\ntvdknbJ2be9+0rRSERERERER0bRSERERERExLjtOunF4qhyKiIiIiIiIKociIiIiImJcpjzuICp/\nUuVQREREREREVDkUERERERHjstPNbQ1BlUMRERERERHR4FBEREREREQ0rVRERERERAxMN6SxnSqH\nIiIiIiIiosqhiIiIiIgYl0mFQ5upcigidvHZp+t4uHEDateuTffQYNLT0ws6JJssj46iaZPGNHvY\nn2YP+1PnH3484FGUs2fP8trQl2lUrw716/yD+fPnW/c5euQIj7dtjX+DurRu2YxDBw8WYAZ357NP\n19GgQQMa1nOs/rodRz0G82LEvIyYEzhmXgP69Wbmu9NvWh8S1InXXn3Juvztt9/yz+YP07RJI9q2\n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\nLS2NV155hW3btvHQQw9Z93/jjTfo378/ZrMZT09PpkyZQqNGjXj99dfp1q0bVatWxc3NrYAzFRER\nESkYmhxlO00rFRG7nkFU5fDeqHJ475SX4zBiTqDK4f2gyuHds3dOhWFa6Y92nlbaQtNKRURERERE\nCh+nAv5JL0ein7IQERERERERVQ5FRERERMS4VDe0nSqHIiIiIiIiosqhiIiIiIgYmEqHNlPlUERE\nRERERFQ5FBERERER4zKpdGgzVQ5FREREREREg0MRERERERHRtFIRERERETEwk2aV2kyVQxERERER\nEVHlUEREREREjEuFQ9upcigiIiIiIiKqHIqIiIiIiIGpdGgzVQ5FRERERERElUMRERERETEuk0qH\nNlPlUERERERERFQ5FBERERER49LvHNpOlUMRERERERHR4FBEREREREQ0rVRERERERAxMs0ptp8qh\niIiIiIiIqHIoIiIiIiIGptKhzTQ4FBHDMtn59mT2bk9EJC9OTvb7XrJnWyKSPzQ4FBERERERwzKp\ndGgzDQ5FRERERETswGw2M2bMGH7++WecnJyYMGECbm5ujBw5EicnJ2rUqMG4ceMAWLlyJXFxcbi6\nujJw4EDatGlDZmYmw4cP59y5c3h4eDB58mS8vLzYtWsXEydOxMXFhebNmzN48OC7ik83pBERERER\nEcMymez7uJ1vvvkGk8nEihUrePnll5k+fTqTJk1i6NChREdHYzabWb9+PampqURFRREXF8eiRYuY\nNm0a2dnZrFixgpo1axITE0NgYCBz5swBYPz48UyfPp3ly5eze/duDhw4cFfvlQaHIiIiIiIidtCu\nXTvefPNNAFJSUihZsiT79u0jICAAgFatWrFp0yZ2796Nv78/Li4ueHh44Ovry4EDB0hMTKRVq1bW\nbbds2UJ6ejrZ2dn4+PgA0LJlSzZt2nRX8WlwKCIiIiIihmWy8yMvTk5OjBw5krfeeosOHTpgsVis\nz7m7u5Oenk5GRgaenp7W9cWLF7eu9/DwsG6blpZ2w7rr198NXXMoIiIiIiJiR5MnT+bcuXN07tyZ\nzMxM6/qMjAxKlCiBh4cH6enpua7PyMiwrvP09LQOKP+67d1Q5VBERERERIyrEJUO165dy4IFCwAo\nUqQITk5O1K1bl4SEBAC+//57/P39qVevHomJiWRlZZGWlkZSUhI1atSgUaNGbNiwAYANGzYQEBCA\n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\nms1mPD09SU5OzrOQ8vDwYPjw4fTv3x+TyYSfnx9V/3ORkpsqVaqEl5cXAQEBmEwmmjdvjo+PD7Vq\n1WL06NEEBgZiNpuZMmVKrtd5eXnRrFkzunbtiqenJ2X/8/MHbdu2ZdKkSXz00Uc8+eSTtnMRzWYz\nPj4+XL582baEtFSpUvj7+1OsWDGaNWtGuXLlADhw4AC+vr53PaYZ2fYc+YejmEvB+bB4mIyYlxFz\nAuVVmBgxJzBmXkbMCYyZlxFzkofHZC1s651EHpG4uDiSkpLo27dvfodil/Hjx9OmTRuef/75PMdk\nZ2fTv39/Pvnkk7suI3Hkh4RRP5SMmJcRcwLlVZgYMScwZl5GzAmMmZejcypWAFpRP56/6tD9Vft/\nJRy6v4dJF6QR+Q8/Pz8SExNz/c5hQTVgwAB+//33uxaGAJ9++imDBg3S+QUiIiIi8ofUORQRdQ4f\nAiPmZcScQHkVJkbMCYyZlxFzAmPm9Th2Dn9ycOfwOXUORUREREREpDBTcSgiIiIiIiK6WqmIiIiI\niBiYLr1gN3UORURERERERJ1DERERERExLpNah3ZT51BERERERETUORQREREREePSzz3bT51DERER\nERERUedQRERERESMS41D+6lzKCIiIiIiIuocioiIiIiIgal1aDd1DkVERERERESdQxERERERMS79\nzqH91DkUERERERERFYciIiIiIiKiZaUiIiIiImJgJq0qtZs6hyIiIiIiIqLOoYiIiIiIGJcah/ZT\n51BERERERETUORQREREREQNT69Bu6hyKiIiIiIiIOociYlxZ2TmO25mLk0P25+Ks7/RERETuhUmt\nQ7vpfxkiIiIiIiKizqGIiIiIiBiXfufQfuocioiIiIiIiIpDERERERERUXEoIiIiIiIGZnLwzR77\n9+8nKCgIgMTERJo3b07v3r3p3bs3GzZsAOCzzz6ja9eudO/enS1btgBw/fp1Xn/9dXr27MmgQYO4\nfPkyAPv27cPf35/AwEBiYmLu6ziBzjkUERERERFxmI8//pjPP/8cV1dXAA4dOkT//v3p27evbcyl\nS5dYtGgRsbGxXLt2jR49etC0aVOWLVvGc889x2uvvUZcXBwzZ84kLCyMyMhIYmJiKF++PMHBwRw+\nfBgvL697jk2dQxERERERMSyTybG3P1KxYkVmzJhhu//DDz+wZcsWevXqRXh4OGlpaRw4cIAGDRrg\n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\ndeowYsQI2/M3u3W7du3i5MmTBAQEYLVaycrKokaNGuzduxdvb288PDwA6NixI99++y1w41tsgO++\n+46AgAAAypYty7p162zbt1qtXL16lYMHDxIaGmp7zbVr10hJSWHXrl1ER0fbth0eHp5nLhaLhcmT\nJ7N+/Xp+/vln/v3vf1O9enXb8926dQNuFLwhISGkpqayY8cOTpw4wbRp0wDIzs7m1KlTD3BEReRx\nUpBWrCckJNCsWTMA6taty6FDh/I5otxUHIqIiBRwN885zEuxYsWAG0XTyy+/TFhYGADp6elkZWWx\nc+fOXOcNurj89+P/Zufw1scATp06Rbly5Wz3c3JyKFasWK44Lly4gLu7O05OTrbtm0wmnJzyXph0\n/vx5goKC6NWrF82bN6ds2bIkJibannd2ds413sXFhZycHBYsWEDJkiUBSEpKomzZsmzatCnP/YiI\nFESpqam4ubnZ7t/8G3e3v5uOVDCiEBERkTzd7NT9kUaNGrFp0yaSk5OxWq28/fbbLFiwgAYNGrB/\n/36SkpLIyckhLi7utm37+PiwYcMGAH799VeCgoLIzMzExcWFrKwsLBYLFStWZO3atQBs376dXr16\nAdCkSRM+//xzAL788ksyMjLyjPHgwYNUrFiRPn36UKdOHbZt25arcL3ZsfzXv/5F5cqVKVasGC+8\n8AJLliwB4OjRo3Ts2JFr167ZdUxERIq5OPZ2NxaLJdfS/oJUGII6hyIiIgXe3a7ieetzXl5eDBs2\njD59+mC1WqlevTrBwcGYzWbGjh1L3759KVGiBFWrVr3t9YGBgbzzzjt07NgRk8nE2LFjKVGiBM2a\nNSMyMpJJkyYxefJkIiIi+PjjjzGbzUydOhWA8PBwQkJC+Oyzz6hduzYWiyXPeH19fVm2bBnt2rWj\naNGi1KlThyNHjthi+fnnn+ncuTMWi4VJkybZth8REUHHjh0BmDx5MiVKlLjPoykikn+8vb355ptv\naNu2Lfv27eO5557L75ByMVnt/TpSRERERERE7tutVysFmDhxIpUqVcrnqP5LxaGIiIiIiIjonEMR\nERERERFRcSgiIiIiIiKoOBQRERERERFUHIqIiIiIiAgqDkVERERERAQVhyIiIiIiIoKKQxERERER\nEUHFoYiIiIiIiKDiUERERERERFBxKCIiIiIiIqg4FBEREREREVQcioiIiIiICCoORUREREREBBWH\nIiIiIiIigopDERERERERQcWhiIiIQ+Xk5PDRRx/Rpk0b6tSpQ8vYVVfGAAAGb0lEQVSWLXnvvfe4\nevXqA297586dtGnTBm9vb2JiYu57O0FBQTRq1OiB43kU4uLi+Nvf/pbn87GxsVSvXp2vv/7agVGJ\niBiDS34HICIi8jiJiIhg1apV9OnTh+eff55du3Yxd+5cTp8+zQcffPBA216/fj2nTp0iKioKHx+f\n+97OmDFjSE9Pf6BYHpXJkydTqlSpPJ/39fVl3rx5eHl5OTAqERFjUOdQRETEQc6cOcOqVavw8/Nj\nzJgxvPjii4wZM4axY8fi5+cHgNVqZebMmbz00kvUr1+fHj16sGfPHgDOnj2Ll5cX48ePp0ePHtSv\nX5/+/fuTnJxMTEwMq1atwmq1EhYWxoULFwgKCqJhw4a2/d/aETx8+DDdu3enfv36NGzYkOHDh9u6\nl//85z8ZOnSo7XXLly+nTZs21KtXj86dO7N582bbc15eXowYMYLg4GDq1auHv78/J0+evC332NhY\nvLy8mDlzJm3atMHX15e5c+cyYcIEnn/+eVq0aMH3338PwMmTJwkMDKR+/frUr1+f4OBgkpOTCQ0N\n5dy5cyQmJtKiRQvb8Rg6dCjNmjVjwIABxMfH069fP/bs2cOGDRvw8vIiNDSUnJwcW77Hjh17yDMr\nImIMKg5FREQc5IcffsBqteLt7Z3r8Z49e9K2bVsA5s+fzwcffMCLL77Ie++9R3Z2NgMGDODUqVO2\n8WvWrKFr16506tSJHTt2sHLlSjp37kzTpk0xmUzMnDmTatWqAWAyme4Yy4wZMzh9+jTR0dG88cYb\nHDt2jO3bt9827ssvvyQyMpIaNWowZcoUnnzySV577TVbwXpzTJMmTRg4cCAHDhxg7ty5eR6Dr776\nirfeeotixYrx3nvv8euvv/L3v/+dX375hRkzZgCwatUqrly5wsSJExkyZAjbtm1jw4YNDBw4kLJl\ny1KxYkWmTJli22ZCQgKhoaEMGzYsV84vv/wy/v7+rFmzhqFDh7J//37Gjh1LlSpV8p4kEZHHmIpD\nERERB8nOzgZunHeYl7Vr1/Lkk08yduxYWrZsSXh4OOnp6Xz11Ve2MX5+fnTr1o2+ffsCkJycTPny\n5XniiScAaNiwISVLlrxrLI0bNyY5OZlp06Zx4sQJhg8fTqtWrW4b9/nnn+Pi4sKkSZNo0aIFEydO\nJCcnh3Xr1tnG+Pj40LdvXwYNGgTA5cuX89zvwIEDadu2Ld7e3phMJkJDQ+nUqRNPPPEEv/32GwBv\nvvkmI0eOJDExkfj4eEwmEykpKVSpUgWz2UyJEiWoV6+ebZvNmzfHz8/vtqIbICwsjCpVqrBlyxZe\nfvllXnnllbseFxGRx5mKQxEREQepUaMGAPv27cv1+KBBg3j77bcBcHLK/dFstVpve9zV1RWAIkWK\n5Brzv0wmE1lZWbb7t170JjAwkFWrVtGlSxeSk5MZOnQo48ePv20bzs7Oue7fLGxvjcdisdgdT/Hi\nxXNt92YuTk5Otte9/vrrhIWFUalSJYYNG4bVas1zmwDu7u55PpeamkpKSgomk4kjR46QkZGR51gR\nkcedikMREREHeeaZZ+jYsSMbN27k3XffZfPmzYSFhbFt2zZbYdW6dWuSkpKYMGECmzZt4h//+Aeu\nrq537Or9kTJlypCens66detYvXo1P/74o+25vn37EhQURJkyZWjVqhVms5lz587dto3WrVuTnZ3N\n6NGj+frrrwkLC8PFxYWOHTveczx3K/ButXPnTsxmM2azmZUrVwL/LUqLFCnCpUuX2LJli218XgU1\n3Li4zu+//86gQYM4cuQIUVFR9xy3iMjjQsWhiIiIA02cOJGhQ4fy5Zdf8uabb7Jr1y6GDRtGWFgY\nAMHBwQwbNoxvvvmGUaNG4ezszPz586lQoQJwo/t263mEd7p/U3BwMJUqVWLs2LFs376dl156yfb8\nhAkTaNCgAZGRkURERODj42OL4dbtdOjQgfDwcBITExkxYgQXL15kxowZ1K1b1654bvW/j+d1PyQk\nhOvXrzN27FiuXr1KmTJlOHLkCADdunUjPT3dds7hnfZ38/6CBQuIj4/n9ddf580336RNmzZ89tln\nbNq06Y7xiYg87kxWe7/GExEREREREcNS51BERERERERUHIqIiIiIiIiKQxEREREREUHFoYiIiIiI\niKDiUERERERERFBxKCIiIiIiIqg4FBEREREREVQcioiIiIiICPD/AY1OkH4or59OAAAAAElFTkSu\nQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x2f1d0828>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from sklearn.metrics import confusion_matrix, classification_report\n", | |
"cnf_matrix = confusion_matrix(y_test,pred)\n", | |
"import itertools\n", | |
"\n", | |
"clf = classification_report(y_test,pred) # classification report\n", | |
"print '\\n',clf\n", | |
"\n", | |
"plt.figure(figsize=(12,10))\n", | |
"plot_confusion_matrix(cnf_matrix, classes=class_names,\n", | |
" title='Confusion matrix')\n", | |
"plt.show()\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"collapsed": true | |
}, | |
"source": [ | |
"#### Confusion matrix shows it was predicting wrong only for last 4 classes when it predict them as `Current`. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#### From this I can conclude that: our model give accuracy of 96.56% with the help of Xgboost classifier algorithms." | |
] | |
} | |
], | |
"metadata": { | |
"anaconda-cloud": {}, | |
"kernelspec": { | |
"display_name": "Python [Root]", | |
"language": "python", | |
"name": "Python [Root]" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.12" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment