diff --git a/training/Dockerfile b/training/Dockerfile index 36f688921..f6fbfd194 100644 --- a/training/Dockerfile +++ b/training/Dockerfile @@ -93,9 +93,9 @@ RUN \ rm ${MINICONDA_FILE} # H2O -ENV H2O_BRANCH_NAME=rel-xia -ENV H2O_BUILD_NUMBER=2 -ENV H2O_PROJECT_VERSION=3.22.0.${H2O_BUILD_NUMBER} +ENV H2O_BRANCH_NAME=rel-xu +ENV H2O_BUILD_NUMBER=3 +ENV H2O_PROJECT_VERSION=3.22.1.${H2O_BUILD_NUMBER} ENV H2O_DIRECTORY=h2o-${H2O_PROJECT_VERSION} RUN \ wget http://h2o-release.s3.amazonaws.com/h2o/${H2O_BRANCH_NAME}/${H2O_BUILD_NUMBER}/h2o-${H2O_PROJECT_VERSION}.zip && \ diff --git a/training/h2o_3_hands_on/automl/lending_club_automl.ipynb b/training/h2o_3_hands_on/automl/lending_club_automl.ipynb index 9872f436c..3635fa63c 100644 --- a/training/h2o_3_hands_on/automl/lending_club_automl.ipynb +++ b/training/h2o_3_hands_on/automl/lending_club_automl.ipynb @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -25,85 +25,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Checking whether there is an H2O instance running at http://localhost:54321..... not found.\n", - "Attempting to start a local H2O server...\n", - " Java Version: java version \"1.8.0_181\"; Java(TM) SE Runtime Environment (build 1.8.0_181-b13); Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)\n", - " Starting server from /home/h2o/Miniconda3/envs/h2o/lib/python3.6/site-packages/h2o/backend/bin/h2o.jar\n", - " Ice root: /tmp/tmp7mtn8x0f\n", - " JVM stdout: /tmp/tmp7mtn8x0f/h2o_unknownUser_started_from_python.out\n", - " JVM stderr: /tmp/tmp7mtn8x0f/h2o_unknownUser_started_from_python.err\n", - " Server is running at http://127.0.0.1:54321\n", - "Connecting to H2O server at http://127.0.0.1:54321... successful.\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
H2O cluster uptime:01 secs
H2O cluster timezone:Etc/UTC
H2O data parsing timezone:UTC
H2O cluster version:3.20.0.4
H2O cluster version age:15 days
H2O cluster name:H2O_from_python_unknownUser_ablowc
H2O cluster total nodes:1
H2O cluster free memory:5.333 Gb
H2O cluster total cores:4
H2O cluster allowed cores:4
H2O cluster status:accepting new members, healthy
H2O connection url:http://127.0.0.1:54321
H2O connection proxy:None
H2O internal security:False
H2O API Extensions:XGBoost, Algos, AutoML, Core V3, Core V4
Python version:3.6.5 final
" - ], - "text/plain": [ - "-------------------------- ----------------------------------------\n", - "H2O cluster uptime: 01 secs\n", - "H2O cluster timezone: Etc/UTC\n", - "H2O data parsing timezone: UTC\n", - "H2O cluster version: 3.20.0.4\n", - "H2O cluster version age: 15 days\n", - "H2O cluster name: H2O_from_python_unknownUser_ablowc\n", - "H2O cluster total nodes: 1\n", - "H2O cluster free memory: 5.333 Gb\n", - "H2O cluster total cores: 4\n", - "H2O cluster allowed cores: 4\n", - "H2O cluster status: accepting new members, healthy\n", - "H2O connection url: http://127.0.0.1:54321\n", - "H2O connection proxy:\n", - "H2O internal security: False\n", - "H2O API Extensions: XGBoost, Algos, AutoML, Core V3, Core V4\n", - "Python version: 3.6.5 final\n", - "-------------------------- ----------------------------------------" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "h2o.init(max_mem_size = \"6g\")" ] @@ -137,17 +61,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Parse progress: |█████████████████████████████████████████████████████████| 100%\n" - ] - } - ], + "outputs": [], "source": [ "# https://s3-us-west-2.amazonaws.com/h2o-tutorials/data/topics/data/automl/loan.csv\n", "train = h2o.import_file(\"../../data/topics/automl/loan.csv\")\n", @@ -156,52 +72,9 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Rows:163987\n", - "Cols:15\n", - "\n", - "\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
loan_amnt term int_rate emp_length home_ownership annual_inc purpose addr_state dti delinq_2yrs revol_util total_acc bad_loan longest_credit_length verification_status
type int enum real int enum real enum enum real int real int enum int enum
mins 500.0 5.42 0.0 1896.0 0.0 0.0 0.0 1.0 0.0
mean 13074.169141456341 13.7159040655661845.6843529329953295 71915.67051974907 15.8815301212901050.2273570060625279654.07917280242258 24.57973383427464 14.854273655448349
maxs 35000.0 26.06 10.0 7141778.0 39.99 29.0 150.70000000000002118.0 65.0
sigma 7993.55618873465 4.391939870545794 3.6106637311002348 59070.91565491827 7.587668224192542 0.6941679229284178 25.28536676677050811.685190365910653 6.947732922546688
zeros 0 0 14248 0 270 139459 1562 0 11
missing0 0 0 5804 0 4 0 0 0 29 193 29 0 29 0
0 5000.0 36 months10.65 10.0 RENT 24000.0 credit_card AZ 27.65 0.0 83.7 9.0 0 26.0 verified
1 2500.0 60 months15.27 0.0 RENT 30000.0 car GA 1.0 0.0 9.4 4.0 1 12.0 verified
2 2400.0 36 months15.96 10.0 RENT 12252.0 small_business IL 8.72 0.0 98.5 10.0 0 10.0 not verified
3 10000.0 36 months13.49 10.0 RENT 49200.0 other CA 20.0 0.0 21.0 37.0 0 15.0 verified
4 5000.0 36 months7.9 3.0 RENT 36000.0 wedding AZ 11.2 0.0 28.3 12.0 0 7.0 verified
5 3000.0 36 months18.64 9.0 RENT 48000.0 car CA 5.35000000000000050.0 87.5 4.0 0 4.0 verified
6 5600.0 60 months21.28 4.0 OWN 40000.0 small_business CA 5.55 0.0 32.6 13.0 1 7.0 verified
7 5375.0 60 months12.69 0.0 RENT 15000.0 other TX 18.08 0.0 36.5 3.0 1 7.0 verified
8 6500.0 60 months14.65 5.0 OWN 72000.0 debt_consolidationAZ 16.12 0.0 20.6 23.0 0 13.0 not verified
9 12000.0 36 months12.69 10.0 OWN 75000.0 debt_consolidationCA 10.78 0.0 67.10000000000001 34.0 0 22.0 verified
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train.describe()" ] @@ -215,17 +88,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "AutoML progress: |████████████████████████████████████████████████████████| 100%\n" - ] - } - ], + "outputs": [], "source": [ "# Set target and predictor variables\n", "y = \"bad_loan\"\n", @@ -241,40 +106,9 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
model_id auc logloss mean_per_class_error rmse mse
StackedEnsemble_AllModels_0_AutoML_20180816_011533 0.682867 0.446775 0.3674150.3749180.140563
StackedEnsemble_BestOfFamily_0_AutoML_20180816_0115330.682505 0.446838 0.3684 0.3749410.140581
GBM_grid_0_AutoML_20180816_011533_model_0 0.680493 0.445819 0.3695210.3746550.140366
GBM_grid_0_AutoML_20180816_011533_model_1 0.677665 0.447037 0.3726970.3752640.140823
GBM_grid_0_AutoML_20180816_011533_model_2 0.676167 0.44776 0.3720260.3755970.141073
GLM_grid_0_AutoML_20180816_011533_model_0 0.674138 0.44873 0.3733480.3756090.141082
XRT_0_AutoML_20180816_011533 0.664243 0.452034 0.3791510.3771130.142214
DRF_0_AutoML_20180816_011533 0.658237 0.456314 0.3856450.3785350.143289
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print(aml.leaderboard)" ] @@ -288,7 +122,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -297,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -311,58 +145,33 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "best_model.varimp_plot()" ] }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "AUC: train = 0.7264, valid = 0.6875, xval = 0.6805\n" - ] - } - ], + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], "source": [ - "print(\"AUC: train = {:.4f}, valid = {:.4f}, xval = {:.4f}\" \\\n", - " .format(best_model.auc(train = True), best_model.auc(valid = True), best_model.auc(xval = True)))" + "print(\"AUC: train = {:.4f}, xval = {:.4f}\"\\\n", + " .format(best_model.auc(train = True), best_model.auc(xval = True)))" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Logloss: train = 0.4277, valid = 0.4384, xval = 0.4458\n" - ] - } - ], + "outputs": [], "source": [ - "print(\"Logloss: train = {:.4f}, valid = {:.4f}, xval = {:.4f}\" \\\n", - " .format(best_model.logloss(train = True), best_model.logloss(valid = True), best_model.logloss(xval = True)))" + "print(\"Logloss: train = {:.4f}, xval = {:.4f}\" \\\n", + " .format(best_model.logloss(train = True), best_model.logloss(xval = True)))" ] }, { @@ -390,7 +199,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -415,7 +224,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -425,7 +234,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -434,45 +243,16 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
cv_fold Count
0 32848
1 32808
2 33035
3 32574
4 32722
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"cv_fold\"].table()" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -482,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -492,7 +272,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -504,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -552,47 +332,16 @@ }, { "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Probs loan_amntQuantiles
0 500
0.05 3000
0.25 7000
0.5 11325
0.75 18000
0.95 30000
1 35000
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"loan_amnt\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -602,7 +351,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -611,30 +360,9 @@ }, { "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.xticks(rotation = 90)\n", "plt.yscale(\"logit\")\n", @@ -643,105 +371,16 @@ }, { "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
loan_amnt_catnrowmean_bad_loan
0(0.0,5000.0]257850.163234
1(5000.0,10000.0]503840.164278
2(10000.0,15000.0]355520.173436
3(15000.0,20000.0]246590.208281
4(20000.0,25000.0]144470.214508
5(25000.0,30000.0]69130.238825
6(30000.0,35000.0]62470.236594
\n", - "
" - ], - "text/plain": [ - " loan_amnt_cat nrow mean_bad_loan\n", - "0 (0.0,5000.0] 25785 0.163234\n", - "1 (5000.0,10000.0] 50384 0.164278\n", - "2 (10000.0,15000.0] 35552 0.173436\n", - "3 (15000.0,20000.0] 24659 0.208281\n", - "4 (20000.0,25000.0] 14447 0.214508\n", - "5 (25000.0,30000.0] 6913 0.238825\n", - "6 (30000.0,35000.0] 6247 0.236594" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -766,42 +405,16 @@ }, { "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
term Count
36 months 129950
60 months 34037
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"term\"].table()" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -813,35 +426,9 @@ }, { "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
term_60months Count
0 129950
1 34037
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"term_60months\"].table()" ] @@ -857,49 +444,16 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
emp_length
type int
mins 0.0
mean 5.6843529329953295
maxs 10.0
sigma 3.6106637311002348
zeros 14248
missing5804
0 10.0
1 0.0
2 10.0
3 10.0
4 3.0
5 9.0
6 4.0
7 0.0
8 5.0
9 10.0
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"emp_length\"].summary()" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -910,65 +464,16 @@ }, { "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/h2o/Miniconda3/envs/h2o/lib/python3.6/site-packages/h2o/utils/shared_utils.py:177: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n", - " data = _handle_python_lists(python_obj.as_matrix().tolist(), -1)[1]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Parse progress: |█████████████████████████████████████████████████████████| 100%\n" - ] - }, - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
emp_length_missing cv_fold te_emp_length_missing
0 0 -1.52145
1 0 -1.03907
0 1 -1.51691
1 1 -1.02443
0 2 -1.51666
1 2 -1.05314
0 3 -1.51154
1 3 -1.02223
0 4 -1.51157
1 4 -1.01582
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "mean_target_encoding(train, \"emp_length_missing\")" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -977,30 +482,9 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.yscale(\"logit\")\n", "plt.plot(df[\"emp_length\"], df[\"mean_bad_loan\"])" @@ -1008,133 +492,9 @@ }, { "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
emp_lengthnrowmean_bad_loan
0NaN00.262922
10.0142480.184307
21.0114140.177238
32.0157660.173728
43.0136110.178679
54.0110240.173258
65.0123470.181664
76.0100000.188500
87.090790.190770
98.074240.185614
109.060870.187120
1110.0471830.177670
\n", - "
" - ], - "text/plain": [ - " emp_length nrow mean_bad_loan\n", - "0 NaN 0 0.262922\n", - "1 0.0 14248 0.184307\n", - "2 1.0 11414 0.177238\n", - "3 2.0 15766 0.173728\n", - "4 3.0 13611 0.178679\n", - "5 4.0 11024 0.173258\n", - "6 5.0 12347 0.181664\n", - "7 6.0 10000 0.188500\n", - "8 7.0 9079 0.190770\n", - "9 8.0 7424 0.185614\n", - "10 9.0 6087 0.187120\n", - "11 10.0 47183 0.177670" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df" ] @@ -1150,98 +510,16 @@ }, { "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
home_ownershipnrowmean_bad_loan
0ANY10.000000
1MORTGAGE797140.164137
2NONE300.233333
3OTHER1560.224359
4OWN135600.188348
5RENT705260.203273
\n", - "
" - ], - "text/plain": [ - " home_ownership nrow mean_bad_loan\n", - "0 ANY 1 0.000000\n", - "1 MORTGAGE 79714 0.164137\n", - "2 NONE 30 0.233333\n", - "3 OTHER 156 0.224359\n", - "4 OWN 13560 0.188348\n", - "5 RENT 70526 0.203273" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "mean_target(train, \"home_ownership\")" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1251,116 +529,25 @@ }, { "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
home_ownership home_ownership_3cat Counts
ANY OTHER 1
MORTGAGE MORTGAGE 79714
NONE OTHER 30
OTHER OTHER 156
OWN OWN 13560
RENT OTHER 70526
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[[\"home_ownership\", \"home_ownership_3cat\"]].table()" ] }, { "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
home_ownership_3catnrowmean_bad_loan
0MORTGAGE797140.164137
1OTHER707130.203329
2OWN135600.188348
\n", - "
" - ], - "text/plain": [ - " home_ownership_3cat nrow mean_bad_loan\n", - "0 MORTGAGE 79714 0.164137\n", - "1 OTHER 70713 0.203329\n", - "2 OWN 13560 0.188348" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "mean_target(train, \"home_ownership_3cat\")" ] }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1384,47 +571,16 @@ }, { "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Probs annual_incQuantiles
0 1896
0.05 27000
0.25 45000
0.5 61000
0.75 85000
0.95 145000
1 7.14178e+06
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"annual_inc\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1434,7 +590,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1443,30 +599,9 @@ }, { "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.yscale(\"logit\")\n", "plt.plot(df[\"annual_inc_cat\"].index, df[\"mean_bad_loan\"])" @@ -1474,224 +609,25 @@ }, { "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
annual_inc_catnrowmean_bad_loan
0NaN00.126695
1(0.0,5000.0]250.240000
2(5000.0,10000.0]1920.213542
3(10000.0,15000.0]8680.288018
4(15000.0,20000.0]18470.251760
5(20000.0,25000.0]39750.241509
\n", - "
" - ], - "text/plain": [ - " annual_inc_cat nrow mean_bad_loan\n", - "0 NaN 0 0.126695\n", - "1 (0.0,5000.0] 25 0.240000\n", - "2 (5000.0,10000.0] 192 0.213542\n", - "3 (10000.0,15000.0] 868 0.288018\n", - "4 (15000.0,20000.0] 1847 0.251760\n", - "5 (20000.0,25000.0] 3975 0.241509" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df[0:6]" ] }, { "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
annual_inc_catnrowmean_bad_loan
20(95000.0,100000.0]54730.138315
21(100000.0,105000.0]28600.129021
22(105000.0,110000.0]32750.133740
23(110000.0,115000.0]19080.108491
24(115000.0,120000.0]30090.147557
25(120000.0,125000.0]17410.125790
26(125000.0,130000.0]16420.107186
27(130000.0,135000.0]9740.120123
28(135000.0,140000.0]12350.132794
29(140000.0,145000.0]7460.107239
30(145000.0,150000.0]14920.136729
\n", - "
" - ], - "text/plain": [ - " annual_inc_cat nrow mean_bad_loan\n", - "20 (95000.0,100000.0] 5473 0.138315\n", - "21 (100000.0,105000.0] 2860 0.129021\n", - "22 (105000.0,110000.0] 3275 0.133740\n", - "23 (110000.0,115000.0] 1908 0.108491\n", - "24 (115000.0,120000.0] 3009 0.147557\n", - "25 (120000.0,125000.0] 1741 0.125790\n", - "26 (125000.0,130000.0] 1642 0.107186\n", - "27 (130000.0,135000.0] 974 0.120123\n", - "28 (135000.0,140000.0] 1235 0.132794\n", - "29 (140000.0,145000.0] 746 0.107239\n", - "30 (145000.0,150000.0] 1492 0.136729" - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df[20:31]" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1717,31 +653,9 @@ }, { "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " purpose Count Percent\n", - "0 debt_consolidation 93261 56.87\n", - "1 credit_card 30792 18.78\n", - "2 other 10492 6.40\n", - "3 home_improvement 9872 6.02\n", - "4 major_purchase 4686 2.86\n", - "5 small_business 3841 2.34\n", - "6 car 2842 1.73\n", - "7 medical 2029 1.24\n", - "8 wedding 1751 1.07\n", - "9 moving 1464 0.89\n", - "10 house 1245 0.76\n", - "11 vacation 1096 0.67\n", - "12 educational 418 0.25\n", - "13 renewable_energy 198 0.12\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "tbl = train[\"purpose\"].table().as_data_frame()\n", "tbl[\"Percent\"] = np.round((100 * tbl[\"Count\"]/train.nrows), 2)\n", @@ -1752,7 +666,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1761,147 +675,9 @@ }, { "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
purposenrowmean_bad_loan
0small_business38410.309034
1renewable_energy1980.227273
2other104920.214354
3educational4180.210526
4moving14640.207650
5medical20290.203056
6debt_consolidation932610.189479
7house12450.182329
8vacation10960.178832
9credit_card307920.157281
10home_improvement98720.155895
11wedding17510.145060
12major_purchase46860.137217
13car28420.125968
\n", - "
" - ], - "text/plain": [ - " purpose nrow mean_bad_loan\n", - "0 small_business 3841 0.309034\n", - "1 renewable_energy 198 0.227273\n", - "2 other 10492 0.214354\n", - "3 educational 418 0.210526\n", - "4 moving 1464 0.207650\n", - "5 medical 2029 0.203056\n", - "6 debt_consolidation 93261 0.189479\n", - "7 house 1245 0.182329\n", - "8 vacation 1096 0.178832\n", - "9 credit_card 30792 0.157281\n", - "10 home_improvement 9872 0.155895\n", - "11 wedding 1751 0.145060\n", - "12 major_purchase 4686 0.137217\n", - "13 car 2842 0.125968" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df = df.sort_values(by = \"mean_bad_loan\", ascending = 0)\n", "df = df.reset_index(drop = True)\n", @@ -1910,30 +686,9 @@ }, { "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.xticks(rotation = 90)\n", "plt.yscale(\"logit\")\n", @@ -1942,32 +697,16 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/h2o/Miniconda3/envs/h2o/lib/python3.6/site-packages/h2o/utils/shared_utils.py:177: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n", - " data = _handle_python_lists(python_obj.as_matrix().tolist(), -1)[1]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Parse progress: |█████████████████████████████████████████████████████████| 100%\n" - ] - } - ], + "outputs": [], "source": [ "te_purpose = mean_target_encoding(train, \"purpose\")" ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1976,7 +715,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1986,20 +725,9 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "train[\"te_purpose\"].hist()" ] @@ -2015,22 +743,9 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " addr_state Count Percent\n", - "0 CA 28702 17.50\n", - "1 NY 14285 8.71\n", - "2 TX 12128 7.40\n", - "3 FL 11396 6.95\n", - "4 NJ 6457 3.94\n" - ] - } - ], + "outputs": [], "source": [ "tbl = train[\"addr_state\"].table().as_data_frame()\n", "tbl[\"Percent\"] = np.round((100 * tbl[\"Count\"]/train.nrows), 2)\n", @@ -2041,7 +756,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2050,22 +765,9 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " addr_state nrow mean_bad_loan\n", - "0 NE 13 0.538462\n", - "1 TN 1327 0.238885\n", - "2 NV 2387 0.227901\n", - "3 MS 163 0.226994\n", - "4 IN 1463 0.217362\n" - ] - } - ], + "outputs": [], "source": [ "df = df.sort_values(by = \"mean_bad_loan\", ascending = 0)\n", "df = df.reset_index(drop = True)\n", @@ -2074,52 +776,18 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " addr_state nrow mean_bad_loan\n", - "45 WV 714 0.131653\n", - "46 DC 584 0.114726\n", - "47 ID 9 0.111111\n", - "48 WY 376 0.109043\n", - "49 ME 3 0.000000\n" - ] - } - ], + "outputs": [], "source": [ "print(df[45:50])" ] }, { "cell_type": "code", - "execution_count": 59, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 59, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.yscale(\"logit\")\n", "plt.plot(df[\"addr_state\"], df[\"mean_bad_loan\"])" @@ -2127,32 +795,16 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/h2o/Miniconda3/envs/h2o/lib/python3.6/site-packages/h2o/utils/shared_utils.py:177: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n", - " data = _handle_python_lists(python_obj.as_matrix().tolist(), -1)[1]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Parse progress: |█████████████████████████████████████████████████████████| 100%\n" - ] - } - ], + "outputs": [], "source": [ "te_addr_state = mean_target_encoding(train, \"addr_state\", prior_count = 30)" ] }, { "cell_type": "code", - "execution_count": 61, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2162,7 +814,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2172,37 +824,16 @@ }, { "cell_type": "code", - "execution_count": 63, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.plot(df[\"addr_state\"], df[\"mean_te_addr_state\"])" ] }, { "cell_type": "code", - "execution_count": 64, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2211,7 +842,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2221,20 +852,9 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "train[\"te_addr_state\"].hist()" ] @@ -2255,47 +875,16 @@ }, { "cell_type": "code", - "execution_count": 67, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Probs dtiQuantiles
0 0
0.05 3.79
0.25 10.23
0.5 15.62
0.75 21.26
0.95 29.02
1 39.99
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 67, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"dti\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" ] }, { "cell_type": "code", - "execution_count": 68, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2305,7 +894,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2314,30 +903,9 @@ }, { "cell_type": "code", - "execution_count": 70, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 70, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.yscale(\"logit\")\n", "plt.plot(df[\"dti_cat\"].index, df[\"mean_bad_loan\"])" @@ -2345,133 +913,16 @@ }, { "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
dti_catnrowmean_bad_loan
30(29.0,30.0]23290.280378
31(30.0,31.0]14960.293449
32(31.0,32.0]12820.287051
33(32.0,33.0]10510.308278
34(33.0,34.0]10250.290732
35(34.0,35.0]7500.318667
36(35.0,36.0]750.160000
37(36.0,37.0]660.227273
38(37.0,38.0]650.123077
39(38.0,39.0]590.322034
40(39.0,40.0]470.063830
\n", - "
" - ], - "text/plain": [ - " dti_cat nrow mean_bad_loan\n", - "30 (29.0,30.0] 2329 0.280378\n", - "31 (30.0,31.0] 1496 0.293449\n", - "32 (31.0,32.0] 1282 0.287051\n", - "33 (32.0,33.0] 1051 0.308278\n", - "34 (33.0,34.0] 1025 0.290732\n", - "35 (34.0,35.0] 750 0.318667\n", - "36 (35.0,36.0] 75 0.160000\n", - "37 (36.0,37.0] 66 0.227273\n", - "38 (37.0,38.0] 65 0.123077\n", - "39 (38.0,39.0] 59 0.322034\n", - "40 (39.0,40.0] 47 0.063830" - ] - }, - "execution_count": 71, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df[30:41]" ] }, { "cell_type": "code", - "execution_count": 72, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2501,47 +952,16 @@ }, { "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Probs delinq_2yrsQuantiles
0 0
0.05 0
0.25 0
0.5 0
0.75 0
0.95 1
1 29
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 73, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"delinq_2yrs\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" ] }, { "cell_type": "code", - "execution_count": 74, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2551,98 +971,16 @@ }, { "cell_type": "code", - "execution_count": 75, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
delinq_2yrs_catnrowmean_bad_loan
0NaN00.181037
1(0.0,1.0]171580.189299
2(1.0,2.0]46350.201510
3(2.0,3.0]14880.221774
4(3.0,4.0]5790.215889
5(4.0,5.0]3100.216129
\n", - "
" - ], - "text/plain": [ - " delinq_2yrs_cat nrow mean_bad_loan\n", - "0 NaN 0 0.181037\n", - "1 (0.0,1.0] 17158 0.189299\n", - "2 (1.0,2.0] 4635 0.201510\n", - "3 (2.0,3.0] 1488 0.221774\n", - "4 (3.0,4.0] 579 0.215889\n", - "5 (4.0,5.0] 310 0.216129" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "mean_target(train, \"delinq_2yrs_cat\")" ] }, { "cell_type": "code", - "execution_count": 76, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2672,47 +1010,16 @@ }, { "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Probs revol_utilQuantiles
0 0
0.05 8.7
0.25 35.6
0.5 55.8
0.75 74.2
0.95 92.5
1 150.7
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"revol_util\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" ] }, { "cell_type": "code", - "execution_count": 78, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2722,7 +1029,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2731,30 +1038,9 @@ }, { "cell_type": "code", - "execution_count": 80, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 80, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAD8CAYAAABw1c+bAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8VPW9//HXNzsJJASSACFAQNZgUHa1iqBVUNta14r70qq3i7b6u9fWttc+bPWqXeztrUu1UrW1oq3VarXuIKKVEBRElkAgCYGErJCQhGwz398fM8FIASfJhJlzzvv5ePAgM3PO5HMc887hez7n+zXWWkRExDtiIl2AiIgcXQp+ERGPUfCLiHiMgl9ExGMU/CIiHqPgFxHxGAW/iIjHKPhFRDxGwS8i4jFxkS7gYBkZGTY3NzfSZYiIOMqaNWtqrbWZoWwbdcGfm5tLYWFhpMsQEXEUY0xZqNtqqEdExGMU/CIiHqPgFxHxGAW/iIjHKPhFRDxGwS8i4jEKfhERj1Hwi4iE2cqttfz27a10+PyRLuWQFPwiImH25qYqHn5nO3ExJtKlHJKCX0QkzEpqmxkzNBljFPwiIp5QVtdMbkZKpMs4LAW/iEgYdfj8lO/ZT+7Q5EiXclgKfhGRMNq1Zz8+vyV3qM74RUQ8oaSuGUBDPSIiXlFWGwx+nfGLiHhDaV0LKQmxZAxMiHQph6XgFxEJo9JgR0+0tnKCgl9EJKzK6lqiepgHFPwiImHT6fNTXt9Cbkb0tnKCgl9EJGx27d1Pp98yRmf8IiLeUBLs6Bkbxa2coOAXEQmbsroWAMZE8V27oOAXEQmbktpmUhJiyRyYGOlSjkjBLyISJmV1zYwZGt2tnNDD4DfGLDLGFBljio0x3z/E6zcaY9YbY9YaY1YaY/K6vfaD4H5FxpiF4SheRCSalNa1RP34PvQg+I0xscADwFlAHrC4e7AH/dlam2+tPR64D/hVcN884BJgKrAIeDD4fiIirtDVyhnt4/vQszP+OUCxtXa7tbYdWAqc230Da21jt4cpgA1+fS6w1FrbZq0tAYqD7yci4gpdrZzRPDlbl7gebDsSKO/2eCcw9+CNjDHfAm4BEoDTuu37wUH7juxRpSIiUaw02NET7XftQs/O+A91tcL+2xPWPmCtPQa4DfhRqPsaY75sjHmkoaGhByWJiESH0q5ZOaP8rl3oWfDvBEZ1e5wDVBxh+6XAV0Pd11r7krX2+rS0tB6UJCISHUrrnNHKCT0L/tXABGPMWGNMAoGLtS9238AYM6Hbw3OArcGvXwQuMcYkGmPGAhOAgt6XLSISXUprndHKCT0Y47fWdhpjvg28BsQCS6y1G4wxdwKF1toXgW8bY74IdAB7gKuC+24wxjwLbAQ6gW9Za31hPhYRkYgpq2th8ohBkS4jJD25uIu19hXglYOe++9uX998hH3vAu7qaYEiItGu0+dnR30Li44dHulSQqI7d0VE+qhib2ugldMBHT2g4BcR6bOuBdadcPMWKPhFRPqsrM4Z0zF3UfCLiPRRSW0zyQmxZA6K/lZOUPCLiPRZWV2LY1o5QcEvItJnpbXN5DpkfB8U/CIifdLp81O+p8URk7N1UfCLiPRBxd5WOnxWZ/wiIl5RGuzocUoPPyj4RUT65EDwa6hHRMQbSmtbGBAfS5ZDWjlBwS8i0ieldc2MGZrsmFZOUPCLiPRJaV2zY+7Y7aLgFxHppU8XWFfwi4h4QmVDoJVzrAOWW+xOwS8i0ksltV2zcuqMX0TEE5w2K2cXBb+ISC+VOLCVExT8IiK9VubAVk5Q8IuIR1hr2VDRwKMrtrOhoiEs71lS1+yoqRq69GixdRERJ2nY38HKrbUsL6rmnS01VO9rA+CUCRn88bq5fXpvn99SXt/CmXnOWGC9OwW/iLiGtZaNlY0sL6rhnaIa1uzYg89vSU2K45SJmcyfmElh6R6e/2gXLe2dJCf0PgIr9u533KycXRT8IuJoja2fPauvagyc1U/NTuXGU8cxf1IW00cNJi42MLKdPXgAzxSW835xHV/MG9br7+vEydm6KPhFxJE+3LGH372zjTc3VePzWwYlxTFvQianTgqc2WelJh1yv1m56aQkxLKsqLpvwV/rvOmYuyj4RcQx/H7LsqJqfvfOdgpK60kbEM91J4/ljLxhnzmrP5LEuFi+MD6D5UU1WGt73ZFTWtdCUnwMw1Kd1coJCn4RcYD2Tj9/X7uLR1ZsZ2t1EyMHD+C/v5TH12aPIiWx5zE2f1IWr2+sori6iQnDBvWqpsA6u85ZYL07Bb+IRK19rR08XbCDJStL2d3YypQRqfzvJcdzdv4I4kM4uz+c+ZMyAVhWVN374K9rZkJW7/aNNAW/iESd6sZWlrxXylMflLGvrZOTjhnKvRdOY96EjLCcYWcPHsDk4YNYtrmG6+cd0+P9A62c+/t0jSCSFPwiEjWKq5t4dMV2nv9oF51+P2flj+CGeeOYljM47N9r/qQsHlu5nX2tHQxKiu/RvhV799Pu8zPWgRd2QcEvIhHW1unj9Q1VLF29g/eK60iMi+Frs0fx9VPG9uusl/MnZfLwO9t4r7iORcf27CasrlZOp83K2UXBLyIRUVy9j6cLyvnbhzvZ09LByMEDuPWMiVw6dzRDB/Z/p8zMMekMSoxjeVF1L4K/BXDerJxdFPwictTsb/fx8vpKlhbsoLBsD/GxhjPyhnHJ7NGcPD6DmJij1yETHxvDKRN719ZZWttMUnyM42bl7KLgF5F+t6GigaUF5bywdhf7WjsZl5HC7WdP5vwZOWQchbP7w5k/KYtX1u9m8+59TBmRGvJ+ZXXNjBmSclR/UYWTgl9E+sW+1g5eWlfJ0tU7+HhnA4lxMZydP4JLZo9iztghUdH/Pn/ip22dPQn+ktpmxmcN7K+y+p2CX0TCbv3OBq55vIDapnYmDx/ET76cx3nTc0hL7ln3TH/LSk1ianYqyzfX8M3540Pa50Ar5xRntnKCgl9Ewmzl1lpu+GMhg5MTeO4/TmTG6PSoOLs/nAWTsnjonW007O8gbcDn/2LqauV04uRsXbQQi4iEzUvrKrjm8QJGDUnmb988iZljomNI50gWTM7E57es3Fob0vZlwY6eMQ6cjrmLgl9EwuLx90q4aelHTB+VzjM3nMiww8yOGW2OH5VO2oB4lhVVh7R9qUMXWO9OQz0i0ifWWn7xehEPLNvGmXnD+M3i6STFx0a6rJDFxhjmTcxkeVENfr/93E6d0tpmEuNiGDbIGb/YDkVn/CLSa50+P99/bj0PLNvG4jmjePCyGY4K/S4LJmVS29TGxsrGz922tK6F3KHObeUEBb+I9FJrh48b//QhzxSWc9Np47n7vPyQ5sOPRvMmZmIMLNv8+cM9pXXNjh7fBwW/iPRCQ0sHVzy2irc2V3HnuVO55cxJUX8R90gyBiYybWTa547z+/yWHXUtjh7fBwW/iPTQ7oZWLvrd+6wrb+C3i2dw5Ym5kS4pLOZPymJt+V72NLcfdpvKhkArp1MnZ+ui4BeRkBVXN3HBQ+9TsbeVx6+ZzTnTRkS6pLBZMDkLv4UVW2sOu01XK2duhoZ6RMQDPtqxh4sefp+2Tj9Lrz+Bk8ZnRLqksJo2Mo2hKQksLzp88Jc4eIH17tTOKSIHtHb4qG9up66pnbrmNuqb26lvbqdmXxtP/quMzEGJ/PG6OY4f6jiUmGBb5ztbDt/WWVYXaOUc7pB7FA5HwS/iMZUN+3nqgx1UNbZS19xOXXM79c1t1De109zuO+Q+cTGGGaPTeeCyGWQ6dCriUMyflMnzH+3i410NHD/q31f9KqltYczQZEe3coKCX8QzrLU8W1jOz/6xiZYOH1mDEhmSksCQlATGDk1mSEoiQwcmHHhu6IG/E0kdEOforp1QzZuQSUywrfNQwV9W1+z4jh5Q8It4wq69+/n+cx/z7tZaThg3hPsuOI7RDu9F7w/pKQlMH53O8qJqvnfGxM+85vdbyupbWDA5K0LVhY+CX8TFrLU8XVDO3a9swm8tPz13KpfNHeP4oYr+NH9iJr98Ywu1TW2fWSSmsrGV9k6/4y/sgrp6RFyrvL6FKx4r4Pbn1zMtJ43XvjuPK07MVeh/jq4z+hVbPtvdU3qgo8f5/1LSGb+Iy/j9lqcKdnDPK5sAuPu8fBbPGeWJMfpwyBuRSuagRJYV1XD+jJwDz3fNyunkefi7KPhFXGRHXQu3Pfcx/9pexykTMvif8/PJSXf+GerRFBNjOHViJm9srKLT5z8w/1DXrJxOb+UEDfWIuILfb3ni/VIW/noFn+xq4N4L8nny2jkK/V5aMCmLhv0drNu598BzpXXuaOUEnfGLOJq1lm01Tdz+/CcUlNRz6sRM/uf8fLIHD4h0aY528oQMYmMMyzbXMHPMECBwxu+GYR5Q8ItEPWstdc3tlNY2U1LbTFldCyV1zZTWBv40t/sYlBTHzy+cxoUzczSWHwZpA+KZOSadZUXV/L+Fk1zVygkKfpGoUtvUxootNYGQr2s5EO772joPbBMbYxiVPoDcjBRm5w5hbEYKi44d7pilDp1i/qRM7nu1iOrGVjr8lvZOv+Pn4e+i4BeJEsXV+7js96uoamwjxsDI9AHkDk3hvBkjyR2awtiMFHIzUshJH0C8Qxc8cZIFk7K479Uilm+pISc4dDbWBT38oOAXiQqf7GrgyiUFxBjDX288kfycNBLjnLeEoZtMHj6I4alJLC+q5gvBmUjHaIxfRMJhTVk9V/9hNalJ8fzp63NdMReMGxhjWDA5k3+sq2RYahIJcTGMcMlwmv69KBJBK7fWcvnvC8gYmMizN56o0I8yp07MYl9bJy+tq2TMEHe0ckIPgt8Ys8gYU2SMKTbGfP8Qr99ijNlojPnYGPOWMWZMt9euMsZsDf65KlzFizjZ6xt2c+3jqxkzNJlnbziRkWrBjDpfGD+U+FhDbVOba1o5IcTgN8bEAg8AZwF5wGJjTN5Bm30EzLLWTgP+CtwX3HcIcAcwF5gD3GGMSQ9P+SLO9Pe1u/iPpz5kSnYqS68/wdVz3DvZoKR4ZucG+vjdMEdPl1DP+OcAxdba7dbadmApcG73Day1y6y1LcGHHwBdk1wsBN6w1tZba/cAbwCL+l66iDP9edUOvvvMWmbnpvPU1+cyODkh0iXJESyYFOjdd9OqY6EG/0igvNvjncHnDuc64J892dcY82VjzCMNDQ0hliTiPI+u2M7tz69n/sRMHr9mDgMT1V8R7RYdO5yc9AHMGTsk0qWETajBf6grGvaQGxpzOTAL+HlP9rXWvmStvT4tLS3EkkScw1rLr97Ywl2vbOKc/BH87opZJMWrXdMJRg1JZuVtpzFx2KBIlxI2oQb/TmBUt8c5QMXBGxljvgj8EPiKtbatJ/uKuJW1lp+9vInfvLWVi2fl8JvF00mIU0OdRE6o//etBiYYY8YaYxKAS4AXu29gjJkO/I5A6Fd3e+k14ExjTHrwou6ZwedEXM/nt/zgb+t5bGUJV5+Uyz3nTyPWJS2B4lwhDTBaazuNMd8mENixwBJr7QZjzJ1AobX2RQJDOwOBvwQnidphrf2KtbbeGPNTAr88AO601taH/UhEokzD/g5+9MInvLSugu+cNp5bzpioCdQkKhhrDzlUHzGzZs2yhYWFkS5DpFeqGlt5fWMVr2/Yzb+21dHpt3z/rMnceOoxkS5NXM4Ys8ZaOyuUbdVSINJH22uaeG1DFa9v3M1HOwILd4zNSOG6U8Zy9rEjOG7U4AhXKPJZCn6RHrLWsn5XA69t2M3rG6rYWt0EQP7INP7fmRNZOHU447MGalhHopaCXyQEnT4/BSX1gbDfWEVlQyuxMYY5uUO4bO5ozpw6XKteiWMo+EUOo7XDx4otNby2oYq3Nlext6WDxLgY5k3M5NYzJ3H65CzSU3TXrTiPgl+km4aWDt4uquK1T6p4Z0sN+zt8pCbF8cUpwzhz6nDmTcwgOUE/NuJs+j9YPK+qsZXXg0M4XZ04w1ITuXBmDgunDmfuuCFa8UpcRcEvnlRe38I/Pq7ktQ27WVse6MQZl5HC108Zx8KpwzguZ7Br5l4XOZiCXzyj0+dnWVENf/qgjBVba7AWpuWoE0e8R8Evrre7oZVnVpezdPUOKhtaGZ6axM2nT+DCmTnkpLtnjnWRUCn4xZX8fst722r50wdlvLmpGp/fMm9iJj/5ylROn5xFnMbsxcMU/OIqdU1t/HXNTv5csIOyuhaGpCTwjVPGsXjOKFctpCHSFwp+cYWCknqeWlXGP9fvpt3nZ87YIdxyxkQWHTucxDjNey/SnYJfHO/RFdu565VNDEqK49K5o7l07mhXLZohEm4KfnG0TZWN/Py1Is7IG8b/XnK8bq4SCYGucIljtXf6ueXZdaQOiOOe8/MV+iIh0k+KONb/vrWFTZWNPHrlLIYOTIx0OSKOoTN+caQ1ZXt4aPk2Lp6Vwxl5wyJdjoijKPjFcVraO7n12bWMSBvAj7+UF+lyRBzHVUM9XctI6rZ7d7vnn5spq2/h6W+cwKCk+EiXI+I4rjnjX1u+l1k/e5PVpXsiXYr0oxVbanjyX2Vc+4WxnDBuaKTLEXEk1wR/dloSdc3tbKxoiHQp0k8aWjr4r79+zPisgfznwkmRLkfEsVwT/JmDEskYmMCGisZIlyL95I4XP6G2qY37Lz6epHjdjSvSW64JfmMMU0aksrFSwe9Gr6yv5IW1FXzntAnk56RFuhwRR3NN8ANMzU5ja1UT7Z3+SJciYVS9r5UfPr+eaTlpfHPBMZEuR8TxXBX8edmptPv8bKtpinQpEibWWn7w3Hpa2n386uLjtASiSBi46qcob0QqgMb5XeTZwnLe2lzNbYsmMz5LE6+JhIOrgn9sRgoD4mPZqOB3hfL6Fu58aSMnjhvK1SflRrocEddwVfDHxhgmjxjExkq1dDqd32+59S/rMMbw84umaeFzkTByVfBDYLhnY0Xjgbt4xZmWvFdCQUk9d3w5T+viioSZ+4I/O5XG1k527tkf6VKkl7ZU7eO+4Bz7F87MiXQ5Iq7jvuAPXuBVP78zbaho4KanP2JQYhz/c36+5l0S6QeumqQNYPLwVGIMbKxoZOHU4ZEuR0JgreXdrbU8smI7K4trSUmI5beXziBDc+yL9AvXBf+AhFjGZQ7UGb8DdPj8/OPjCh5ZUcKmykayBiVy26LJXDp3NGkDNOumSH9xXfBDYLhnTZlm6YxWTW2dLC3YwZKVJVQ0tDIhayD3XTiNc4/PJjFOc/CI9Dd3Bn92Ki+uq2BvSzuDkxMiXY4EVTW28of3SnlqVRn7Wjs5YdwQ7jovn1MnZqpdU+Qocmfwd7vAe9IxGRGuxj2stVQ2tBJjDHGxhvjYGOKDf8fFmMNeiN1StY9HVmzn72t34fNbzsofwQ3zxjEtZ/BRPgIRAbcGf3Yw+CsU/OFSXL2P25//hIKS+sNuEx9riIv59JdBfGwMsTGGXXv3MyA+lkvnjOa6k8cxeqj68kUiyZXBnzEwkWGpiZq6IQxaO3w8uKyYh97ZRnJCHLctmszg5Hg6fH46fJYOn59On592n6XT5//M811fj88ayKVzRpOeomE3kWjgyuCH4B286uzpk/eKa/nRC59QUtvMedNH8sNzpqjFUsQF3Bv82am8u7WW1g6fVmvqobqmNu56ZRN/+3AXY4Ym86fr5nLyBA2ZibiFa4N/anYanX5LcXUTx47Uik2hsNbylzU7ufuVTTS3dfKd08bzrQXj9YtTxGVcG/wHOnsqGhX8ISiubuL259dTUFLP7Nx07j4vnwnDNP+9iBu5NvhHD0kmJSGWDRUNwKhIlxO1Wjt8PLh8Gw8tLyY5IY57L8jnopmj1Fcv4mKuDf6YGC2+/nne31bLD58PXLz96vHZ/OhLebp4K+IBrg1+gKnZqTz34S78fqsz2IOsK9/L5b9fxaghyfzxujmcMiEz0iWJyFHiummZu8vLTqWprZPyPS2RLiWqWGv56T82MiQlgZe+c7JCX8Rj3B38IwIXdbX4+me9sn43hWV7uPXMSaQmaRZMEa9xdfBPGDaQ2BijO3i7ae3wcc+rm5g8fBAXz9JFbxEvcnXwJ8XHMiFLc/N398T7pZTX7+dH5+QRq+seIp7k6uCHTxdfF6htauO3bxdz2uQs3Ykr4mHuD/7sVHY3tlLX1BbpUiLu129uoaXDx+1nT4l0KSISQe4Pfi2+DgTmxP/zqh1cPnc047MGRrocEYkg9wd/t7n5veyulzeRkhjHzV+cGOlSRCTCXB/8g5MTGDl4gKfP+JcXVfPOlhpuPn0CQzQnvojnuT74AaaMSPVsL3+nz89dL29izNBkrjhxTKTLEZEo4Ingz8tOZXtNE/vbfZEu5ahburqcrdVN/OCsySTGaXplEfFK8I9IxW+hqGpfpEs5qhpbO7j/jS3MGTuEhVOHR7ocEYkSngj+qR69wPvAsmLqmtv58Tl5GKObtUQkwBPBn5M+gEFJccG5+b2hvL6FP6ws5fwZI8nP0UI0IvIpTwS/McZzi6/f8+pmYmLgvxZOjnQpIhJlPBH8ELjAu7lyHz6/jXQp/a6wtJ6XP67khnnHMDwtKdLliEiU8UzwT81OY3+Hj9K65kiX0q/8fstPX97EsNREbjh1XKTLEZEo5Jng7774upu9uK6CdeV7+c+Fk0lOcPUCayLSS54J/vFZA4mPNa6+kWt/u497X93MsSNTOX/6yEiXIyJRyjPBnxAXw4SsQa6+wPvYyu1UNrTyo3PytMawiByWZ4IfAv38bh3qqW5s5cHl21g4dRgnjBsa6XJEJIp5KvjzslOpbWqjel9rpEsJK7/f8rOXN9Hh8/ODszTXvogcmbeCP3iB103j/H6/5YcvrOfFdRV8e8EEcjNSIl2SiEQ5TwX/FJdN3eDzW/7zrx/zdEE531pwDDedPj7SJYmIA3iq3y81KZ7RQ5JdcYG30+fn1r+s4+9rK/jeFydy0+njNR+PiITEU8EPgeGeTQ4/4+/w+bl56Ue8sn43/7VoEt+crzN9EQmdp4Z6IHCBt6Sumea2zkiX0ittnT7+408f8sr63fzonCkKfRHpMe8F/4hUrIXNu5131t/a4eP6J9fw5qYq7jx3Kl8/RVMyiEjPeS74p4505gXelvZOrntiNSu21nDP+flceWJupEsSEYfy3Bj/8NQk0pPjHXWBt6mtk2sfX01haT2/uPA4LpiZE+mSRMTBPBf8xhjysp2z+HpjawdXLylg3c4Gfn3JdL5yXHakSxIRh/PcUA8Exvk3795Hp88f6VKOaG9LO5f/fhXrdzXwwKUKfREJD08G/9TsNNo7/Wyvjd65+eub27n00VVsrtzHw5fPZNGxIyJdkoi4hCeDPy/K7+Ct3tfK4kc+YFtNE49eNYvTpwyLdEki4iKeDP5xGSkkxMVE5eLr72+r5ZzfrGRHfQt/uHo2p07MjHRJIuIynru4CxAXG8Pk4dE1N7/Pb3lgWTG/fnMLYzNS+ON1c5g8PDXSZYmIC3ky+CFwgfe1Dbux1kZ8jpuafW1875m1rCyu5bzpI/nZV48lJdGzH42I9DNPDvVAYFGWPS0d7G6M7Nz8/9pWx9m/eZfVpfXce0E+v7r4OIW+iPQrzyZM9wu8I9IGHPXv7/NbHlxWzP1vbiF3aApPXjuHKSM0tCMi/c+zwT9peCrGBBZlOdpdM7VNgaGdd7fWcu7x2dx1Xj4DdZYvIkeJZ9NmYGIcuUNTjnpL57+21XHz0o9o2N/BPefn87XZoyJ+jUFEvMWzwQ+B4Z61O/YelQu8/mDXTtfQzhMa2hGRCPHsxV2AUydmsmvvfh56Z1u/fp/apjau+kMBv3xjC1+als2L3zlZoS8iEePpM/6LZuawcmstP3+tiCkjUlkwKSvs32NbTROXPvoBe1o6uPu8fBbP0dCOiESWp8/4jTHce8E0pgxP5aanP6IkzHP3VDW2cuVjBXT6LM9/8yQunTtaoS8iEefp4AcYkBDLI1fOJD42hm88WUhTmJZkbNjfwVVLCtjb0s7j18xhanZaWN5XRKSvPB/8ADnpyfz20umU1DZzyzNr8fttn96vtcPHN54sZFtNEw9fMZP8HIW+iEQPBX/QScdk8MOzp/D6xir+7+3iXr+Pz2/57tK1FJTU84uLjuOUCZpkTUSii4K/m2u+kMv5M0Zy/5tbeGNjVY/3t9by33//hFc37ObHX8rj3ONH9kOVIiJ9o+DvxhjD3eflMy0nje89s5bi6qYe7f+bt4p5atUObjz1GK47eWw/VSki0jchBb8xZpExpsgYU2yM+f4hXp9njPnQGNNpjLnwoNeuMsZsDf65KlyF95ek+FgevnwmSfExXP9kIY2tHSHt99SqMu5/cwsXzMjhtkWT+rlKEZHe+9zgN8bEAg8AZwF5wGJjTN5Bm+0Argb+fNC+Q4A7gLnAHOAOY0x638vuX9mDB/DgZTPZUd/Cd5d+/sXeVz/ZzY9f+IQFkzK554J8tWyKSFQL5Yx/DlBsrd1urW0HlgLndt/AWltqrf0YOHj18oXAG9baemvtHuANYFEY6u53c8YO4Y6vTOXtzdXc/+aWw263ansdNy39iONGDeaBy2YQH6vRMxGJbqGk1EigvNvjncHnQhHSvsaY640xhcaYwpqamhDfuv9dPnc0X5s1iv97u5h/rq/8t9c3727k608WMip9AEuumk1ygqdvhBYRhwgl+A81bhFqo3tI+1prH7HWzrLWzsrMjJ72R2MMd351KtNHD+bWv6yjaPe+A6+V17dw5WMFpCTE8eR1c0lPSYhgpSIioQsl+HcCo7o9zgEqQnz/vuwbFRLjAhd7UxLj+MaThextaae+uZ2rlhTQ2uHjiWvnMHLw0V/IRUSkt0IJ/tXABGPMWGNMAnAJ8GKI7/8acKYxJj14UffM4HOOMiw1iYcvn0llw36+8/RHXPP4anbt3c9jV89m0vBBkS5PRKRHPjf4rbWdwLcJBPYm4Flr7QZjzJ3GmK8AGGNmG2N2AhcBvzPGbAjuWw/8lMAvj9XAncHnHGfmmHR+eu6xvLu1lvU79/J/i6czO3dIpMsSEekxY23f5qUJt1mzZtnCwsJIl3FYS1YNkD6NAAAEUklEQVSWkD04iUXHjoh0KSIiBxhj1lhrZ4WyrdpQeuha3ZErIg6npnMREY9R8IuIeIyCX0TEYxT8IiIeo+AXEfGYkIM/hKmZE40xzwRfX2WMyQ0+n2CM+YMxZr0xZp0xZn7YqhcRkR4LdT7+UKZmvg7YY60dD9wP3Bt8/hsA1tp84Azgl8YY/UtDRCRCQg3gz52aOfj4ieDXfwVON4GJ6fOAtwCstdXAXiCkmwxERCT8Qr2B61DTK8893DbW2k5jTAMwFFgHnGuMWUpgwraZwb8Luu9sjPky8GWg0RiztYfH0V0GUNuH/Z1Mx+5dXj5+Lx87fHr8Y0LdIdTgD2V65cNtswSYAhQCZcD7QOe/bWjtS8BLwPUh1nToQo0pDPW2ZbfRsXvz2MHbx+/lY4feHX+owR/K9Mpd2+w0xsQBaUC9DUwG9L1uRb4P9OWMXkRE+iDUMf5QpmZ+EehaTP1C4G1rrTXGJBtjUgCMMWcAndbajWGoXUREeiGkM/7gmH3X1MyxwJKuqZmBQmvti8BjwB+NMcVAPYFfDgBZwGvGGD+wC7gi3AdxkEf6+f2jmY7du7x8/F4+dujF8UfdtMwiItK/1E8vIuIxrgn+z7uz2O2MMaXBu6PXGmOidyWbMDDGLDHGVBtjPun23BBjzBvGmK3Bv9MjWWN/Oszx/8QYsyv4+a81xpwdyRr7izFmlDFmmTFmkzFmgzHm5uDzrv/8j3DsPf7sXTHUE7yzeAuBO4N3ErgYvdhLF5GNMaXALGut6/uZjTHzgCbgSWvtscHn7iPQRXZP8Bd/urX2tkjW2V8Oc/w/AZqstb+IZG39zRgzAhhhrf3QGDMIWAN8Fbgal3/+Rzj2i+nhZ++WM/5Q7iwWl7DWriDQQNBd9zvHnyDwA+FKhzl+T7DWVlprPwx+vY/AOuAj8cDnf4Rj7zG3BP+h7izu1X8QB7PA68aYNcaYPt0E51DDrLWVEPgBIdBN5jXfNsZ8HBwKct1Qx8GCE0FOB1bhsc//oGOHHn72bgn+UO4sdrsvWGtnEJhI71vB4QDxjoeAY4DjgUrgl5Etp38ZYwYCzwHftdY2Rrqeo+kQx97jz94twR/KncWuZq2tCP5dDTxPYPjLS6qCY6BdY6HVEa7nqLLWVllrfdZaP/AoLv78jTHxBILvKWvt34JPe+LzP9Sx9+azd0vwh3JnsWsZY1KCF3sI3iV9JvDJkfdyne53jl8F/D2CtRx1XaEXdB4u/fyDM/4+Bmyy1v6q20uu//wPd+y9+exd0dUDEGxh+jWf3ll8V4RLOmqMMeMInOVD4G7sP7v5+I0xTwPzCcxKWAXcAbwAPAuMBnYAF1lrXXkB9DDHP5/AP/UtUArc0DXm7SbGmJOBd4H1gD/49O0Exrpd/fkf4dgX08PP3jXBLyIioXHLUI+IiIRIwS8i4jEKfhERj1Hwi4h4jIJfRMRjFPwiIh6j4BcR8RgFv4iIx/x/6T1/JnMSesMAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.yscale(\"logit\")\n", "plt.plot(df[\"revol_util_cat\"].index, df[\"mean_bad_loan\"])" @@ -2762,91 +1048,16 @@ }, { "cell_type": "code", - "execution_count": 81, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
revol_util_catnrowmean_bad_loan
20(95.0,100.0]43160.255097
21(100.0,105.0]2380.260504
22(105.0,110.0]350.200000
23(110.0,115.0]90.333333
24(115.0,120.0]30.000000
\n", - "
" - ], - "text/plain": [ - " revol_util_cat nrow mean_bad_loan\n", - "20 (95.0,100.0] 4316 0.255097\n", - "21 (100.0,105.0] 238 0.260504\n", - "22 (105.0,110.0] 35 0.200000\n", - "23 (110.0,115.0] 9 0.333333\n", - "24 (115.0,120.0] 3 0.000000" - ] - }, - "execution_count": 81, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df[20:25]" ] }, { "cell_type": "code", - "execution_count": 82, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2878,47 +1089,16 @@ }, { "cell_type": "code", - "execution_count": 83, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Probs total_accQuantiles
0 1
0.05 8
0.25 16
0.5 23
0.75 31
0.95 46
1 118
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 83, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"total_acc\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" ] }, { "cell_type": "code", - "execution_count": 84, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2928,7 +1108,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2937,30 +1117,9 @@ }, { "cell_type": "code", - "execution_count": 86, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.yscale(\"logit\")\n", "plt.plot(df[\"total_acc_cat\"].index, df[\"mean_bad_loan\"])" @@ -2968,196 +1127,34 @@ }, { "cell_type": "code", - "execution_count": 87, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
C1 Count
0 163958
1 29
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "(train[\"total_acc\"] == None).table()" ] }, { "cell_type": "code", - "execution_count": 88, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
total_acc_catnrowmean_bad_loan
0NaN00.153788
1(0.0,5.0]23090.226072
2(5.0,10.0]127170.210034
\n", - "
" - ], - "text/plain": [ - " total_acc_cat nrow mean_bad_loan\n", - "0 NaN 0 0.153788\n", - "1 (0.0,5.0] 2309 0.226072\n", - "2 (5.0,10.0] 12717 0.210034" - ] - }, - "execution_count": 88, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df[0:3]" ] }, { "cell_type": "code", - "execution_count": 89, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
total_acc_catnrowmean_bad_loan
8(35.0,40.0]112510.163719
9(40.0,45.0]71740.161137
10(45.0,50.0]42030.157507
11(50.0,55.0]23500.140426
12(55.0,60.0]12870.165501
\n", - "
" - ], - "text/plain": [ - " total_acc_cat nrow mean_bad_loan\n", - "8 (35.0,40.0] 11251 0.163719\n", - "9 (40.0,45.0] 7174 0.161137\n", - "10 (45.0,50.0] 4203 0.157507\n", - "11 (50.0,55.0] 2350 0.140426\n", - "12 (55.0,60.0] 1287 0.165501" - ] - }, - "execution_count": 89, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df[8:13]" ] }, { "cell_type": "code", - "execution_count": 90, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -3186,47 +1183,16 @@ }, { "cell_type": "code", - "execution_count": 91, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
Probs longest_credit_lengthQuantiles
0 0
0.05 6
0.25 10
0.5 14
0.75 18
0.95 28
1 65
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"longest_credit_length\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" ] }, { "cell_type": "code", - "execution_count": 92, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -3236,7 +1202,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -3245,30 +1211,9 @@ }, { "cell_type": "code", - "execution_count": 94, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "plt.yscale(\"logit\")\n", "plt.plot(df[\"longest_credit_length_cat\"].index, df[\"mean_bad_loan\"])" @@ -3276,175 +1221,25 @@ }, { "cell_type": "code", - "execution_count": 95, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
longest_credit_length_catnrowmean_bad_loan
0NaN00.171094
1(0.0,1.0]670.253731
2(1.0,2.0]1000.300000
3(2.0,3.0]9140.205689
\n", - "
" - ], - "text/plain": [ - " longest_credit_length_cat nrow mean_bad_loan\n", - "0 NaN 0 0.171094\n", - "1 (0.0,1.0] 67 0.253731\n", - "2 (1.0,2.0] 100 0.300000\n", - "3 (2.0,3.0] 914 0.205689" - ] - }, - "execution_count": 95, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df[0:4]" ] }, { "cell_type": "code", - "execution_count": 96, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
longest_credit_length_catnrowmean_bad_loan
20(19.0,20.0]46820.163392
21(20.0,21.0]38920.157760
22(21.0,22.0]33500.160000
23(22.0,23.0]30920.167206
24(23.0,24.0]28560.176821
25(24.0,25.0]24710.164711
\n", - "
" - ], - "text/plain": [ - " longest_credit_length_cat nrow mean_bad_loan\n", - "20 (19.0,20.0] 4682 0.163392\n", - "21 (20.0,21.0] 3892 0.157760\n", - "22 (21.0,22.0] 3350 0.160000\n", - "23 (22.0,23.0] 3092 0.167206\n", - "24 (23.0,24.0] 2856 0.176821\n", - "25 (24.0,25.0] 2471 0.164711" - ] - }, - "execution_count": 96, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "df[20:26]" ] }, { "cell_type": "code", - "execution_count": 97, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -3471,42 +1266,16 @@ }, { "cell_type": "code", - "execution_count": 98, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
verification_status Count
not verified 59155
verified 104832
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 98, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"verification_status\"].table()" ] }, { "cell_type": "code", - "execution_count": 99, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -3518,35 +1287,9 @@ }, { "cell_type": "code", - "execution_count": 100, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
verified Count
0 59155
1 104832
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [] - }, - "execution_count": 100, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "train[\"verified\"].table()" ] @@ -3560,74 +1303,27 @@ }, { "cell_type": "code", - "execution_count": 101, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
model_id auc logloss mean_per_class_error rmse mse
StackedEnsemble_AllModels_0_AutoML_20180816_011533 0.682867 0.446775 0.3674150.3749180.140563
StackedEnsemble_BestOfFamily_0_AutoML_20180816_0115330.682505 0.446838 0.3684 0.3749410.140581
GBM_grid_0_AutoML_20180816_011533_model_0 0.680493 0.445819 0.3695210.3746550.140366
GBM_grid_0_AutoML_20180816_011533_model_1 0.677665 0.447037 0.3726970.3752640.140823
GBM_grid_0_AutoML_20180816_011533_model_2 0.676167 0.44776 0.3720260.3755970.141073
GLM_grid_0_AutoML_20180816_011533_model_0 0.674138 0.44873 0.3733480.3756090.141082
XRT_0_AutoML_20180816_011533 0.664243 0.452034 0.3791510.3771130.142214
DRF_0_AutoML_20180816_011533 0.658237 0.456314 0.3856450.3785350.143289
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print(aml.leaderboard)" ] }, { "cell_type": "code", - "execution_count": 102, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['emp_length', 'loan_amnt_core', 'loan_amnt_delta', 'term_60months', 'emp_length_missing', 'home_ownership_3cat', 'annual_inc_core', 'annual_inc_delta', 'te_purpose', 'te_addr_state', 'dti_core', 'dti_delta', 'delinq_2yrs_core', 'delinq_2yrs_delta', 'revol_util_0', 'revol_util_core', 'revol_util_delta', 'total_acc_core', 'total_acc_delta', 'longest_credit_length_core', 'longest_credit_length_delta', 'verified']\n" - ] - } - ], + "outputs": [], "source": [ "print(x_trans)" ] }, { "cell_type": "code", - "execution_count": 103, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "AutoML progress: |████████████████████████████████████████████████████████| 100%\n" - ] - } - ], + "outputs": [], "source": [ "aml_trans = H2OAutoML(max_models = 6, exclude_algos = ['DeepLearning'])\n", "aml_trans.train(x = x_trans, y = y, training_frame = train)" @@ -3635,47 +1331,16 @@ }, { "cell_type": "code", - "execution_count": 104, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
model_id auc logloss mean_per_class_error rmse mse
StackedEnsemble_AllModels_0_AutoML_20180816_012302 0.683555 0.445507 0.3672220.3742120.140034
StackedEnsemble_BestOfFamily_0_AutoML_20180816_0123020.682983 0.445696 0.3673890.3743180.140114
GBM_grid_0_AutoML_20180816_012302_model_0 0.682355 0.444445 0.3671040.3739410.139832
GBM_grid_0_AutoML_20180816_012302_model_1 0.680878 0.444939 0.3686580.3741650.139999
GBM_grid_0_AutoML_20180816_012302_model_2 0.679493 0.445494 0.37073 0.3744460.14021
GLM_grid_0_AutoML_20180816_012302_model_0 0.676563 0.446299 0.3722030.3747140.140411
XRT_0_AutoML_20180816_012302 0.665792 0.451347 0.38011 0.3768810.142039
DRF_0_AutoML_20180816_012302 0.662781 0.452671 0.3833490.3774230.142448
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "print(aml_trans.leaderboard)" ] }, { "cell_type": "code", - "execution_count": 105, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -3684,101 +1349,63 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], + "source": [ + "best_model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "best_model_trans.varimp_plot()" ] }, { "cell_type": "code", - "execution_count": 107, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "AUC (orig): train = 0.7264, valid = 0.6875, xval = 0.6805\n" - ] - } - ], + "outputs": [], "source": [ - "print(\"AUC (orig): train = {:.4f}, valid = {:.4f}, xval = {:.4f}\" \\\n", + "print(\"AUC (orig): train = {:.4f}, xval = {:.4f}\" \\\n", " .format(best_model.auc(train = True),\n", - " best_model.auc(valid = True),\n", " best_model.auc(xval = True)))" ] }, { "cell_type": "code", - "execution_count": 108, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "AUC (trans): train = 0.7153, valid = 0.6846, xval = 0.6824\n" - ] - } - ], + "outputs": [], "source": [ - "print(\"AUC (trans): train = {:.4f}, valid = {:.4f}, xval = {:.4f}\" \\\n", + "print(\"AUC (trans): train = {:.4f}, xval = {:.4f}\" \\\n", " .format(best_model_trans.auc(train = True),\n", - " best_model_trans.auc(valid = True),\n", " best_model_trans.auc(xval = True)))" ] }, { "cell_type": "code", - "execution_count": 109, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Logloss (orig): train = 0.4277, valid = 0.4384, xval = 0.4458\n" - ] - } - ], + "outputs": [], "source": [ - "print(\"Logloss (orig): train = {:.4f}, valid = {:.4f}, xval = {:.4f}\" \\\n", + "print(\"Logloss (orig): train = {:.4f}, xval = {:.4f}\" \\\n", " .format(best_model.logloss(train = True),\n", - " best_model.logloss(valid = True),\n", " best_model.logloss(xval = True)))" ] }, { "cell_type": "code", - "execution_count": 110, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Logloss (trans): train = 0.4308, valid = 0.4419, xval = 0.4444\n" - ] - } - ], + "outputs": [], "source": [ - "print(\"Logloss (trans): train = {:.4f}, valid = {:.4f}, xval = {:.4f}\" \\\n", + "print(\"Logloss (trans): train = {:.4f}, xval = {:.4f}\" \\\n", " .format(best_model_trans.logloss(train = True),\n", - " best_model_trans.logloss(valid = True),\n", " best_model_trans.logloss(xval = True)))" ] }, @@ -3791,20 +1418,19 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "H2O session _sid_b7ac closed.\n" - ] - } - ], + "outputs": [], "source": [ "h2o.cluster().shutdown()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -3823,7 +1449,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.7.0" } }, "nbformat": 4, diff --git a/training/h2o_3_hands_on/automl/lending_club_automl_prerun.ipynb b/training/h2o_3_hands_on/automl/lending_club_automl_prerun.ipynb new file mode 100644 index 000000000..e26ebca39 --- /dev/null +++ b/training/h2o_3_hands_on/automl/lending_club_automl_prerun.ipynb @@ -0,0 +1,5103 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Lending Club Analysis Using AutoML" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup H2O Cluster" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import h2o" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Checking whether there is an H2O instance running at http://localhost:54321..... not found.\n", + "Attempting to start a local H2O server...\n", + " Java Version: java version \"1.8.0_191\"; Java(TM) SE Runtime Environment (build 1.8.0_191-b12); Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)\n", + " Starting server from /home/h2o/Miniconda3/envs/h2o/lib/python3.6/site-packages/h2o/backend/bin/h2o.jar\n", + " Ice root: /tmp/tmpp_c36dvh\n", + " JVM stdout: /tmp/tmpp_c36dvh/h2o_unknownUser_started_from_python.out\n", + " JVM stderr: /tmp/tmpp_c36dvh/h2o_unknownUser_started_from_python.err\n", + " Server is running at http://127.0.0.1:54321\n", + "Connecting to H2O server at http://127.0.0.1:54321... successful.\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
H2O cluster uptime:02 secs
H2O cluster timezone:Etc/UTC
H2O data parsing timezone:UTC
H2O cluster version:3.22.1.3
H2O cluster version age:9 days
H2O cluster name:H2O_from_python_unknownUser_u1uow5
H2O cluster total nodes:1
H2O cluster free memory:5.333 Gb
H2O cluster total cores:16
H2O cluster allowed cores:16
H2O cluster status:accepting new members, healthy
H2O connection url:http://127.0.0.1:54321
H2O connection proxy:None
H2O internal security:False
H2O API Extensions:XGBoost, Algos, AutoML, Core V3, Core V4
Python version:3.6.6 final
" + ], + "text/plain": [ + "-------------------------- ----------------------------------------\n", + "H2O cluster uptime: 02 secs\n", + "H2O cluster timezone: Etc/UTC\n", + "H2O data parsing timezone: UTC\n", + "H2O cluster version: 3.22.1.3\n", + "H2O cluster version age: 9 days\n", + "H2O cluster name: H2O_from_python_unknownUser_u1uow5\n", + "H2O cluster total nodes: 1\n", + "H2O cluster free memory: 5.333 Gb\n", + "H2O cluster total cores: 16\n", + "H2O cluster allowed cores: 16\n", + "H2O cluster status: accepting new members, healthy\n", + "H2O connection url: http://127.0.0.1:54321\n", + "H2O connection proxy:\n", + "H2O internal security: False\n", + "H2O API Extensions: XGBoost, Algos, AutoML, Core V3, Core V4\n", + "Python version: 3.6.6 final\n", + "-------------------------- ----------------------------------------" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h2o.init(max_mem_size = \"6g\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Import data and Manage Data Types\n", + "\n", + "This exploration of H2O will use a version of the Lending Club Loan Data that can be found on [Kaggle](https://www.kaggle.com/wendykan/lending-club-loan-data). This data consists of 15 variables:\n", + "\n", + "| | Column Name | Description |\n", + "| --- | ----------- | ----------- |\n", + "| 1 | loan_amnt | Requested loan amount (US dollars) |\n", + "| 2 | term | Loan term length (months) |\n", + "| 3 | int_rate | Recommended interest rate |\n", + "| 4 | emp_length | Employment length (years) |\n", + "| 5 | home_ownership| Housing status |\n", + "| 6 | annual_inc | Annual income (US dollars) |\n", + "| 7 | purpose | Purpose for the loan |\n", + "| 8 | addr_state | State of residence |\n", + "| 9 | dti | Debt to income ratio |\n", + "| 10 | delinq_2yrs | Number of delinquencies in the past 2 years |\n", + "| 11 | revol_util | Percent of revolving credit line utilized |\n", + "| 12 | total_acc | Number of active accounts |\n", + "| 13 | bad_loan | Bad loan indicator |\n", + "| 14 | longest_credit_length | Age of oldest active account |\n", + "| 15 | verification_status | Income verification status |" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parse progress: |█████████████████████████████████████████████████████████| 100%\n" + ] + } + ], + "source": [ + "# https://s3-us-west-2.amazonaws.com/h2o-tutorials/data/topics/data/automl/loan.csv\n", + "train = h2o.import_file(\"../../data/topics/automl/loan.csv\")\n", + "train[\"bad_loan\"] = train[\"bad_loan\"].asfactor()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rows:163987\n", + "Cols:15\n", + "\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
loan_amnt term int_rate emp_length home_ownership annual_inc purpose addr_state dti delinq_2yrs revol_util total_acc bad_loan longest_credit_length verification_status
type int enum real int enum real enum enum real int real int enum int enum
mins 500.0 5.42 0.0 1896.0 0.0 0.0 0.0 1.0 0.0
mean 13074.169141456337 13.7159040655661735.684352932995329 71915.670519749 15.8815301212901050.227357006062528254.07917280242256 24.579733834274627 14.854273655448347
maxs 35000.0 26.06 10.0 7141778.0 39.99 29.0 150.70000000000002118.0 65.0
sigma 7993.55618873465 4.39193987054579353.610663731100236 59070.91565491825 7.587668224192548 0.694167922928418225.28536676677050511.685190365910659 6.947732922546696
zeros 0 0 14248 0 270 139459 1562 0 11
missing0 0 0 5804 0 4 0 0 0 29 193 29 0 29 0
0 5000.0 36 months10.65 10.0 RENT 24000.0 credit_card AZ 27.65 0.0 83.7 9.0 0 26.0 verified
1 2500.0 60 months15.27 0.0 RENT 30000.0 car GA 1.0 0.0 9.4 4.0 1 12.0 verified
2 2400.0 36 months15.96 10.0 RENT 12252.0 small_business IL 8.72 0.0 98.5 10.0 0 10.0 not verified
3 10000.0 36 months13.49 10.0 RENT 49200.0 other CA 20.0 0.0 21.0 37.0 0 15.0 verified
4 5000.0 36 months7.9 3.0 RENT 36000.0 wedding AZ 11.2 0.0 28.3 12.0 0 7.0 verified
5 3000.0 36 months18.64 9.0 RENT 48000.0 car CA 5.35000000000000050.0 87.5 4.0 0 4.0 verified
6 5600.0 60 months21.28 4.0 OWN 40000.0 small_business CA 5.55 0.0 32.6 13.0 1 7.0 verified
7 5375.0 60 months12.69 0.0 RENT 15000.0 other TX 18.08 0.0 36.5 3.0 1 7.0 verified
8 6500.0 60 months14.65 5.0 OWN 72000.0 debt_consolidationAZ 16.12 0.0 20.6 23.0 0 13.0 not verified
9 12000.0 36 months12.69 10.0 OWN 75000.0 debt_consolidationCA 10.78 0.0 67.10000000000001 34.0 0 22.0 verified
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "train.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train Models Using H2O's AutoML" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AutoML progress: |████████████████████████████████████████████████████████| 100%\n" + ] + } + ], + "source": [ + "# Set target and predictor variables\n", + "y = \"bad_loan\"\n", + "x = train.col_names\n", + "x.remove(y)\n", + "x.remove(\"int_rate\")\n", + "\n", + "# Use Auto ML to train models\n", + "from h2o.automl import H2OAutoML\n", + "aml = H2OAutoML(max_models = 6, exclude_algos = ['DeepLearning'])\n", + "aml.train(x = x, y = y, training_frame = train)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
model_id auc logloss mean_per_class_error rmse mse
StackedEnsemble_AllModels_AutoML_20190204_105352 0.684653 0.444916 0.3664590.3740010.139877
StackedEnsemble_BestOfFamily_AutoML_20190204_1053520.684095 0.445076 0.3681 0.3740640.139924
XGBoost_1_AutoML_20190204_105352 0.682381 0.444104 0.36856 0.3737160.139664
XGBoost_2_AutoML_20190204_105352 0.681244 0.444554 0.3696250.37401 0.139883
XGBoost_3_AutoML_20190204_105352 0.676053 0.446428 0.3726640.3748480.140511
GLM_grid_1_AutoML_20190204_105352_model_1 0.674157 0.447619 0.3735430.3749730.140605
XRT_1_AutoML_20190204_105352 0.666562 0.449967 0.3790130.3762070.141532
DRF_1_AutoML_20190204_105352 0.662709 0.45256 0.3824450.3770470.142164
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(aml.leaderboard)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Examine the Best Model" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "best_model = h2o.get_model(aml.leaderboard[2,'model_id'])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "import warnings\n", + "import matplotlib.cbook\n", + "warnings.filterwarnings(\"ignore\", category = matplotlib.cbook.mplDeprecation)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "best_model.varimp_plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC: train = 0.6993, xval = 0.6824\n" + ] + } + ], + "source": [ + "print(\"AUC: train = {:.4f}, xval = {:.4f}\"\\\n", + " .format(best_model.auc(train = True), best_model.auc(xval = True)))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logloss: train = 0.4380, xval = 0.4441\n" + ] + } + ], + "source": [ + "print(\"Logloss: train = {:.4f}, xval = {:.4f}\" \\\n", + " .format(best_model.logloss(train = True), best_model.logloss(xval = True)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Perform Feature Engineering\n", + "\n", + "The goal of this section is to improve upon these predictors through a number of feature engineering steps. In particular, we will perform three feature engineering tasks:\n", + "\n", + "1. **Separating Typical from Extreme Loan Amount**\n", + "1. **Converting Term to a 0/1 Indicator**\n", + "1. **Creating Missing Value Indicator for Employment Length**\n", + "1. **Combining Categories in Home Ownership**\n", + "1. **Separating Typical from Extreme Annual Income**\n", + "1. **Creating Target Encoding for Loan Purpose**\n", + "1. **Creating Target Encoding for State of Residence**\n", + "1. **Separating Typical from Extreme Debt to Income Ratio**\n", + "1. **Separating Typical from Extreme Number of Delinquencies in the Past 2 Years**\n", + "1. **Separating Typical from Extreme Revolving Credit Line Utilized**\n", + "1. **Separating Typical from Extreme Number of Credit Lines**\n", + "1. **Separating Typical from Extreme Longest Credit Length**\n", + "1. **Converting Income Verification Status to a 0/1 Indicator**" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "y = \"bad_loan\"\n", + "x_orig = train.col_names\n", + "x_orig.remove(y)\n", + "x_orig.remove(\"int_rate\")\n", + "\n", + "x_trans = x_orig.copy()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cross Validation and Target Encoding\n", + "\n", + "Some of the engineered features will use [cross-validated mean target encoding](https://github.com/h2oai/h2o-tutorials/blob/master/best-practices/categorical-predictors/target_encoding.md) of categorical predictors since one hot encodings can lead to overfitting of infrequent categories.\n", + "\n", + "To achieve this goal, we will first create soft partitions using H2OFrame's [`kfold_column`](http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/frame.html?highlight=kfold_column#h2o.frame.H2OFrame.kfold_column) function, then calculate summary statistics using H2O's [`group_by`](http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/frame.html#groupby) function, and finally join these engineered features using H2OFrame's [`merge`](http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/frame.html?highlight=merge#h2o.frame.H2OFrame.merge)." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "cv_nfolds = 5\n", + "cv_seed = 2307" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "train[\"cv_fold\"] = train.kfold_column(n_folds = cv_nfolds, seed = cv_seed)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
cv_fold Count
0 32848
1 32808
2 33035
3 32574
4 32722
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"cv_fold\"].table()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def logit(p):\n", + " return np.log(p) - np.log(1 - p)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "def mean_target(data, x, y = \"bad_loan\"):\n", + " grouped_data = data[[x, y]].group_by([x])\n", + " stats = grouped_data.count(na = \"ignore\").mean(na = \"ignore\")\n", + " return stats.get_frame().as_data_frame()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "def mean_target_encoding(data, x, y = \"bad_loan\", fold_column = \"cv_fold\", prior_mean = 0.183, prior_count = 1):\n", + " \"\"\"\n", + " Creates target encoding for binary target\n", + " data (H2OFrame) : data set\n", + " x (string) : categorical predictor column name\n", + " y (string) : binary target column name\n", + " fold_column (string) : cross-validation fold column name\n", + " prior_mean (float) : proportion of 1s in the target column\n", + " prior_count (positive number) : weight to give to prior_mean\n", + " \"\"\" \n", + " grouped_data = data[[x, fold_column, y]].group_by([x, fold_column])\n", + " grouped_data.sum(na = \"ignore\").count(na = \"ignore\")\n", + " df = grouped_data.get_frame().as_data_frame()\n", + " df_list = []\n", + " nfold = int(data[fold_column].max()) + 1\n", + " for j in range(0, nfold):\n", + " te_x = \"te_{}\".format(x)\n", + " sum_y = \"sum_{}\".format(y)\n", + " oof = df.loc[df[fold_column] != j, [x, sum_y, \"nrow\"]]\n", + " stats = oof.groupby([x]).sum()\n", + " stats[x] = stats.index\n", + " stats[fold_column] = j\n", + " p = (stats[sum_y] + (prior_count * prior_mean)) / (stats[\"nrow\"] + prior_count)\n", + " stats[te_x] = logit(p)\n", + " df_list.append(stats[[x, fold_column, te_x]])\n", + " return h2o.H2OFrame(pd.concat(df_list))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Separating Typical from Extreme Loan Amount\n", + "\n", + "After binning `loan_amt` using H2OFrame's [`cut`](http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/frame.html?highlight=cut#h2o.frame.H2OFrame.cut) function and looking at the fraction of bad loans on a logit scale, we see that the chance of a bad loan roughly increases linearly in loan amount from \\\\$5,000 to \\\\$30,000 and is relatively flat below \\$5,000 and above \\$30,000. To reflect this finding in the modeling, we will replace the original `loan_amnt` measure with two derived measures:\n", + "\n", + "\\begin{eqnarray}\n", + "loan\\_amnt\\_core & = & \\max(5000, \\min(loan\\_amnt, 30000)) \\\\\n", + "loan\\_amnt\\_diff & = & loan\\_amnt - loan\\_amnt\\_core\n", + "\\end{eqnarray}" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Probs loan_amntQuantiles
0 500
0.05 3000
0.25 7000
0.5 11325
0.75 18000
0.95 30000
1 35000
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"loan_amnt\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "breaks = np.linspace(0, 35000, 8).tolist()\n", + "train[\"loan_amnt_cat\"] = train[\"loan_amnt\"].cut(breaks = breaks)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"loan_amnt_cat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.xticks(rotation = 90)\n", + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"loan_amnt_cat\"], df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
loan_amnt_catnrowmean_bad_loan
0(0.0,5000.0]257850.163234
1(5000.0,10000.0]503840.164278
2(10000.0,15000.0]355520.173436
3(15000.0,20000.0]246590.208281
4(20000.0,25000.0]144470.214508
5(25000.0,30000.0]69130.238825
6(30000.0,35000.0]62470.236594
\n", + "
" + ], + "text/plain": [ + " loan_amnt_cat nrow mean_bad_loan\n", + "0 (0.0,5000.0] 25785 0.163234\n", + "1 (5000.0,10000.0] 50384 0.164278\n", + "2 (10000.0,15000.0] 35552 0.173436\n", + "3 (15000.0,20000.0] 24659 0.208281\n", + "4 (20000.0,25000.0] 14447 0.214508\n", + "5 (25000.0,30000.0] 6913 0.238825\n", + "6 (30000.0,35000.0] 6247 0.236594" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"loan_amnt\")\n", + "x_trans.append(\"loan_amnt_core\")\n", + "x_trans.append(\"loan_amnt_delta\")\n", + "\n", + "train[\"loan_amnt_core\"] = h2o.H2OFrame.ifelse(train[\"loan_amnt\"] <= 5000, 5000, train[\"loan_amnt\"])\n", + "train[\"loan_amnt_core\"] = h2o.H2OFrame.ifelse(train[\"loan_amnt_core\"] <= 30000, train[\"loan_amnt_core\"], 30000)\n", + "\n", + "train[\"loan_amnt_delta\"] = train[\"loan_amnt\"] - train[\"loan_amnt_core\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Converting Term to a 0/1 Indicator\n", + "\n", + "Given that term of the loans are either 3 or 5 years, we will create a simplifed `term_36month` binary indicator that is 1 when the terms of the loan is for 5 years and 0 for loans with a term of 3 years." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
term Count
36 months 129950
60 months 34037
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"term\"].table()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"term\")\n", + "x_trans.append(\"term_60months\")\n", + "\n", + "train[\"term_60months\"] = train[\"term\"] == \"60 months\"" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
term_60months Count
0 129950
1 34037
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"term_60months\"].table()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating Missing Value Indicator for Employment Length\n", + "\n", + "The most interesting characteristic about employment length is whether or not it is missing. The divide between those with missing values for employment length to those who have a recorded employment length is 26.3% bad loans to 18.0% bad loans respectively. Interestingly, there doesn't appear to be any differences in bad loans across employment lengths." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
emp_length
type int
mins 0.0
mean 5.684352932995329
maxs 10.0
sigma 3.610663731100236
zeros 14248
missing5804
0 10.0
1 0.0
2 10.0
3 10.0
4 3.0
5 9.0
6 4.0
7 0.0
8 5.0
9 10.0
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "train[\"emp_length\"].summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.append(\"emp_length_missing\")\n", + "\n", + "train[\"emp_length_missing\"] = train[\"emp_length\"] == None" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parse progress: |█████████████████████████████████████████████████████████| 100%\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
emp_length_missing cv_fold te_emp_length_missing
0 0 -1.52145
1 0 -1.03907
0 1 -1.51691
1 1 -1.02443
0 2 -1.51666
1 2 -1.05314
0 3 -1.51154
1 3 -1.02223
0 4 -1.51157
1 4 -1.01582
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean_target_encoding(train, \"emp_length_missing\")" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"emp_length\")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"emp_length\"], df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
emp_lengthnrowmean_bad_loan
0NaN00.262922
10.0142480.184307
21.0114140.177238
32.0157660.173728
43.0136110.178679
54.0110240.173258
65.0123470.181664
76.0100000.188500
87.090790.190770
98.074240.185614
109.060870.187120
1110.0471830.177670
\n", + "
" + ], + "text/plain": [ + " emp_length nrow mean_bad_loan\n", + "0 NaN 0 0.262922\n", + "1 0.0 14248 0.184307\n", + "2 1.0 11414 0.177238\n", + "3 2.0 15766 0.173728\n", + "4 3.0 13611 0.178679\n", + "5 4.0 11024 0.173258\n", + "6 5.0 12347 0.181664\n", + "7 6.0 10000 0.188500\n", + "8 7.0 9079 0.190770\n", + "9 8.0 7424 0.185614\n", + "10 9.0 6087 0.187120\n", + "11 10.0 47183 0.177670" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Combining Categories in Home Ownership\n", + "\n", + "Although there are 6 recorded categories within home ownership, only three had over 200 observations: OWN, MORTGAGE, and RENT. The remaining three are so infrequent we will combine them {ANY, NONE, OTHER} with RENT to form an enlarged OTHER category. This new `home_ownership_3cat` variable will have values in {MORTGAGE, OTHER, OWN}." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
home_ownershipnrowmean_bad_loan
0ANY10.000000
1MORTGAGE797140.164137
2NONE300.233333
3OTHER1560.224359
4OWN135600.188348
5RENT705260.203273
\n", + "
" + ], + "text/plain": [ + " home_ownership nrow mean_bad_loan\n", + "0 ANY 1 0.000000\n", + "1 MORTGAGE 79714 0.164137\n", + "2 NONE 30 0.233333\n", + "3 OTHER 156 0.224359\n", + "4 OWN 13560 0.188348\n", + "5 RENT 70526 0.203273" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean_target(train, \"home_ownership\")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "lvls = [\"OTHER\", \"MORTGAGE\", \"OTHER\", \"OTHER\", \"OWN\", \"OTHER\"]\n", + "train[\"home_ownership_3cat\"] = train[\"home_ownership\"].set_levels(lvls).ascharacter().asfactor()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
home_ownership home_ownership_3cat Counts
ANY OTHER 1
MORTGAGE MORTGAGE 79714
NONE OTHER 30
OTHER OTHER 156
OWN OWN 13560
RENT OTHER 70526
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[[\"home_ownership\", \"home_ownership_3cat\"]].table()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
home_ownership_3catnrowmean_bad_loan
0MORTGAGE797140.164137
1OTHER707130.203329
2OWN135600.188348
\n", + "
" + ], + "text/plain": [ + " home_ownership_3cat nrow mean_bad_loan\n", + "0 MORTGAGE 79714 0.164137\n", + "1 OTHER 70713 0.203329\n", + "2 OWN 13560 0.188348" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean_target(train, \"home_ownership_3cat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"home_ownership\")\n", + "x_trans.append(\"home_ownership_3cat\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Separating Typical from Extreme Annual Income\n", + "\n", + "Looking at the occurance of bad loans on a logit scale reveal that the chance of a bad loan roughly decreases linearly in annual income from \\$10,000 to \\$105,000 and is relatively flat above \\$105,000. To reflect this finding in the modeling, we will replace the original `annual_inc` measure with two derived measures:\n", + "\n", + "\\begin{eqnarray}\n", + "annual\\_inc\\_core & = & \\max(10000, \\min(annual\\_inc, 105000)) \\\\\n", + "annual\\_inc\\_diff & = & annual\\_inc - annual\\_inc\\_core\n", + "\\end{eqnarray}" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Probs annual_incQuantiles
0 1896
0.05 27000
0.25 45000
0.5 61000
0.75 85000
0.95 145000
1 7.14178e+06
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"annual_inc\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "breaks = np.linspace(0, 150000, 31).tolist()\n", + "train[\"annual_inc_cat\"] = train[\"annual_inc\"].cut(breaks = breaks)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"annual_inc_cat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"annual_inc_cat\"].index, df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
annual_inc_catnrowmean_bad_loan
0NaN00.126695
1(0.0,5000.0]250.240000
2(5000.0,10000.0]1920.213542
3(10000.0,15000.0]8680.288018
4(15000.0,20000.0]18470.251760
5(20000.0,25000.0]39750.241509
\n", + "
" + ], + "text/plain": [ + " annual_inc_cat nrow mean_bad_loan\n", + "0 NaN 0 0.126695\n", + "1 (0.0,5000.0] 25 0.240000\n", + "2 (5000.0,10000.0] 192 0.213542\n", + "3 (10000.0,15000.0] 868 0.288018\n", + "4 (15000.0,20000.0] 1847 0.251760\n", + "5 (20000.0,25000.0] 3975 0.241509" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[0:6]" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
annual_inc_catnrowmean_bad_loan
20(95000.0,100000.0]54730.138315
21(100000.0,105000.0]28600.129021
22(105000.0,110000.0]32750.133740
23(110000.0,115000.0]19080.108491
24(115000.0,120000.0]30090.147557
25(120000.0,125000.0]17410.125790
26(125000.0,130000.0]16420.107186
27(130000.0,135000.0]9740.120123
28(135000.0,140000.0]12350.132794
29(140000.0,145000.0]7460.107239
30(145000.0,150000.0]14920.136729
\n", + "
" + ], + "text/plain": [ + " annual_inc_cat nrow mean_bad_loan\n", + "20 (95000.0,100000.0] 5473 0.138315\n", + "21 (100000.0,105000.0] 2860 0.129021\n", + "22 (105000.0,110000.0] 3275 0.133740\n", + "23 (110000.0,115000.0] 1908 0.108491\n", + "24 (115000.0,120000.0] 3009 0.147557\n", + "25 (120000.0,125000.0] 1741 0.125790\n", + "26 (125000.0,130000.0] 1642 0.107186\n", + "27 (130000.0,135000.0] 974 0.120123\n", + "28 (135000.0,140000.0] 1235 0.132794\n", + "29 (140000.0,145000.0] 746 0.107239\n", + "30 (145000.0,150000.0] 1492 0.136729" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[20:31]" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"annual_inc\")\n", + "x_trans.append(\"annual_inc_core\")\n", + "x_trans.append(\"annual_inc_delta\")\n", + "\n", + "train[\"annual_inc_core\"] = h2o.H2OFrame.ifelse(train[\"annual_inc\"] <= 10000, 10000, train[\"annual_inc\"])\n", + "train[\"annual_inc_core\"] = h2o.H2OFrame.ifelse(train[\"annual_inc_core\"] <= 105000,\n", + " train[\"annual_inc_core\"], 105000)\n", + "\n", + "train[\"annual_inc_delta\"] = train[\"annual_inc\"] - train[\"annual_inc_core\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating Target Encoding for Loan Purpose\n", + "\n", + "Given that there is a high concentration of loans for debt consolidation (56.87%), a sizable number for credit card (18.78%), and the remaining 24.35% loans are spread amongst 12 other purposes, we will use mean target encoding to avoid overfitting of the later group." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " purpose Count Percent\n", + "0 debt_consolidation 93261 56.87\n", + "1 credit_card 30792 18.78\n", + "2 other 10492 6.40\n", + "3 home_improvement 9872 6.02\n", + "4 major_purchase 4686 2.86\n", + "5 small_business 3841 2.34\n", + "6 car 2842 1.73\n", + "7 medical 2029 1.24\n", + "8 wedding 1751 1.07\n", + "9 moving 1464 0.89\n", + "10 house 1245 0.76\n", + "11 vacation 1096 0.67\n", + "12 educational 418 0.25\n", + "13 renewable_energy 198 0.12\n" + ] + } + ], + "source": [ + "tbl = train[\"purpose\"].table().as_data_frame()\n", + "tbl[\"Percent\"] = np.round((100 * tbl[\"Count\"]/train.nrows), 2)\n", + "tbl = tbl.sort_values(by = \"Count\", ascending = 0)\n", + "tbl = tbl.reset_index(drop = True)\n", + "print(tbl)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"purpose\")" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
purposenrowmean_bad_loan
0small_business38410.309034
1renewable_energy1980.227273
2other104920.214354
3educational4180.210526
4moving14640.207650
5medical20290.203056
6debt_consolidation932610.189479
7house12450.182329
8vacation10960.178832
9credit_card307920.157281
10home_improvement98720.155895
11wedding17510.145060
12major_purchase46860.137217
13car28420.125968
\n", + "
" + ], + "text/plain": [ + " purpose nrow mean_bad_loan\n", + "0 small_business 3841 0.309034\n", + "1 renewable_energy 198 0.227273\n", + "2 other 10492 0.214354\n", + "3 educational 418 0.210526\n", + "4 moving 1464 0.207650\n", + "5 medical 2029 0.203056\n", + "6 debt_consolidation 93261 0.189479\n", + "7 house 1245 0.182329\n", + "8 vacation 1096 0.178832\n", + "9 credit_card 30792 0.157281\n", + "10 home_improvement 9872 0.155895\n", + "11 wedding 1751 0.145060\n", + "12 major_purchase 4686 0.137217\n", + "13 car 2842 0.125968" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = df.sort_values(by = \"mean_bad_loan\", ascending = 0)\n", + "df = df.reset_index(drop = True)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAFWCAYAAABq0CaaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl4lNX1wPHvSQKBkBB2Iotsssiu4o7iLrXuW7XVqnXp4lZt7f6rVWttbbWttnVrpWqtS62t0NZ9AREXFkFFRERRFglL2AOEJOf3x30HJiEJIXPfeeedOZ/nyQMzmblzCJMz973LuaKqGGOMyX55UQdgjDEmPSzhG2NMjrCEb4wxOcISvjHG5AhL+MYYkyMs4RtjTI6whG+MMTnCEr4xxuQIS/jGGJMjCqIOIFmXLl20b9++UYdhjDGxMnPmzFWq2nVXj8uohN+3b19mzJgRdRjGGBMrIvJpcx5nQzrGGJMjLOEbY0yOsIRvjDE5whK+McbkCEv4xhiTIyzhG2NMjrCEb4wxOSIrEv4jb33GU7OXRh2GMcZktIzaeNVS/5y5hE1VNZwyumfUoRhjTMbKih7++OFlzPt8PZ+u3hR1KMYYk7GyIuEfP6wMgGfnLo84EmOMyVxZkfB7dypiWI/2PPOeJXxjjGlMsxK+iIwXkfki8pGI/KCB739DRN4VkdkiMlVEhiZ974fB8+aLyPE+g082flgZsz5by4r1W8J6CWOMibVdJnwRyQf+CHwBGAqcm5zQA39X1RGqOhq4Fbg9eO5Q4BxgGDAe+FPQnnfjhwfDOu+Xh9G8McbEXnN6+AcAH6nqx6paBTwKnJL8AFVdn3SzHaDB308BHlXVrar6CfBR0J53e3Urpn/XdjxrwzrGGNOg5iT8nsDipNtLgvvqEJHLRWQhrod/1e481wcRYfywMl7/eDVrK6vCeAljjIm15iR8aeA+3ekO1T+q6gDg+8BPdue5InKSiNy7bt26ZoTTuPHDy6ipVV6YtyKldowxJhs1J+EvAXon3e4FLGvi8Y8Cp+7Oc1V1kqpeVlpa2oxwGjeiZyk9StvYah1jjGlAcxL+dGCgiPQTkda4SdiJyQ8QkYFJN78ILAj+PhE4R0QKRaQfMBB4K/WwGyYiHDesjCkLVrJpa3VYL2OMMbG0y4SvqtXAFcCzwDzgcVWdKyI3isjJwcOuEJG5IjIbuBa4IHjuXOBx4H3gGeByVa0J4d+x3fjhZVRV1/LK/JVhvowxxsSOqO40pB6ZMWPGaKqHmNfUKgfc/AKH7NWFO8/dx1NkxhiTuURkpqqO2dXjsmKnbbL8POHYod15aV45W7aFejFhjDGxknUJH+D44WVsqqph2sJVUYdijDEZIysT/iEDOlNSWGCrdYwxJklWJvzCgnyO2rsbz79fTnVNbdThGGNMRsjKhA+umNqaym1MX7Qm6lCMMSYjZG3CHze4K4UFeVYj3xhjAlmb8ItaFzBuUFeeeW85tbWZs/TUGGOikrUJH9wmrOXrt/DO0tRq9BhjTDbI6oR/9JDuFOSJrdYxxhiyPOGXFrXi4AGdeea9z8mkHcXGGBOFrE744A44X7S6kg/LN0YdijHGRCrrE/5xQ7sjgg3rGGNyXtYn/G7t27Dfnh15xpZnGmNyXNYnfHCrdeZ9vp5PV2+KOhRjjIlMTiT844eVAdgmLGNMTsuJhN+7UxHDerS3cXxjTE7LiYQPrrbOrM/WUr5+S9ShGGNMJHIn4Q93wzrPvV8ecSTGGBONnEn4e3Urpn/XdjxrwzrGmByVMwlfRBg/rIzXP17N2sqqqMMxxpi0y5mED25Yp6ZWeWHeiqhDMcaYtMuphD+iZyk9StvYah1jTE7KqYQvIhw/vIwpC1ayaWt11OEYY0xa5VTCB7cJq6q6llfmr4w6FGOMSaucS/j79+1E53atrbaOMSbn5FzCz88Tjh3anZfmlbNlW03U4RhjTNrkXMIHOH54GZuqapi2cFXUoRhjTNrkZMI/ZEBnSgoLbLWOMSan5GTCLyzI56i9u/H8++VU19RGHY4xxqRFTiZ8cMXU1lRu461FFVGHYowxaZGzCX/c4K4UFuTx3FwrpmaMyQ05m/CLWhcwblBXnnlvObW1GnU4xhgTupxN+OBq6yxfv4V3lq6LOhRjjAldTif8o4d0pyBPbLWOMSYn5HTCLy1qxcEDOvPMe5+jasM6xpjsltMJH9ywzqLVlXxYvjHqUIwxJlQ5n/CPHdodEWxYxxiT9XI+4XcracN+e3a0YmrGmKyX8wkf3LDOvM/X8+nqTVGHYowxobGEj6uRD/Cs9fKNMVnMEj7Qu1MRw3q0t3F8Y0xWs4QfGD+sjFmfraV8/ZaoQzHGmFBYwg+MH+6GdZ6zYR1jTJayhB/Yq1sx/bu241krpmaMyVKW8AMiwvhhZbz+8WrWVlZFHY4xxnhnCT/J+OFl1NQqL8xbEXUoxhjjnSX8JCN6ltKjtI2t1jHGZCVL+ElEhOOHlzFlwUo2ba2OOhxjjPHKEn4944eVUVVdyyvzV0YdijHGeGUJv54xfTvRuV1rq61jjMk6lvDryc8Tjh3anZfmlbNlW03U4RhjjDeW8Btw/PAyNlXVMG3hqqhDMcYYbyzhN+CQAZ0pKSyw1TrGmKxiCb8BhQX5HLV3N55/v5zqmtqowzHGGC8s4Tdi/LAy1lRu461FFVGHYowxXljCb8S4wV0pLMjjWRvWMcZkCUv4jShqXcC4QV15dm45tbUadTjGGJMyS/hNGD+8jOXrt/DO0nVRh2KMMSmzhN+Eo4d0pyBPbLWOMSYrWMJvQmlRKw4e0Jln3vucGhvWMcbEnCX8XThldE8Wra7kpDunMu0j24hljIkvS/i7cMa+Pbnj3H1Yt3kbX/7zm1zywHQ+WrEx6rCMMWa3WcLfBRHh5FE9ePE74/j++CG88XEFx/9uCj996j0qNtnJWMaY+LCE30xtWuXzzSMG8Mp1R3DuAb15+M3PGPfrl7ln8kIrsmaMiQVL+LupS3EhPz91BM9cfRj79+3ELU9/wDG3T2bSnGWo2sSuMSZzWcJvoYHdS7j/wv3528UHUlxYwJWPvM0Zd01j5qdrog7NGGMaZAk/RWMHduG/Vx3GrWeMZPGazZxx1zSu+PssFldURh2aMcbUYQnfg/w84ez9e/PKd4/gqqMH8sK8co6+bTK3PD2P9Vu2RR2eMcYAlvC9aldYwLXHDuLl7x7BSaN6cO+Ujzni16/w4OuL2GZllo0xEbOEH4I9Stty29mjmHTFWAZ3L+GnT83l+N9N4cV55Taxa4yJjCX8EA3vWcrfLz2Q+746BhQufmAGX/nzm8xdZsXYjDHpZwk/ZCLuUPRnrzmcG04exrzP13PinVO57h9zKF+/JerwjDE5RDJpiGHMmDE6Y8aMqMMI1brN2/jjyx/x19cWkZ8nXHZ4f87crxc9O7QlL0+iDs8YE0MiMlNVx+zycZbwo/HZ6kp+9cwH/PfdzwFo1zqfgd1LGNS9mEHdSxhcVsKg7iV0KylExD4IjDGNs4QfE/M+X8/bn63lw/INzF++gQUrNrBq444aPaVtWzG4ewkDuxdv/xAY1L2ETu1aRxi1MSaTNDfhF6QjGNO4vfdoz957tK9z36qNW/mwfAMLyjcyv3wDHy7fwKQ5y3j4zertj+lSXMjgsmIGdttxNTCwezHt27RK9z/BGBMTlvAzUJfiQroUF3LIgC7b71NVytdvZX75BhYEVwMflm/g8RmLqazaUbytR2kbBiYNCe3VrZjeHdvSqV1rGxoyJsdZwo8JEaGstA1lpW0YN6jr9vtra5Wlaze7D4AV7mpgfvlGXv94NVXVOzZ7tWudT+9ORfTqWETvTm3p3bGIPTsV0buTu13U2t4KxmQ7+y2Pubw8CZJ2EccM7b79/uqaWj6tqOTjlZtYXFHJZxWVLFlTyeKKSqYtXFXnqgCgc7vW9OoUfAh0bOvaDD4cenRoS6t8W8FrTNxZws9SBfl5DOhazICuxTt9T1Wp2FTFZxWVLF6zmcXBh8FnFZXMWbyWp9/9nOqkM3zzxO0eTlwZ9O604+pgSFkJ7QrtbWRMHNhvag4SEToXF9K5uJB99uy40/era2pZvn4Liyvch8Hi4Mpg8ZrNTP5wJSs2bN3+2DyBgd1KGNW7lFG9OzCqVwcGl5XYFYExGcgSvtlJQX4evTq68f6DB3Te6ftbttWwZE0li1ZV8u7SdcxZspYX5q3g8RlLACgsyGNYj/aM7NWB0b07MKp3B/p2LrJJY2MiZuvwjReqypI1m5m9eC1zFq/lnSXreHfpOjYHxz+Wtm3FyF6ljOrVIbgSKKVb+zYRR21MdrB1+CatRHZMHp80qgfghoYWrNjInMVrmbNkHXMWr+WuyQupCeYH9ihtw6heHRjZu5TRvTowolcpJbaPwJjQWMI3oSnIz9u+seycA9x9m6tqmLts3fYPgDlL1vLM3OUAiMCArsWM7FXK6N4dOHJwN3p3KorwX2BMdmlWwheR8cDvgXzgz6r6y3rfvxa4BKgGVgJfU9VPg+9dAPwkeOjPVfUBT7GbGGrbOp8xfTsxpm+n7fet2VTFO0uDD4DFa5ny4UqenLWU1gXzuProgVx2eH+bBDbGg12O4YtIPvAhcCywBJgOnKuq7yc95kjgTVWtFJFvAkeo6pdEpBMwAxgDKDAT2E9VGzzp28bwDbj5gM8qKrn1mfn8993PGVJWwq1njmRkrw5Rh2ZMRmruGH5zuk0HAB+p6seqWgU8CpyS/ABVfVlVE6d2vwH0Cv5+PPC8qlYESf55YHxz/xEmN4kIfTq3449f2Zd7z9+PNZVVnPrH17j5v+9TWVW96waMMQ1qTsLvCSxOur0kuK8xFwNPt/C5xtRx3LAynr92HOccsCf3vfoJx/9uClMXrIo6LGNiqTkJv6HF0w2OA4nIebjhm1/vznNF5CQRuXfdOjv6z+ysfZtW/OK0ETx22UG0ysvjvL+8yXf/MYe1lVW7frIxZrvmJPwlQO+k272AZfUfJCLHAD8GTlbVrbvzXFWdpKqXlZaWNjduk4MO7N+Z/119GFccuRf/fnspx9w+mUlzltnB8MY0U3MS/nRgoIj0E5HWwDnAxOQHiMg+wD24ZL8i6VvPAseJSEcR6QgcF9xnTIu0aZXPd48fzMQrxtKjQ1uufORtLn1wBp+v2xx1aMZkvF0mfFWtBq7AJep5wOOqOldEbhSRk4OH/RooBv4hIrNFZGLw3ArgJtyHxnTgxuA+Y1IytEd7/vWtQ/nJF/fmtY9Wc+ztU3jo9UXU1lpv35jGWGkFE3uLKyr50b/e5dUFqxjTpyO/PGMEe3UriTosY9LG57JMYzJa705FPPi1A/jNWaNYsGIjJ/x+Kne8uKDOATDGGEv4JkuICGfu14sXrh3H8cPLuP35Dznpzqm8/VmDe/yMyUmW8E1W6VpSyJ3n7sNfLhjD+i3bOP2uadwwaS6bttqGLWMs4ZusdPTe3XnumsM5/6A+THhtEcf9dgqvzF+x6ycak8Us4ZusVdKmFTeeMpwnvnEwbVrlceGE6Vzz2GwqNtmGLZObLOGbrDembyf+d/VhXHX0QP7zzjKOuX0yT85aQnWNTeqa3GLLMk1Omb98A9//5zvMXryWzu1a88WRe3DK6B7su2dHO4LRxFZzl2Vawjc5p6ZWeWFeORNnL+OFeeVsra6lV8e2nDK6B6eM7smg7raG38SLJXxjmmHDlm08N7ecp+YsY+qCldQqDCkr4ZTRPTlp1B706mgnbpnMZwnfmN20csNW/vvOMp6as4y3P1sLwP59O3LK6J6cMGIPOrVrHXGExjTMEr4xKfhsdSUT5yzl37OX8dGKjRTkCYcP6sopo3twzN7daVdox0GbzGEJ3xgPVJV5n2/gqdlLmThnGZ+v20LbVvkcO7Q7p4zuweGDutp5uyZylvCN8ay2Vpm+qIKn5izjf+9+ztrKbXQsasUJI/bglNE9GdOnI3l5ttLHpJ8lfGNCVFVdy6sLVvLU7GU89/5ytmyrpUdpG04a3YNTRvVk7z1KbJmnSRtL+Makyaat1Tz/fjlPzV7KlAWrqKlVOrdrzeCyEgaXlTCkrITBZe0Z1L2YotY29m/8s4RvTARWb9zKM3OXM2fxWuYv38CH5RvZvK0GABHYs1PR9g+AIcEHQt/O7ci3oSCTAkv4xmSAmlplcUUlHyxfzwfLNzA/+Fq0ehOJw7kKC/IY2L2Ywd3bs/ceJduvDLoWF9qwkGkWS/jGZLAt22pYUL6RD5avdx8C5Rv4YPkGVm7Yuv0xndq1ZnD35GEh92XDQqa+5iZ8e+cYE4E2rfIZ0auUEb1K69y/euNWl/w/d1cCH5Rv4LHpi+sMC+3TuwN/uWB/OtpGMLObLOEbk0E6FxdySHEhhwzosv2+2lpl8ZpKPli+gfeXreeuyQu59MEZ/O2SA2nTKj/CaE3c2I4RYzJcXp7Qp3M7jh9WxjXHDuK3Z49mxqdr+O4/5lBbmzlDsibzWQ/fmJj54sg9WLJmCLc8/QG9Ohbxgy8MiTokExOW8I2JocsO789nFZXcPXkhvTu15SsH9ok6JBMDlvCNiSER4YaTh7Fs7WZ++tRcenRoy5GDu0UdlslwNoZvTEwV5Ofxhy/vy5CyEi5/eBbvLV0XdUgmw1nCNybG2hUWcP+F+9OhbSsufmA6y9Zujjokk8Es4RsTc93bt2HCRQdQubWGiyZMZ/2WbVGHZDKUJXxjssDgshLuOm8/Fq7cyOUPz2JbTW3UIZkMZAnfmCwxdmAXbjl9BK8uWMWPnnyXTCqbYjKDrdIxJoucNaY3i9ds5o4XF7BnpyKuPHpg1CGZDGIJ35gsc80xA1lSUcltz39Ir05tOW2fXlGHZDKEJXxjsoyI8MszRvL5ui1874l3KGvfloMHdI46LJMBbAzfmCzUuiCPu8/bjz6d2/H1h2bw0YoNUYdkMoAlfGOyVGlRKyZcuD+tC/K54P7prNiwJeqQTMQs4RuTxXp3KuL+C8dQsamKSx6YQWVVddQhmQhZwjcmy43s1YE7z92H95au46pHZlNjJZVzliV8Y3LAMUO7c/1Jw3hhXjk3/ed9W6Ofo2yVjjE54oJD+rK4opI/T/2E3p2KuHhsv6hDMmlmCd+YHPKjE/ZmyZrN/Py/79OzQxvGD98j6pBMGtmQjjE5JC9P+N05oxnduwNXPzqbtz9bE3VIJo0s4RuTY9q0yue+r46he/s2XPLADD5dvSnqkEyaWMI3Jgd1KS7krxftT40qF02YztrKqqhDMmlgCd+YHNW/azH3nj+GJWs2c9mDM9myrSbqkEzILOEbk8MO6NeJ35w9ircWVXDdE+9Qa2v0s5qt0jEmx508qgdL1lRy6zPz6d2xLd8bPyTqkExILOEbY/jmuAEsrtjMn15ZyD9nLaFjUWs6tWtNx3at6VSU+LOV+7Nd6+3f79SuNW1a5UcdvmkmS/jGGESEm04ZRp/ORXy8ciMVm7axprKKecvWU1FZxdrKxs/JLWqdX+8DolXdD4qkD4g9OxXRtrV9QETFEr4xBoCC/Dy+MW5Ag9+rrqll3Wb3IVCxaRsVm6qCv1exZlMVFZWJP7exaNUm1myqYsPWnQu1dWrXmv87cW9OHd0TEQn7n2TqsYRvjNmlgvw8OhcX0rm4sNnPqaquZW2l+zCo2FTFqo1V3D/1E655bA5PzlrKzaeOYM/ORSFGbeqTTCqiNGbMGJ0xY0bUYRhjQlJTqzz85qfc+sx8qmtr+fYxg7h4bD9a5duCwVSIyExVHbOrx9lP2RiTNvl5wlcP7svz1x7O4QO78sunP+DkP7zGnMVrow4tJ1jCN8ak3R6lbbn3q2O4+7z9qNi0lVP/9Bo/mziXjQ2M+xt/LOEbYyIzfngZz187jvMP6sMDry/i2Nsn88L75VGHlbUs4RtjItW+TStuPGU4T3zjENq3acUlD87gWw/PZMV6O4PXN0v4xpiMsF+fjky6cizXHT+YF+at4OjbJ/O3Nz61cg8eWcI3xmSM1gV5XH7kXjz77cMZ0bOUn/z7Pc6653U+LN8QdWhZwRK+MSbj9OvSjocvOZDfnDWKhSs38sU7XuX25+ZbRc8UWcI3xmQkEeHM/Xrx4rXjOHFkD+546SNO+P2rvL5wddShxZYlfGNMRutcXMhvvzSaB792ANtqazn3vjf43hNz7NCWFrCEb4yJhcMHdeW5b4/j6+P6889ZSznm9sk8NXspmVQtINNZwjfGxEbb1vn88At7M/GKQ+nZoS1XPzqbCydMZ3FFZdShxYIlfGNM7AzrUcqT3zqU608ayvRFFRz728ncM3khW6ttUrcplvCNMbGUnydcdGg/nr92HIcO6MItT3/AuFtf4f6pn7C5yhJ/Q6xapjEm9lSVqR+t4g8vfcSbn1TQuV1rLj6sH+cf1IeSNq2iDi90za2WaQnfGJNVpi+q4A8vfcTkD1fSvk0BFx7aj4sO6UvHdq2jDi00lvCNMTnt3SXr+MPLC3h2bjlFrfM5/6A+XHxYP7qVtIk6NO8s4RtjDDB/+Qb+9MpHTJqzjFb5eZyzf28uGzeAnh3aRh2aN5bwjTEmySerNnH3Kwv556wliMDp+/Tim0cMoG+XdlGHljJL+MYY04Clazdz7+SFPDJ9MdU1tZw0qgeXH7kXg7qXRB1ai1nCN8aYJqxYv4U/T/2Ev73xKZVVNRw/rDtXHDmQEb1Kow5tt1nCN8aYZlizqYoJr33ChGmL2LClmnGDunLFUXuxf99OUYfWbJbwjTFmN6zfso2HXv+Uv0z9hIpNVRzYrxNXHjWQQ/fqjIhEHV6TLOEbY0wLVFZV88hbi7l3ykLK129lVO8OXHnkXhy9d7eMTfyW8I0xJgVbq2t4YuYS7nplIUvWbObAfp343Tmj2aM085ZzNjfhWy0dY4xpQGFBPl85sA8vf/cIfnHaCN5duo4Tfv8qL84rjzq0FrOEb4wxTWiVn8eXD9yT/1w5lj1K23LxAzO4cdL7sazMaQnfGGOaoX/XYp781iFceEhf7n/tE864axqfrNoUdVi7xRK+McY0U5tW+fzs5GHce/5+LFmzmRPveJV/vb0k6rCazRK+McbspuOGlfG/qw5jaI/2XPPYHL7z+Bw2ba2OOqxdsoRvjDEt0KNDWx659CCuOnogT769hJP+MJW5y9ZFHVaTLOEbY0wLFeTnce2xg3j4kgPZtLWa0/40jQemLcrYg9Ut4RtjTIoOGdCF/111GIcO6Mz1E+fy9YdmsrayKuqwdmIJ3xhjPOhcXMhfLtifn3xxb16ev4ITfv8q0xdVRB1WHZbwjTHGk7w84ZLD+vPPbx5Cq4I8vnTP69z54gJqajNjiMcSvjHGeDayVwf+c+VYThzZg9ue/5Dz/vwm5eu3RB2WJXxjjAlDSZtW/P6c0dx65khmL17LF37/Ki/PXxFpTJbwjTEmJCLC2WN6M+nKQ+lWUshFE6Zz83/fp6q6NpJ4LOEbY0zI9upWwr8vP5TzD+rDfa9+wpl3T+PT1ekvy2AJ3xhj0qBNq3xuOnU4d5+3L4tWbeKLd0xl4pxlaY3BEr4xxqTR+OF78L+rD2NQ92KueuRtvv/EO1RWpacsgyV8Y4xJs14di3js6wdz+ZEDeHzmYk7+w2ssW7s59NctCP0VjDHG7KRVfh7XHT+Eg/t34a/TFtGluDD017SEb4wxERo7sAtjB3ZJy2vZkI4xxuQIS/jGGJMjLOEbY0yOsIRvjDE5whK+McbkCEv4xhiTIyzhG2NMjrCEb4wxOUIy6bBdEVkJfNrCp3cBVnkMJ11th92+xZ7+tsNu32JPf9tht59q231UteuuHpRRCT8VIjJDVcfEre2w27fY09922O1b7OlvO+z2w449wYZ0jDEmR1jCN8aYHJFNCf/emLYddvsWe/rbDrt9iz39bYfdftixA1k0hm+MMaZp2dTDN8YY0wRL+MYYkyMs4RtjTI6whN8EEZkhIpeLSEePbeaLyDW+2ks3Edm3ga8BIhKL09NEpKeIHCIihye+PLYtInKeiPw0uL2niBzgq/0wiEinpr48vcZDzbkvU4lIHxE5Jvh7WxEp8dBmvoj8LfXodk8sfkkbIyK3Aj8HNgPPAKOAb6uqrx/kOcBFwHQRmQFMAJ7TFGa6VbVGRE4Bfuspxu1EZBLQaGyqerKHl/kTsC/wDiDA8ODvnUXkG6r6XEsaFZE7aTr2q1rSbr3X+BXwJeB9oCbRNDAl1bYDfwJqgaOAG4ENwD+B/VNtWEQOBX4G9MH93gqgqto/xaZn4n4GAuwJrAn+3gH4DOiXYvsAw5JviEg+sJ+Hdht7z68DZgD3qOqWFNu/FLgM6AQMAHoBdwNHp9JukAe6ikhrVa1Kpa3dEeuEDxynqt8TkdOAJcBZwMuAl4Svqh8BPxaR/wNOBO4HakXkfuD3qlrRwqZfE5E/AI8Bm5Jeb1aKIf8mxec3xyLgYlWdCyAiQ4HrgJuAJ4EWJXzcL2jYTgUGq+rWkNo/UFX3FZG3AVR1jYi09tT2X4BrcAm6ZhePbTZV7QcgIncDE1X1f8HtLwDHpNK2iPwQ+BHQVkTWJ+4GqvC3DPFjoCvwSHD7S0A5MAi4Dzg/xfYvBw4A3gRQ1QUi0i3FNhMW4XLBROrmgds9tb+TuCf8VsGfJwCPqGqFiHh9AREZievln4DrrT0MjAVeAka3sNlDgj9vTLpPcT3DFlPVyak8v5mGJJJ98Jrvi8g+qvpxKj97VX3AS3RN+xj3ngkr4W8Leq8KICJdcT1+H9ap6tOe2mrI/qr6jcQNVX1aRG5KpUFVvQW4RURuUdUfphxhw/ZR1eRhuUkiMkVVDxeRuY0+q/m2qmpV4r0dDF36Wsu+LPjKA1IeJmqOuCf8SSLyAW5I51vBL1hKl3DJRGQmsBbXu/pBUs/wzeASu0VU9Ugf8TVGRAYCtwBDgTZJr5vq5T/AfBG5C3g0uP0l4EMRKQS2pdp48H/4fXaOPaUPw0AlMFtEXiQp6fsYLgrcAfwL6CYiNwNnAj/x1PbLIvJr3FVUcuypXhUmrBKRn+CujhU4D1jto2FV/aGI9GTHcFTifh9DaV1FZE9V/QzcvAmuEBm4K4lUTRZK2/p9AAAgAElEQVSRxFXKscC3gEke2kVVb/DRzu6I/carYEJ1fTAmVgS0V9Xlntrur6of+2irXrvdgV8APVT1C8GwyMGq+hdP7U8FrsfNE5yEu0IRVb3eQ9ttcW/6sbjL86m4sestQJGqbkyx/edwQ13fBb4BXACsVNXvp9Ju0PYFDd3v8+pCRIbgxncFeFFV53lq9+UG7lZPH4QEE7TXA4ezY17jxhSGLZPb/iVuPqzO3ImPOSUROQE3pr4Q9zPvh3t/vgJcqqq/S7H9POBi4Lig/WeBP6cyj5fUdlfge7g5Dt+dm4ZfM84JX0TOAp5R1Q1B72Rf4Oe+ej0icm0Dd68DZqrq7BTafRo3AfxjVR0VXCa+raojWtpmvfZnqup+IvJuok0ReVVVD/PRfpiSYn9HVUcG901W1XGe2m+NG98FmK+qKV+VJLU9AFiiqltF5AhgJPCgqq719RphCIahfqmq14XU/nxgZFhzJ8HV5RBcQv4g1YnaJl6nE9BLVd/x1F5onZvGxH1Z5v8FyX4scDzwAHCXx/bH4P4jegZflwFHAPeJyPdSaLeLqj5OML6rqtV4nIgDtgQ9kwUickUwqe1loklEDhWR50XkQxH5OPHlo+1AIgF/LiJfFJF9cCsjUhYk4QXAH3FXJR+Kx2WZuDmeGhHZC/gzrrf5dx8Ni0ipiNwubqnwDBG5TURKfbStqjV4WjXTiMTcSVj2w/WSRwJni8hXfTUsIq+ISPsg2c8GJoiIr0nVzsFV/TZVnayqXwMO8tR2g+I+hp9Ikl8E7lLVp0TkZx7b7wzsmximEJHrgSdwl70zgVtb2O4mEenMjsm9g3BXDr58GygCrsKtnjkK13vwIZTVIkl+HiSy7wB3Au2D1/PhNtzKrvkAIjIIt7rDV7KrVdVqETkdt4rrzsSKHQ/uB94Dzg5un4+7SjzdU/tvB6tF/kHdFSNPemg7tLkTcev5B+CScfJS2wdTbTtQqqrrReQSYIKqXi8iXnr41Ovc4CZwvXRuGhP3hL9URO7BLR/7VXBp5/OqZU/qTvxsw50ss1lEUrk8vRaYCAwQkddwy8rOTKG9OlR1evDXjbjxe59CXS2iqv9JvA7ge3K7VSLZB6/1oYj47HluE5Fzga/i5k7AX892gKqekXT7BhFp8bBiAzrhJmmTx48VN0mcqonBVxjGAEN9jKk3okBE9sB90P7Yc9sNdW6+7fk16oh7wj8bGA/8RlXXBv8xPsch/w68ISJPBbdPAh4RkXa4CagWUdVZIjIOGIwbd/Q9ljwI93OovyrCx2RQqKtFROQB4OrEuHcwKX9bcLmbqhki8hcgscvzK7grFV8uwg0B3qyqn4hIPzztCQE2i8hYVZ0K2zdibfbUNqrqu2OQ3PYDwWT/nskfuJ68B5QBn3tuN+FG3ETtVFWdLiL9ccOCPpwVtPsecGQwbPQbPK0CakisJ20BgvH7gao6IZj1LlbVTzy2vx9JK1JU1csGIRE5BOhL3YTs5TJURObgVi7UGXZR1ZSTWxpWi7ytqvvs6r4Wtl2I20iT+P+cAvwpxI1Y3ojIaNwcVSku9grgQlWd46n9NrjVKPVXjKT8QSsiJ+ESWWtV7Rf8W270tErnZdx+mLeo2wHxsas8VGG+1xsT6x5+MKY+BtdTnoC7fP4b0OI18klt5wHvqOpw/PYC0zHuWK2qPievtwt7DwGQJyIdVXUNbF8Z4eV9GiT224Mv70TkExrYlONj/0OwKmyUiLQPbq/fxVN210PAB7jFDzfirn68LCnFlYQ4ALdUElWdHVz9+Go7NGF+EBLie70xsU74wGnAPsAsAFVdJh4KGwVt1YrIHEna1OFR2OOOk0TkW7hNQMm9nhavqRaR81T1b40sVfW5Hfw2YJqIPBHcPgu4OZUGReRxVT1bRN6l4YQ8MpX2kyQfQt0GF3tKBcga+7lLsPPT4899L1U9S0ROCYZg/o4byvChWlXXSd2d2F7e+xr+7vIwPwiT3+uKG6JO6b2+K3FP+FWqqiKSWO3SznP7ewBzReQt6q5cSPVyMexxx8SKnOT5DAVS6WkmfrahbgFX1QfFFao7Cjd0cbqqtni+JHB18OeJKbbTJFWtvzP1d+I2wf00hWab+rn77DAk5pDWishwYDluyNGH90Tky0C+uF3gVwHTUmlQRKaq6lgR2UDdn0OiqFz7VNpPEtoHYUjv9SbFegxfRL4LDASOxZUS+Brwd1W901P7DW72aWmvQnZU9ishvuOOXVV1ZQjttg+WvzXYI07l6iTpNX5Vf1NLQ/el0P6+STfzcD3+b6rqKA9tH6qqr+3qvhTavwS3j2AE8FegGPipqt7toe0i3AqX5N2qN4W1QconEXlLVQ8QkSm4HbzLgbd8DNNFIdYJH0BcfYvtbyRVfd5z+31wk8IvBG/cfFXd0MK2mtwt6uvyNFhq+E3cfgFwY6f3+FgJJCILgE9wOwSfTIw/emj3P6p6YgPj4L7KACMis1R133r3bd/R66H95Antalw1xN/4WJnSSOw73ZcrGusYJPjoIASvk/ggHImbJ/T2QRiF2Cf8MElSLWxVHRBcjt6tqinVwk5DT/PPuAnsRI2Y84EaVb3EU/sH4GqjnIpbnvqo+juDwDsR+Saud9YfV3MloQR4TVXPiySwZhCRg3HVVb9N3TMU2gOn+bh6CF7nF8Ct9ZbDfkdVUy7+JiJjcGWS+1J3VVqLP2iTOgYN1vHXoOyzqSvWCV/cjsZf4coGCJ7H74KNLQcAbyaWSklSfZoU2g27pzmnfiJo6D4Pr9MFt+LlK6qan2JbTfZUU1nnH2xu6Ygb9vtB0rc2+OoJJr1OogAZwGTc8sMW76IOrgqPwK3vT+5VbgAmqaqXNeGNLBH0cgUhrpbOdcC7JJWLVtVPPbTdYB1/Vf1Oqm0H7RUCZ7Dzh9WNjT0nk8V90vZW4CT1VJGwAV5rYSf1NAdI3e3ZJaQ4iVVPjYgMUNWFwev2x1MZhGBZ4Gm4Hv4A3EogH8f43Rb82QY39j0H9wE+Enf4xNiWNhwk3HXAuQDiDrBoAxSLSLHHVVjeyx8Ew3yTReSvPhJkE/JFpDCxJ0HcRqlCT22vVNWwdtp6r+Nfz1MEBRMJ7xyFtIl7wi8PMdmD/1rYfweexvU0f8mOnuBUVfVVcwVcb+plcUXNBLfj1tdOyjnAv3E919c9tbl9fb+IPApcpqrvBreH46oJpizYAHQ70ANYgfu5zKPeEXwpCLP8QaW4Hc5hldL9G/CiiEzAdWq+xo4hwVRdHwwz1q+l46NsQ2h1/AO9VHW8x/YiFfeEP0NEHsMlIN9vJHCX/xfjLkW/DvwPVwWxRRI9TRF5A/cGfRKXkB8Qkft8rS5S1ReD+YZE6YYP1N9u0v7BUtiSoHecUv37BgxJJHsAVX1P3M5MH36Oq0b4gqruIyJHEvT6PQmz/MHDuInyE0kqpeupbVT11uCq8xjce+YmVfW1Dv8iXPniVuwY0vFVp+dc3DDav4LbU/D7fzpNREYkvyfjLO5j+BMauFvVzy640AS/WAer6qbgdjvg9VTH8EXkKFV9KZjb2ImPD8Kgx/0QbkOR4JLOBerqgaRMRB7B7XlI7rEVq2rKv8QiMkNVx4grPbGPus11b6mqjyGp+uUPwE0kXqAe6qdLyOcENOP1X1fVg1v43JTnvdJNdmzSK8At/f4Y16lMzBP62qyXVrHu4WuIBZ9gew/tZ+woQuZriaBQd0y9JrgvVeNwZ+2e1MD3fPWo7gWuVdWXgUSN+XvZcU5vqi7CLSlNbJaagr8zDtaKSHHQ5sMisgK3fNKXebh5pQG41SLrcCuZfJTTTXsp3Xra7PohjXpDRIb63FSUtKelQR72tIS6SS8qsezhi8j3gkvQO2l4q7yXM0rFnZe7U+133XlH5e62ey3ukjxxGXoq8FdN8Ti2pPb7ab0Ccg3d18K2Q18BJCFVVgyupLbgPly/guuJP5zq/2dS+8/gzkCeRd33y22NPqn5bZ8IvAr0Zkcp3RtCnAyt//otXrEjIvNwH4Kf4KmXnLSn5XTcrvXEsuBzgUWq+qOWtl3vdQ4C5ib23ogr3TJUVd/00X66xTXhn6SqkyTkM0pF5E1VPdBHWw20vS9JVRt9Tto2suxzpqqmfNCHiPwLl9ASJYbPA8ao6qmpth20fzLwa0KorBg2EXlPXbG9rJNiwu/T0P2elmVOUdXDd3VfCu2/jTsEKVG+JQ+Y4WO5ahRiOaSjqpOCP7cn9uA/olj9VhEMrfZ70IaXGvIJ4g7QHgaU1hvHb09ql+TJvgbcgNt9mCgxfKGntsFNwNWvrNg3lQZl53ordfjat0GIE3wS7jkBzQqhpU9U1U+lgTLmnuLqKiL9VfVjcFeyuAOFfBFN6hUH8z6xzJsQ04SfIK6Q0Tdwl88zcYnudlX9taeXSPTuk6sgKnVPBcokg3Fjjx2oO46/AbjU02sMwA0r5OHeP0fjfh6+JrEaqqyYElUtARCRG3G1UB5ix7BOysXg6k3wXRQsh/U9wTdSkw5DV9U14s779UJ2vfv7/BTaDq2MOW7I9RXZca5yX9yKOl8+FpGr2DGP9C3cBG4sxXJIJ0FEZqvqaBH5Cu5c0u8DM+M6g+6LiBzsc418vbbn49bFv4fnXZNB+3/Brdf+AW6H41W4owm/0eQTm9f2TkN0PobtGhuySPA0dDEHOELr1k6f7Gv1SyPDgF52fwd7EfYBZumOHes+d5YX4pZ9gt8lyIlNenfgOjWKe29+W1VX+HqNdIp1Dx9oJa5Q2KnAH1R1mwSlkn0Qke7AL4AeqvoFERmKW075F1+vEZK3ReRywjm0YWViSC0kV+IqK27FbVR7FncQuw81QefgUdwv77l42IHs68NuF7yfEwB1dn/3l513f3upxEmIZczFFTS8FnfW9KUiMlBEBuuOs5FTaTsfVzbknJQDzRA+D/yOwj24ioTtgClBT8vnGP5fcQmnR3D7Q0I+ZNiTh3ArF47H1XPphRvW8eF6EfmziJwrIqcnvjy1DTA0+CrAfVidAkxv8hnN92Vc2YPy4Ous4L6Mp+74yzNxca/A1U5/qOlnNcvfccN/E4M/E1/7qb+ico+LyD1AB3EFCV8A7vPU9gSgCkjsEViC22CXMlWtwb3/skash3QaIiIFquplbbWITFfV/SWpsFRiGMlH+2FJxJu4bA6ugp5VD9vwReRvuMvnuSTtmvQ1eRj2kFHcyY46QABoinWAJA3nEASvE0oZc9mxmS75d9TbMmERuRm3fPcx6h6C5HXBRbrEekhHRBo7SchXJbtNItKZYIVHsCa3xZUP0yjM04tGhbxr0vuQUbr2bYQpWK56G/7rAP0dN9E/kx3lhhNSPSUNABG5BviHryRfT1WwbyPxOzoAv0XOEhsKk3NKJi/caFKsEz5Jn7i4Xs+J+DtvEtzY4ERcdcvXcMu9zvTYfljuDZbt/QQXfzGpHbOXzPuuyXrCKLSVeE/MSCWwiN1ECHWAVPXE4M8w68e3B54VkQrc/MkTqlruqe3rgWeA3iLyMG7lz4We2t5e1C9bZNWQTjBbP1FVj/fYZgE7ipDN16RTo0Tk2JB6LRkrjF2T9doPdcgoriSkOkAS4jkEDbzWSOBLuNVXS1T1GA9tPoQrbrgZt1zyTVVdlWq7Se032FFSq4efEYrwcAmaLJgPmNvIt38FZFzClxBPLwLCLhXrfchIwq+7kg6JOkCv4rcOUGjnEDRgBW54cTXu0CIfJuBiPBb3uz872Gn7e0/thz2KkFax7uEnbXgByMcNudyoqn9I0+vvdEpQJmgorlS2xqeTiNwH/NbnkJGk6SzhMAU9zfuBz3HlLHzXAXoUuFnrnUOgqhd6aPubuJ59V+AJ4DHP/7/5wP7AkbiNmJtVdUjTz2rxa3kfRUinuPfwkyvaVeMORPFZ/XBXMvXTMszTi8I2FrhA3JmlXoaMkhO6iLQGBgU36wzRZTjBLRFOjIM/5ivZB8I8h6APbrOSr8NgthORF3HLsl/HXf3sH/KmKO+jCOkU64Qf1OhIFCFTYCrg8+SouArz9KKwhTZkJK6U8wO4vRuCm+i7QFWnhPWavqjqDbgTtBLj4JNFxMs4eGBeMFmefA6Bl6ELVf2BiIwSkSuCu15V1Tk+2saVnt4PGI5bQbdWXO1+LwfPNDaK4KPtKMR9SOenuM0ziRUcp+KWf3nZeNGM139SVX1uOvJG3GHOR+MS23Pq7/Si2BKRmcCXNSi7LCKDgEfUQxXRdBGRMtx7/hygxONkeRvcOQSJKpNTgLtUdYuHtq8CLmPH7+lpwL3q6YS34DWKcWcpfBcoU1UvV7T1ymZEMYrgVdwT/jzcioUtwe22uHode3tqvwj4Dq42+6USHBvoY9u2Sb+G6rf4rOkSprDHwYPXCOscglBOeAvaugI4DNfL/xT3QfWqqr6UattJr1FnFEH9nj+dVrEe0sFdmrfBHWoBbpx6ocf2J+A2pCRv2/4HkNEJX+qWA26Nq064Sf2VAY6rGeKKsyXX8p8ZYTy7I7RxcNi+sevXuPdLP/F7DkFYJ7wBtMUdTD8zjJ53A6MIfxWRtI0i+BbLHn7Sjsk9cbPzzwe3j8V9AnspdhT2tu10EZFTgQPU0ylAcRWssLicpINngD+px+qKcRUMdx0FvKKeK1pKyCe8hSnsUYR0i2sPP7FjciY73kQQHJrhUdjbttNCVf8tIj+IOo6oBYn9duD2oHZML0v223k/hyBBVW8XkVfY8UF7UYyGRRYR7ihCWsUy4WszjzAUkX+q6hkpvFSo27bDInWrV+bhNtTE71LOsyDpnIx7388GVorIZFW9NtLAMsN7IvJl3JLegbhzCKal2qi4k+jeUXf0YxwLjm0F5opInVEEEbkD4lGHKVksE/5uSGm9rKo+LyKzcDVMBHfEnLdt2yFKPu2qGtdLyaoyry1UGlSGvASYoKrXS90a8LmsoXMIUh6nDkpAzBGRPTXFyp4R+RfhjiKkVSzH8JurpbtL01lfxKRPsKb6ONxa/B+r6vS4rNIJU7BT9Zeqel1I7b+Em2t7i7olhuNQ0qJJHkYR0irbe/gtdVsT38vY0qjSSPnfhLhdfobgRlzPdWqQ7PsDCyKOKXKqWiMiYe5FuCHEtqMWq1232d7Dz8haN2ERkQuCvx6KOzXqseD2Wbhla9dEEpjJeCJyGzAQt+w4uReeSlnq5PbLgANwHZLpqrrcR7tRi0uNqoRsT/jHqepzKTy/De68z8Smi1eBu33sPgyTiLwMHJeoEyPuxKvnNMtqe+8uEekKXIo7DGb71W2ul14GCMpw1Kc+fjbBnMlPgZdwc2HjcGv870+17ajFLeHHckinXn2LOt8iqdBWKsk+8CDuLNjEFvBzcZt2zkqx3bD1wB1CnTierpgd5/LmsqdwH9ov4OHw8iyTh1uUkFxSu6mhzd1xHW4t++qg7c64FUCxT/j420CWFrFM+NStkhmmwfU2Wb0s7gCKTPdLYFawDBFcj+pnkUWTOYpU9ftRB5GhRiaSPYCqrhERX8OhS3Adp4QNwGJPbYcmmMx+QJs+zD1W76dYJnxN34HWb4vIQar6BoCIHAi8lqbXTsVfcT3Yb+MS/U+BsgjjyRT/EZETVPV/UQeSgfJEpKOqrgEINqb5yg9LgTdF5CnclfkpwFvBDlxU9XZPr+NVMJndVURaq2pVI49JdRQhrWKZ8OvViqnzLdyQTko1Y5KGjFoBXxWRz4LbfYCwznL16U+44wHbqurE4PL8n7ilcbnsauBHIlLFjoPeU36/ZInbgGki8gTuvX42cLOnthdSd3fqU8GfJZ7aD9Mi4DURmUjdyeyM/JDalVgmfFUN+42SriGjsByoqvuKyNuw/fK8ddRBRS0N75vYUtUHRWQGbsmxAKf7qsYZ1PKPq2XBVx7x+IBqUiwTfn0i0g1X7wKAVHf01R8yqt9+DGwLxh8TNYC6suNA8JwWVIVM1Hx/xUpd7xAkeO9XsCIyBreLtw91V0dl/Ia3xIeViJS4m7ox4pBSEuuEH/zy3oZbgbIC94aaBwyLQ/shugO3HbybiNwMnAn4OMA81kTkl7hhrYeDu64WkbGqmvOF5UL2MG6lzrvErOMh7mzfh4BOwe1VwFdVdW6kgbVQrNfhBytmjgJeUNV9RORI4FxVvSwO7YdJRIaw48SrF1XVy3F1cRbUzRmtqrXB7Xzg7Tj0NONMRKaq6tio42gJEZmGK8PxcnD7COAXqnpIpIG1UKx7+MA2VV0tInkikqeqL4vIr2LUfmhU9QPgg6jjyEAd2LE/oTTKQHLI9eLOy32RpPLivnbxhqxdItkDqOorwYldsRT3hL9W3FmWU4CHRWQFrjpkXNo36XULbqnty7grn8OBH0YbUk64CBiCW/WWGNJRdpwilck+FpH/o+4paZ9EGE9K4j6k0w53MIEAX8H12B5O7Ojz1P5m3Ay99/ZN+onIHrhxfAHezJaaLplMRN5V1RFRx9ESwZLmG6h7StrPEvsV4ibWCT9BRNpTd/a/oomH7067X8MdiJzzFRWzgYicBrykquuC2x2AI1T139FGlt1E5D7gt76WeZqWi3XCF5Gv40rebsZdKiY2XnkpWSoiN+I+2fvijlV8FfcBEMpB0iZcIjJbVUfXuy+nKqpGITgXdgBuKGQr9WpeZSIR+Z2qfltEJrHzJk/FzQPdk9iFHxdxT/gLgIPDPoUqONf2UuC7QE9VzQ/z9Uw4GjrsJM7DDXEhIn0auj+NJVJ2m4jsp6ozRWRcIw/pAtykqkPTGVeq4j5puxCoDKtxEfkJrrZ8MfA2LuG/GtbrmdDNEJHbgT/iemlXAjOjDSl7iUh7VV1P3cJpsaCqM4M/Jzf2mKBER6zEvYe/DzABeJO6y728nOwUnGdbDfwXmAy8kem18E3jgkn4/wOOCe56DrhZVTc1/izTUiLyH1U9UUQ+wX3AJpcS9jb0GiZxB7rfgjtQKHk3f8bH3pC4J/y3gKnU28Gnqg94fI0S3Dj+WFxBqfK4biIxTRORO1X1yqjjyDUiMixTd66KyFTgeuC3wEm4JaaiqtdHGlgLxX1Ip1pVrw2r8WBb9WG4evJjcDW8bUgnex0adQA56iEgU0+NaquqL4qIBHMOPxORV3EfArET94T/sohcBkyi7pCOl2WZwK9w627vwJ3DuW0XjzfG7L5MPjVqi4jkAQtE5Apcbf9uEcfUYnEf0kne8bb9H+JzfC1YobOnqs731abJTHE7nzRbZPLPXUT2xxVM7ADcBLQHblXVNyMNrIXyog4gRd8HRqlqP9zk7RxcZUgvROQkYDbwTHB7dHAQgslOmdzTNNFQ3JDTRNyw7iDgvkgjSkHcE/5PVHW9iIwFjsUd7XeXx/Z/BhwArAUINlz19di+SSMR2enw+Xr3/T6N4ZgdMnl548O4zuQZuIORTsRN3sZS3BN+TfDnF4G7VfUpwOfJTtWJbfgmKzRUKG37far61/SFkjvEOU9Efhrc3lNEDkh8X1UPii66XVqpqhNV9RNV/TTxFXVQLRX3SdulInIPbl31r0SkEL8fYu+JyJeB/GA97lXANI/tmzQQkS8AJwA9ReSOpG+1x6qfpkPijOWjcKVQNhCfM5bjXNp5J3FP+GcD44HfqOraoBLidR7bvxJ3NNtW4BHgWdzEjYmXZbhaSCdTd2ftBuCaSCLKLXE+YznOpZ13EutVOsbsDhFphZuYHYL7pZ2vqpk8fpwVRORN4BDc0uZ9gzOWn4tD0bpsq7UU9x5+qERkEK5+Tl/qll8+KqqYTEqOBe7B1WASoJ+IfF1Vn442rKwX5zOW3xCRodlS2tl6+E0IzrS9GzcMkJgg3l5YycSLiHwAnKiqHwW3BwD/VdUh0UaW/eJ6xnIcSzs3xXr4TatWVZ/LPE20ViSSfeBjYEVUweSYclxZkgKgrYjsq6qzIo6pOcZHHYBPlvCbNklEvoW7HA2jdINJAxE5PfjrXBH5H/A4bgz/LGB6ZIHlCBG5CbgQN5SWGFJQ3KqdjBbnJZgNsSGdJtQr3ZAQi7KuZgcRmdDEt1VVv5a2YHKQiMwHRtgEefSsh9+EoGSDiTlVvSjqGHLce7haNDZ8FjHr4TdBRIqAa3HF0y4LNl8NVtX/RByaaYFg1dVdQHdVHS4iI4GTVfXnEYeW1URkDPAULvEnD42eHFlQOcoSfhNE5DHcCp2vBgmiLfB6/YOwTTyIyGTcxrx7EmvAReQ9VR0ebWTZTUTm4pbD1j+oqNHjA004bEinaQNU9Usici6Aqm4WEauoGF9FqvpWvf9CK60QvlWqeseuH2bCZgm/aVVBr15h+7rtrU0/xWSwVcH/YeL/80zg82hDygkzReQWXInh5CGdOCzLzCqW8BsR9OTvxtXC7y0iD+OOwLswyrhMSi4H7gWGiMhS3Gaar0QbUk5IlFBIrooZi2WZ2cbG8JsgIjOB43BvVAHeUNVV0UZldpeI1D/3uC2uquomAFW9Pe1BGRMB6+E37Q2gv6r+N+pATEpKgj8H40ryPoX7AD8fd2axCZGIlOIO/T48uGsycKOdNZF+1sNvgoi8jzvS7FNcbzDWdTRynYg8B5yhqhuC2yXAP1Q1q7bPZxoR+SduSeYDwV3n444mPb3xZ5kwWA+/aV+IOgDj1Z7UPU6vCjuyMh0GqOoZSbdvEJHZkUWTwyzhNyHb6mgYHgLeEpF/4SYNT2NHr9OEZ7OIjFXVqQAiciiwOeKYcpIN6ZicIiL7AocFN6eo6ttRxpMLRGQ07oO1NLhrDXCBqr4TXVS5yRK+MSZUwVnTZ+LqyncA1uHmwm6MNLAcZEM6xpiwPQWsBWYBSyOOJadZD98YEyqrV5Q58qIOwBiT9aaJSNYcBB5n1sM3xoRCRN7FrYYqAAbijpSM/bmwcWYJ3xgTChHp09T3bdlz+lnCN8aYHGFj+MYYkyMs4RtjTI6whG+MMTnCEr4xxuQIS/jGGJMj/jwq5TsAAAAFSURBVB9KadyRtxY4rQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.xticks(rotation = 90)\n", + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"purpose\"], df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parse progress: |█████████████████████████████████████████████████████████| 100%\n" + ] + } + ], + "source": [ + "te_purpose = mean_target_encoding(train, \"purpose\")" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "train = train.merge(te_purpose, all_x = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"purpose\")\n", + "x_trans.append(\"te_purpose\")" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "train[\"te_purpose\"].hist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating Target Encoding for State of Residence\n", + "\n", + "We will also use a mean target encoding for state of residence for a reason similar to that for purpose." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " addr_state Count Percent\n", + "0 CA 28702 17.50\n", + "1 NY 14285 8.71\n", + "2 TX 12128 7.40\n", + "3 FL 11396 6.95\n", + "4 NJ 6457 3.94\n" + ] + } + ], + "source": [ + "tbl = train[\"addr_state\"].table().as_data_frame()\n", + "tbl[\"Percent\"] = np.round((100 * tbl[\"Count\"]/train.nrows), 2)\n", + "tbl = tbl.sort_values(by = \"Count\", ascending = 0)\n", + "tbl = tbl.reset_index(drop = True)\n", + "print(tbl[0:5])" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"addr_state\")" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " addr_state nrow mean_bad_loan\n", + "0 NE 13 0.538462\n", + "1 TN 1327 0.238885\n", + "2 NV 2387 0.227901\n", + "3 MS 163 0.226994\n", + "4 IN 1463 0.217362\n" + ] + } + ], + "source": [ + "df = df.sort_values(by = \"mean_bad_loan\", ascending = 0)\n", + "df = df.reset_index(drop = True)\n", + "print(df[0:5])" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " addr_state nrow mean_bad_loan\n", + "45 WV 714 0.131653\n", + "46 DC 584 0.114726\n", + "47 ID 9 0.111111\n", + "48 WY 376 0.109043\n", + "49 ME 3 0.000000\n" + ] + } + ], + "source": [ + "print(df[45:50])" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"addr_state\"], df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parse progress: |█████████████████████████████████████████████████████████| 100%\n" + ] + } + ], + "source": [ + "te_addr_state = mean_target_encoding(train, \"addr_state\", prior_count = 30)" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [], + "source": [ + "grouped_data = te_addr_state[[\"addr_state\", \"te_addr_state\"]].group_by([\"addr_state\"])\n", + "df = grouped_data.count(na = \"ignore\").mean(na = \"ignore\").get_frame().as_data_frame()" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "df = df.sort_values(by = \"mean_te_addr_state\", ascending = 0)\n", + "df = df.reset_index(drop = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(df[\"addr_state\"], df[\"mean_te_addr_state\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "train = train.merge(te_addr_state, all_x = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"addr_state\")\n", + "x_trans.append(\"te_addr_state\")" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEXCAYAAABlI9noAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3XuYHFWd//H3h4RLAgQCCQgJEJB4AUSBEaKooLAxXBTYnyisbgKi8YIK+3OfJbiu3GQXdhElDy5LuCwJCIgokkUwRi7yk+WWcA8BMwKSMZFEcoUIiHx/f9RprEx6enpmTk9PJ5/X89TTVadOVX/PdCbfqVOnTykiMDMzy2GjZgdgZmbrDycVMzPLxknFzMyycVIxM7NsnFTMzCwbJxUzM8vGScX6jaR5kg5udhzNJOkYSQslvSRpn2bHAyBpjKSQNLiL/WdKuqa/47LW5KRiWUh6TtKhncpOkPTrynZE7BkRd3Vznpr/wa0HLgC+EhFbRMTDnXemtu/ehLj6laS7JH2uB/Wd2FqEk4ptUAZAstoFmNfkGLIZAD9PG2CcVKzflK9mJO0vaY6kVZJekHRhqnZ3el2RuojeJ2kjSd+U9DtJSyTNkLRV6bwT074XJf1Lp/c5U9KNkq6RtAo4Ib33vZJWSFos6WJJm5TOF5K+LGmBpNWSzpH01nTMKkk3lOt3amPVWCVtKuklYBDwqKTfVjm20vZHU9s/lcqPlPRIivd/Je1dx896iqTfpviflHRMad8gSRdI+qOkZ4AjOh27q6RfpWNnAyNK+ypXkidJeh64o0YMm6Wf+4sp9gclbS/pXOCDwMWpnRen+helrsFVkuZK+mAqnwB8A/hUqv9oKt9K0hXpM/y9pG9LGtTdz8YaLCK8eOnzAjwHHNqp7ATg19XqAPcCf5/WtwDGpfUxQACDS8d9FmgHdkt1fwJcnfbtAbwEfADYhKJ76c+l9zkzbR9N8UfUEGA/YBwwOL3ffODU0vsFMBMYBuwJvArcnt5/K+BJYFIXP4cuYy2de/caP8e19gP7AkuAAygS0qT0c9y0m8/jWGDH1OZPAS8DO6R9XwSeAnYCtgHuLP/M02dzIbAp8CFgNXBNp89nBrA5MKRGDF8A/gcYmmLfDxiW9t0FfK5T/c8A26bP5evAH4DNSp/jNZ3q/xS4NMWxHfAA8IVm/y5s6EvTA/CyfizpP7qXgBWlZQ1dJ5W7gbOAEZ3OU/lPq5xUbge+XNp+O0WiGAx8C7iutG8o8BprJ5W7u4n9VOCm0nYAB5a25wKnlba/A3yvi3N1GWvp3D1JKpcA53Sq8zRwUA8/n0eAo9L6HcAXS/vGV37mwM7A68Dmpf3XVkkqu9Xxnp8F/hfYu8q+dZJKlTrLgXeXPsdrSvu2p0j2Q0plxwN3Nvt3YUNf3P1lOR0dEVtXFuDLNeqeBLwNeCp1ixxZo+6OwO9K27+j+A9w+7RvYWVHRKwBXux0/MLyhqS3SbpF0h9Sl9i/UuriSV4orf+pyvYWvYi1N3YBvp66j1ZIWkFxhbFjrYNSl+AjpWP24q9tXOtn1ineHYHlEfFyF/srFlYp6+xqYBZwvaRFkv5d0sY1Yv66pPmSVqaYt2Ldz6ViF2BjYHGpjZdSXLFYEzmpWFNExIKIOJ7iP4HzgRslbU7xV3Bniyj+E6mo/DX9ArAYGF3ZIWkIRRfKWm/XafsSiu6fsRExjKK/Xr1vTd2x9sZC4Nxyso6IoRFxXVcHSNoFuAz4CrBtSvBP8Nc2LqZITOUYKe0bnj6Lavsrup3ePCL+HBFnRcQewPuBI4GJ1Y5P909OAz4JDE8xryzF3Pn9FlJcqYwo/VyGRcSe3cVljeWkYk0h6TOSRkbEGxRdZQB/AZYCb1Dck6i4DviHdAN5C4orix9GxOvAjcDHJL0/3Tw/i+4TxJbAKuAlSe8AvpStYbVjrccLrN32y4AvSjpAhc0lHSFpyxrnqCTnpQCSTqS4Uqm4AfiapNGShgNTKjsi4nfAHOAsSZtI+gDwsTpjX4ukD0t6V7p5voqiG/AvXbRzS4rkuxQYLOlbFPe0KNUfI2mjFOdi4BfAdyQNSwMk3irpoN7Eavk4qVizTADmpRFRFwHHRcQrqfvqXOCe1K0xDriSoivlbuBZ4BXgqwARMS+tX0/xV/Zqihvbr9Z4738E/i7VvQz4YcZ2dRlrnc4Epqe2fzIi5gCfBy6muMfQTjEAoksR8STFfZ97Kf4zfhdwT6nKZRTdUo8CD1EMJij7O4qBAcuAMyhuyvfGWyiS/iqKwRC/AirfNbkI+ISk5ZKmpnhuA35D0d32Cmt3sf0ovb4o6aG0PpFicMaTFD+bG4EdehmrZaIIP6TL1h/p6mAFRdfWs82Ox2xD4ysVa3mSPiZpaLoPcAHwOMVIMzPrZ04qtj44iuIG+SJgLEVX2np9CS5p5/RFwGpLtRvrjYrj013EsN7MGmA94+4vMzPLpqFXKpK2VjFFxlNp/Pn7JG0jabaKKTBmp9EnpJEtUyW1S3pM0r6l80xK9RdImlQq30/S4+mYqZJyDQs1M7NeaOiViqTpwP+LiMvTcM+hFN8JWBYR50maQjEm/TRJh1OMkjmcYuTJRRFxgKRtKIY4tlEMk5wL7BcRyyU9AJwC3AfcCkyNiNtqxTRixIgYM2ZMQ9prZrY+mjt37h8jYmQ9dRs2w6ikYRTzBp0AEBGvAa9JOgo4OFWbTjFdw2kU/eIzUl/4fekqZ4dUd3ZELEvnnQ1MkHQXxTxC96byGRTzO9VMKmPGjGHOnDnZ2mlmtr6TVG1Whaoa2f21G8UXmf5b0sOSLk+jc7ZPX1yqfIGpMq3CKNYel96RymqVd1QpX4ekySpmxJ2zdOnSvrfMzMyqamRSGUwxw+olEbEPxSypU2rUr3Y/JHpRvm5hxLSIaIuItpEj67qCMzOzXmhkUukAOiLi/rR9I0WSeSF1a5Fel5Tql+cjGk0xRLRW+egq5WZm1iQNSyoR8QdgoaS3p6JDKKZTmEnxTAjS681pfSYwMY0CGwesTN1js4DxkoankWLjgVlp32pJ49Kor4mlc5mZWRM0+lGgXwV+kEZ+PQOcSJHIbpB0EvA8xcOEoBi9dTjF3EZrUl0iYpmkc4AHU72zKzftKSYCvIriwUu30c1NejMza6wN7suPbW1t4dFfZmb1kzQ3ItrqqetpWszMLBsnFTMzy8ZJxczMsmn0jXqzDcKYKT/r8zmeO++IDJGYNZevVMzMLBsnFTMzy8ZJxczMsnFSMTOzbJxUzMwsGycVMzPLxknFzMyycVIxM7NsnFTMzCwbJxUzM8vGScXMzLJxUjEzs2ycVMzMLBsnFTMzy8ZJxczMsnFSMTOzbJxUzMwsGycVMzPLxknFzMyycVIxM7NsnFTMzCwbJxUzM8vGScXMzLJpaFKR9JykxyU9ImlOKttG0mxJC9Lr8FQuSVMltUt6TNK+pfNMSvUXSJpUKt8vnb89HatGtsfMzGrrjyuVD0fEeyKiLW1PAW6PiLHA7Wkb4DBgbFomA5dAkYSAM4ADgP2BMyqJKNWZXDpuQuObY2ZmXWlG99dRwPS0Ph04ulQ+Iwr3AVtL2gH4KDA7IpZFxHJgNjAh7RsWEfdGRAAzSucyM7MmaHRSCeAXkuZKmpzKto+IxQDpdbtUPgpYWDq2I5XVKu+oUr4OSZMlzZE0Z+nSpX1skpmZdWVwg89/YEQskrQdMFvSUzXqVrsfEr0oX7cwYhowDaCtra1qHTMz67uGXqlExKL0ugS4ieKeyAup64r0uiRV7wB2Kh0+GljUTfnoKuVmZtYkDUsqkjaXtGVlHRgPPAHMBCojuCYBN6f1mcDENApsHLAydY/NAsZLGp5u0I8HZqV9qyWNS6O+JpbOZWZmTdDI7q/tgZvSKN/BwLUR8XNJDwI3SDoJeB44NtW/FTgcaAfWACcCRMQySecAD6Z6Z0fEsrT+JeAqYAhwW1rMzKxJGpZUIuIZ4N1Vyl8EDqlSHsDJXZzrSuDKKuVzgL36HKyZmWXhb9SbmVk2TipmZpaNk4qZmWXjpGJmZtk4qZiZWTZOKmZmlo2TipmZZeOkYmZm2TipmJlZNk4qZmaWjZOKmZll46RiZmbZOKmYmVk2TipmZpaNk4qZmWXjpGJmZtk4qZiZWTZOKmZmlo2TipmZZeOkYmZm2TipmJlZNk4qZmaWjZOKmZll46RiZmbZOKmYmVk2TipmZpaNk4qZmWXT8KQiaZCkhyXdkrZ3lXS/pAWSfihpk1S+adpuT/vHlM5xeip/WtJHS+UTUlm7pCmNbouZmdXWH1cqpwDzS9vnA9+NiLHAcuCkVH4SsDwidge+m+ohaQ/gOGBPYALwnylRDQK+DxwG7AEcn+qamVmTNDSpSBoNHAFcnrYFfAS4MVWZDhyd1o9K26T9h6T6RwHXR8SrEfEs0A7sn5b2iHgmIl4Drk91zcysSRp9pfI94J+AN9L2tsCKiHg9bXcAo9L6KGAhQNq/MtV/s7zTMV2Vr0PSZElzJM1ZunRpX9tkZmZdaFhSkXQksCQi5paLq1SNbvb1tHzdwohpEdEWEW0jR46sEbWZmfXF4Aae+0Dg45IOBzYDhlFcuWwtaXC6GhkNLEr1O4CdgA5Jg4GtgGWl8oryMV2Vm5lZEzTsSiUiTo+I0RExhuJG+x0R8WngTuATqdok4Oa0PjNtk/bfERGRyo9Lo8N2BcYCDwAPAmPTaLJN0nvMbFR7zMyse428UunKacD1kr4NPAxckcqvAK6W1E5xhXIcQETMk3QD8CTwOnByRPwFQNJXgFnAIODKiJjXry0xM7O19EtSiYi7gLvS+jMUI7c613kFOLaL488Fzq1Sfitwa8ZQzcysD/yNejMzy8ZJxczMsnFSMTOzbJxUzMwsGycVMzPLpq6kImmvRgdiZmatr94hxf+VvmB4FXBtRKxoXEhmG6YxU37W53M8d94RGSIx6726rlQi4gPApymmRZkj6VpJf9PQyMzMrOXUfU8lIhYA36T4RvxBwFRJT0n620YFZ2ZmraXeeyp7S/ouxcO2PgJ8LCLemda/28D4zMyshdR7T+Vi4DLgGxHxp0phRCyS9M2GRGZmZi2n3qRyOPCn0kSOGwGbRcSaiLi6YdGZmVlLqfeeyi+BIaXtoanMzMzsTfUmlc0i4qXKRlof2piQzMysVdWbVF6WtG9lQ9J+wJ9q1Dczsw1QvfdUTgV+JKnyuN4dgE81JiQzM2tVdSWViHhQ0juAtwMCnoqIPzc0MjMzazk9efLje4Ex6Zh9JBERMxoSlZmZtaS6koqkq4G3Ao8Af0nFATipmJnZm+q9UmkD9oiIaGQwZmbW2uod/fUE8JZGBmJmZq2v3iuVEcCTkh4AXq0URsTHGxKVmZm1pHqTypmNDMLMzNYP9Q4p/pWkXYCxEfFLSUOBQY0NzczMWk29U99/HrgRuDQVjQJ+2qigzMysNdV7o/5k4EBgFbz5wK7tGhWUmZm1pnqTyqsR8VplQ9Jgiu+pmJmZvanepPIrSd8AhqRn0/8I+J9aB0jaTNIDkh6VNE/SWal8V0n3S1og6YeSNknlm6bt9rR/TOlcp6fypyV9tFQ+IZW1S5rSs6abmVlu9SaVKcBS4HHgC8CtFM+rr+VV4CMR8W7gPcAESeOA84HvRsRYYDlwUqp/ErA8InaneETx+QCS9gCOA/YEJgD/KWmQpEHA94HDgD2A41NdMzNrkrqSSkS8ERGXRcSxEfGJtF6z+ysKlWewbJyWoHiu/Y2pfDpwdFo/Km2T9h8iSan8+oh4NSKeBdqB/dPSHhHPpK6561NdMzNrknrn/nqWKvdQImK3bo4bBMwFdqe4qvgtsCIiXk9VOihGkpFeF6bzvi5pJbBtKr+vdNryMQs7lR/QRRyTgckAO++8c62QzcysD3oy91fFZsCxwDbdHZSeaf8eSVsDNwHvrFYtvaqLfV2VV7vKqnr1FBHTgGkAbW1tHmBgZtYg9XZ/vVhafh8R36PoxqpLRKwA7gLGAVun0WMAo4HKg786gJ3gzdFlWwHLyuWdjumq3MzMmqTeLz/uW1raJH0R2LKbY0amKxQkDQEOBeYDdwKfSNUmATen9Zlpm7T/jnTfZiZwXBodtiswFngAeBAYm0aTbUJxM39mXa02M7OGqLf76zul9deB54BPdnPMDsD0dF9lI+CGiLhF0pPA9ZK+DTwMXJHqXwFcLamd4grlOICImCfpBuDJ9N4np241JH0FmEUxZcyVETGvzvaYmVkD1Dv314d7euKIeAzYp0r5MxQjtzqXv0Jxr6bauc4Fzq1SfivF8GYzMxsA6h399X9r7Y+IC/OEY2Zmrawno7/ey1/vWXwMuJu1h/SamdkGricP6do3IlYDSDoT+FFEfK5RgZmZWeupd5qWnYHXStuvAWOyR2NmZi2t3iuVq4EHJN1E8QXDY4AZDYvKzMxaUr2jv86VdBvwwVR0YkQ83LiwzMysFdXb/QUwFFgVERcBHemLiGZmZm+q9xv1ZwCnAaenoo2BaxoVlJmZtaZ6r1SOAT4OvAwQEYvoZpoWMzPb8NSbVF5L83AFgKTNGxeSmZm1qnqTyg2SLqWYYfjzwC+ByxoXlpmZtaJ6R39dkJ5Nvwp4O/CtiJjd0MjMzKzldJtU0izDsyLiUMCJxMzMutRt91eaZn6NpK36IR4zM2th9X6j/hXgcUmzSSPAACLiaw2JyszMWlK9SeVnaTEzM+tSzaQiaeeIeD4ipvdXQGZm1rq6u6fy08qKpB83OBYzM2tx3SUVldZ3a2QgZmbW+rpLKtHFupmZ2Tq6u1H/bkmrKK5YhqR10nZExLCGRmdmZi2lZlKJiEH9FYiZmbW+njxPxczMrCYnFTMzy8ZJxczMsnFSMTOzbJxUzMwsm4YlFUk7SbpT0nxJ8ySdksq3kTRb0oL0OjyVS9JUSe2SHpO0b+lck1L9BZImlcr3k/R4OmaqJK0biZmZ9ZdGXqm8Dnw9It4JjANOlrQHMAW4PSLGArenbYDDgLFpmQxcAkUSAs4ADgD2B86oJKJUZ3LpuAkNbI+ZmXWjYUklIhZHxENpfTUwHxgFHAVUJqicDhyd1o8CZkThPopHF+8AfBSYHRHLImI5xYPCJqR9wyLi3ogIYEbpXGZm1gT9ck9F0hhgH+B+YPuIWAxF4gG2S9VGAQtLh3WkslrlHVXKq73/ZElzJM1ZunRpX5tjZmZdaHhSkbQF8GPg1IhYVatqlbLoRfm6hRHTIqItItpGjhzZXchmZtZLDU0qkjamSCg/iIifpOIXUtcV6XVJKu8AdiodPhpY1E356CrlZmbWJI0c/SXgCmB+RFxY2jUTqIzgmgTcXCqfmEaBjQNWpu6xWcB4ScPTDfrxwKy0b7Wkcem9JpbOZWZmTVDv44R740Dg7ymebf9IKvsGcB5wg6STgOeBY9O+W4HDgXZgDXAiQEQsk3QO8GCqd3ZELEvrXwKuAoYAt6XFbIM1Zkrfn/r93HlHZIjENlQNSyoR8Wuq3/cAOKRK/QBO7uJcVwJXVimfA+zVhzDNzCwjf6PezMyycVIxM7NsnFTMzCwbJxUzM8vGScXMzLJxUjEzs2ycVMzMLBsnFTMzy8ZJxczMsnFSMTOzbJxUzMwsGycVMzPLxknFzMyycVIxM7NsGvk8FbOG8/NDzAYWX6mYmVk2vlIxs7X46s/6wlcqZmaWjZOKmZll46RiZmbZOKmYmVk2TipmZpaNk4qZmWXjpGJmZtk4qZiZWTZOKmZmlo2TipmZZdOwpCLpSklLJD1RKttG0mxJC9Lr8FQuSVMltUt6TNK+pWMmpfoLJE0qle8n6fF0zFRJalRbzMysPo28UrkKmNCpbApwe0SMBW5P2wCHAWPTMhm4BIokBJwBHADsD5xRSUSpzuTScZ3fy8zM+lnDkkpE3A0s61R8FDA9rU8Hji6Vz4jCfcDWknYAPgrMjohlEbEcmA1MSPuGRcS9ERHAjNK5zMysSfr7nsr2EbEYIL1ul8pHAQtL9TpSWa3yjirlVUmaLGmOpDlLly7tcyPMzKy6gTL1fbX7IdGL8qoiYhowDaCtra3LerZhyjHVu5kV+vtK5YXUdUV6XZLKO4CdSvVGA4u6KR9dpdzMzJqov5PKTKAygmsScHOpfGIaBTYOWJm6x2YB4yUNTzfoxwOz0r7VksalUV8TS+cyM7MmaVj3l6TrgIOBEZI6KEZxnQfcIOkk4Hng2FT9VuBwoB1YA5wIEBHLJJ0DPJjqnR0RlZv/X6IYYTYEuC0tZmbWRA1LKhFxfBe7DqlSN4CTuzjPlcCVVcrnAHv1JUYzM8vL36g3M7NsnFTMzCwbJxUzM8vGScXMzLJxUjEzs2ycVMzMLBsnFTMzy8ZJxczMsnFSMTOzbJxUzMwsGycVMzPLxknFzMyycVIxM7NsnFTMzCwbJxUzM8tmoDyj3szWI2Om/KzP53juvCMyRGL9zVcqZmaWjZOKmZll4+4v6xV3b5hZNb5SMTOzbJxUzMwsGycVMzPLxvdUzGxA8n271uQrFTMzy8ZJxczMsnFSMTOzbHxPxZomR5+5mQ0sLZ9UJE0ALgIGAZdHxHlNDqkm33w0s/VZSycVSYOA7wN/A3QAD0qaGRFPNjcyMxsI+vpHnP+A67mWTirA/kB7RDwDIOl64CigIUlloHTX+GrHzAaqVk8qo4CFpe0O4IDOlSRNBianzZckPZ3hvUcAf8xwnqbQ+W+utnQ7StyOgWN9aAPACJ2/frSDvn8eu9RbsdWTiqqUxToFEdOAaVnfWJoTEW05z9kMbsfAsj60Y31oA7gdvdXqQ4o7gJ1K26OBRU2Kxcxsg9fqSeVBYKykXSVtAhwHzGxyTGZmG6yW7v6KiNclfQWYRTGk+MqImNdPb5+1O62J3I6BZX1ox/rQBnA7ekUR69yCMDMz65VW7/4yM7MBxEnFzMyycVKpk6T/kPSUpMck3SRp6y7qTZD0tKR2SVP6O87uSDpW0jxJb0jqcpihpH9I9Z6QdJ2kzfozzu70oB1bS7oxfXbzJb2vP+PsTr3tSHUHSXpY0i39FV896mmDpJ0k3Zk+g3mSTunvOLvTg39TA/13fBtJsyUtSK/Du6j376m98yVNlVTtKxo95qRSv9nAXhGxN/Ab4PTOFUrTxhwG7AEcL2mPfo2ye08Afwvc3VUFSaOArwFtEbEXxSCI4/onvLp1247kIuDnEfEO4N3A/EYH1kP1tgPgFAZe/FBfG14Hvh4R7wTGASe36O9GK/yOTwFuj4ixwO1pey2S3g8cCOwN7AW8Fzgox5s7qdQpIn4REa+nzfsovhPT2ZvTxkTEa0Bl2pgBIyLmR0Q9MwoMBoZIGgwMZYB9/6eedkgaBnwIuCId81pErOiP+OpV7+chaTRwBHB546PqmXraEBGLI+KhtL6aIjmO6o/46lXnZzHgf8cp4pme1qcDR1epE8BmwCbApsDGwAs53txJpXc+C9xWpbzatDED6henHhHxe+AC4HlgMbAyIn7R3Kh6ZTdgKfDfqdvockmbNzuoXvoe8E/AG80OpK8kjQH2Ae5vbiS90gq/49tHxGIokjmwXecKEXEvcCfF7/diYFZEZLkKbunvqeQm6ZfAW6rs+ueIuDnV+WeKS/kfVDtFlbJ+H7NdTzu6OX44xV87uwIrgB9J+kxEXJM30m7j6FM7KP597wt8NSLul3QRRVfAv2QMs1sZPo8jgSURMVfSwbnjq0eGz6Jyni2AHwOnRsSqXPH14P372o4B/zte5/G7A+/krz0usyV9KCLq6YatyUmlJCIOrbVf0iTgSOCQqP4FnwExbUx37ajDocCzEbEUQNJPgPcD/ZpUMrSjA+iIiMpfxDdSpX+50TK040Dg45IOp+iyGCbpmoj4TN+jq0+GNiBpY4qE8oOI+Enfo+q5TP+mBvTvuKQXJO0QEYsl7QAsqVLtGOC+iHgpHXMbxb2uPicVd3/VKT0M7DTg4xGxpotq68u0Mc8D4yQNTSNCDmFg3iCuKSL+ACyU9PZUdAgNeixCI0XE6RExOiLGUPybuqM/E0oO6d/RFcD8iLiw2fH0QSv8js8EJqX1SUC1K7DngYMkDU7J/iBy/Y5HhJc6FqCdoi/1kbT8VyrfEbi1VO9witFhv6W4pG567J3acQzFX1uvUtyYm9VFO84CnqIYEXM1sGmzY+9lO94DzAEeA34KDG927L1pR6n+wcAtzY67p20APkDRTfRY6Xfo8GbH3st/UwP9d3xbilFfC9LrNqm8jeLpuFCM6LyUIpE8CVyY6/09TYuZmWXj7i8zM8vGScXMzLJxUjEzs2ycVMzMLBsnFTMzy8ZJxczMsnFSsQ1emh7/yw08/wmSLu5i30sZzn+qpKG56pn1hZOKGWwNNCyp9FSaXr0nTqWYSTpXPbNe89xfZnAe8FZJj1A8N2cJ8EmKKcFviogzujpQ0k8p5oLaDLgoIqal8hMpnrmzmOLb16+m8l2Bayl+935eOs/BwBmp/nsontXR+b02B26gmG9qEHAOsD3FN77vlPTHiPiwpEsono8xBLgxIs6Q9LUq9cZTzJywKcW3w0+MNBeUWa81e0oBL16avQBjgCfS+nhgGsVstBsBtwAfqnFsZQqMIRRT2mwL7EAxt9JIiudV3ANcnOrNBCam9ZOBl9L6wcDLwK413uv/AJeVtrdKr88BI6rENAi4C9i7cz1gBMXkgZun7dOAbzX7s/DS+ou7v8zWNj4tDwMPAe8Axtao/zVJj1I8uG2nVPcA4K6IWBrFg5x+WKp/IHBdWr+607keiIhna7zX48Chks6X9MGIWNlFvU9Keii1YU+qXPVQzEi7B3BPukKbBOxS473N6uLuL7O1Cfi3iLi024pFl9WhwPsiYo2kuyi6waD2Mza62vdyrfeLiN9I2o9iQsN/k/SLiDi7U0y7Av8IvDcilku6qhTTWlWB2RFxfK33NOspX6mYwWpgy7Q+C/hsepgUkkZJWufJeclWwPKUUN5B8dc/FE80PFjStmla8WNLx9xDMV06wKd7EqSkHYE1UTws7QKKB5B1jn8YRXJaKWl7imepV2vnfcCB6WFNpMccvK0n8ZhV4ysV2+BFxIuS7pH0BMVjoq8ZSh+QAAAAo0lEQVQF7i0eAcJLwGeo/qCjnwNflPQY8DTFf9RE8XCkM4F7KW68P0RxfwPgFOBaSadQPLCqJ94F/IekN4A/A19K5dOA2yQtjuIG/MPAPOAZiiRGF/VOAK6TtGna/02KQQVmveap783MLBt3f5mZWTbu/jLrhqTKk/Q6OyQiXmz19zPLyd1fZmaWjbu/zMwsGycVMzPLxknFzMyycVIxM7Ns/j8Xt1zUqNekrQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "train[\"te_addr_state\"].hist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Separating Typical from Extreme Debt to Income Ratio\n", + "\n", + "Looking at the occurance of bad loans on a logit scale reveal that the chance of a bad loan roughly increases linearly in debt-to-income from 5% to 30% and is highly volatile outside of that range due to small numbers of observations. To reflect this finding in the modeling, we will replace the original `dti` measure with two derived measures:\n", + "\n", + "\\begin{eqnarray}\n", + "dti\\_core & = & \\max(5, \\min(dti, 30)) \\\\\n", + "dti\\_diff & = & dti - dti\\_core\n", + "\\end{eqnarray}" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Probs dtiQuantiles
0 0
0.05 3.79
0.25 10.23
0.5 15.62
0.75 21.26
0.95 29.02
1 39.99
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"dti\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "breaks = np.linspace(0, 40, 41).tolist()\n", + "train[\"dti_cat\"] = train[\"dti\"].cut(breaks = breaks)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"dti_cat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"dti_cat\"].index, df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
dti_catnrowmean_bad_loan
30(29.0,30.0]23290.280378
31(30.0,31.0]14960.293449
32(31.0,32.0]12820.287051
33(32.0,33.0]10510.308278
34(33.0,34.0]10250.290732
35(34.0,35.0]7500.318667
36(35.0,36.0]750.160000
37(36.0,37.0]660.227273
38(37.0,38.0]650.123077
39(38.0,39.0]590.322034
40(39.0,40.0]470.063830
\n", + "
" + ], + "text/plain": [ + " dti_cat nrow mean_bad_loan\n", + "30 (29.0,30.0] 2329 0.280378\n", + "31 (30.0,31.0] 1496 0.293449\n", + "32 (31.0,32.0] 1282 0.287051\n", + "33 (32.0,33.0] 1051 0.308278\n", + "34 (33.0,34.0] 1025 0.290732\n", + "35 (34.0,35.0] 750 0.318667\n", + "36 (35.0,36.0] 75 0.160000\n", + "37 (36.0,37.0] 66 0.227273\n", + "38 (37.0,38.0] 65 0.123077\n", + "39 (38.0,39.0] 59 0.322034\n", + "40 (39.0,40.0] 47 0.063830" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[30:41]" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"dti\")\n", + "x_trans.append(\"dti_core\")\n", + "x_trans.append(\"dti_delta\")\n", + "\n", + "train[\"dti_core\"] = h2o.H2OFrame.ifelse(train[\"dti\"] <= 5, 5, train[\"dti\"])\n", + "train[\"dti_core\"] = h2o.H2OFrame.ifelse(train[\"dti_core\"] <= 30, train[\"dti_core\"], 30)\n", + "\n", + "train[\"dti_delta\"] = train[\"dti\"] - train[\"dti_core\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Separating Typical from Extreme Number of Delinquencies in the Past 2 Years\n", + "\n", + "The chance of a bad loan seems to max out at 3 delinquent payments in the past two years. To reflect this finding in the modeling, we will replace the original `delinq_2yrs` measure with two derived measures:\n", + "\n", + "\\begin{eqnarray}\n", + "delinq\\_2yrs\\_core & = & \\min(delinq\\_2yrs, 3) \\\\\n", + "delinq\\_2yrs\\_diff & = & delinq\\_2yrs - delinq\\_2yrs\\_core\n", + "\\end{eqnarray}" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Probs delinq_2yrsQuantiles
0 0
0.05 0
0.25 0
0.5 0
0.75 0
0.95 1
1 29
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"delinq_2yrs\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [], + "source": [ + "breaks = np.linspace(0, 5, 6).tolist()\n", + "train[\"delinq_2yrs_cat\"] = train[\"delinq_2yrs\"].cut(breaks = breaks)" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
delinq_2yrs_catnrowmean_bad_loan
0NaN00.181037
1(0.0,1.0]171580.189299
2(1.0,2.0]46350.201510
3(2.0,3.0]14880.221774
4(3.0,4.0]5790.215889
5(4.0,5.0]3100.216129
\n", + "
" + ], + "text/plain": [ + " delinq_2yrs_cat nrow mean_bad_loan\n", + "0 NaN 0 0.181037\n", + "1 (0.0,1.0] 17158 0.189299\n", + "2 (1.0,2.0] 4635 0.201510\n", + "3 (2.0,3.0] 1488 0.221774\n", + "4 (3.0,4.0] 579 0.215889\n", + "5 (4.0,5.0] 310 0.216129" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean_target(train, \"delinq_2yrs_cat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"delinq_2yrs\")\n", + "x_trans.append(\"delinq_2yrs_core\")\n", + "x_trans.append(\"delinq_2yrs_delta\")\n", + "\n", + "train[\"delinq_2yrs_core\"] = h2o.H2OFrame.ifelse(train[\"delinq_2yrs\"] <= 3, train[\"delinq_2yrs\"], 3)\n", + "\n", + "train[\"delinq_2yrs_delta\"] = train[\"delinq_2yrs\"] - train[\"delinq_2yrs_core\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Separating Typical from Extreme Revolving Credit Line Utilized\n", + "\n", + "The relationship between credit line utilized is somewhat interesting. There appears to be a higher rate for a bad loan when 0% of the credit lines are utilized, then it drops down slightly and roughly increases linearly in credit line utilized up to 100%. To reflect this finding in the modeling, we will replace the original `revol_util` measure with three derived measures:\n", + "\n", + "\\begin{eqnarray}\n", + "revol\\_util\\_0 & = & I(revol\\_util == 0) \\\\\n", + "revol\\_util\\_core & = & \\max(5, \\min(revol\\_util, 30)) \\\\\n", + "revol\\_util\\_diff & = & revol\\_util - revol\\_util\\_core\n", + "\\end{eqnarray}" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Probs revol_utilQuantiles
0 0
0.05 8.7
0.25 35.6
0.5 55.8
0.75 74.2
0.95 92.5
1 150.7
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"revol_util\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "breaks = np.linspace(0, 120, 25).tolist()\n", + "train[\"revol_util_cat\"] = train[\"revol_util\"].cut(breaks = breaks)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"revol_util_cat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"revol_util_cat\"].index, df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
revol_util_catnrowmean_bad_loan
20(95.0,100.0]43160.255097
21(100.0,105.0]2380.260504
22(105.0,110.0]350.200000
23(110.0,115.0]90.333333
24(115.0,120.0]30.000000
\n", + "
" + ], + "text/plain": [ + " revol_util_cat nrow mean_bad_loan\n", + "20 (95.0,100.0] 4316 0.255097\n", + "21 (100.0,105.0] 238 0.260504\n", + "22 (105.0,110.0] 35 0.200000\n", + "23 (110.0,115.0] 9 0.333333\n", + "24 (115.0,120.0] 3 0.000000" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[20:25]" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"revol_util\")\n", + "x_trans.append(\"revol_util_0\")\n", + "x_trans.append(\"revol_util_core\")\n", + "x_trans.append(\"revol_util_delta\")\n", + "\n", + "train[\"revol_util_0\"] = train[\"revol_util\"] == 0\n", + "\n", + "train[\"revol_util_core\"] = h2o.H2OFrame.ifelse(train[\"revol_util\"] <= 100, train[\"revol_util\"], 100)\n", + "\n", + "train[\"revol_util_delta\"] = train[\"revol_util\"] - train[\"revol_util_core\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Separating Typical from Extreme Number of Credit Lines\n", + "\n", + "Looking at the occurance of bad loans on a logit scale reveal that the chance of a bad loan roughly decreases linearly in number of lines of credit up to about 50. To reflect this finding in the modeling, we will replace the original `total_acc` measure with two derived measures:\n", + "\n", + "\\begin{eqnarray}\n", + "total\\_acc\\_core & = & \\min(total\\_acc, 50) \\\\\n", + "total\\_acc\\_diff & = & total\\_acc - total\\_acc\\_core\n", + "\\end{eqnarray}" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Probs total_accQuantiles
0 1
0.05 8
0.25 16
0.5 23
0.75 31
0.95 46
1 118
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"total_acc\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [], + "source": [ + "breaks = np.linspace(0, 60, 13).tolist()\n", + "train[\"total_acc_cat\"] = train[\"total_acc\"].cut(breaks = breaks)" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"total_acc_cat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"total_acc_cat\"].index, df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
C1 Count
0 163958
1 29
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(train[\"total_acc\"] == None).table()" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
total_acc_catnrowmean_bad_loan
0NaN00.153788
1(0.0,5.0]23090.226072
2(5.0,10.0]127170.210034
\n", + "
" + ], + "text/plain": [ + " total_acc_cat nrow mean_bad_loan\n", + "0 NaN 0 0.153788\n", + "1 (0.0,5.0] 2309 0.226072\n", + "2 (5.0,10.0] 12717 0.210034" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[0:3]" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
total_acc_catnrowmean_bad_loan
8(35.0,40.0]112510.163719
9(40.0,45.0]71740.161137
10(45.0,50.0]42030.157507
11(50.0,55.0]23500.140426
12(55.0,60.0]12870.165501
\n", + "
" + ], + "text/plain": [ + " total_acc_cat nrow mean_bad_loan\n", + "8 (35.0,40.0] 11251 0.163719\n", + "9 (40.0,45.0] 7174 0.161137\n", + "10 (45.0,50.0] 4203 0.157507\n", + "11 (50.0,55.0] 2350 0.140426\n", + "12 (55.0,60.0] 1287 0.165501" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[8:13]" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"total_acc\")\n", + "x_trans.append(\"total_acc_core\")\n", + "x_trans.append(\"total_acc_delta\")\n", + "\n", + "train[\"total_acc_core\"] = h2o.H2OFrame.ifelse(train[\"total_acc\"] <= 50, train[\"total_acc\"], 50)\n", + "\n", + "train[\"total_acc_delta\"] = train[\"total_acc\"] - train[\"total_acc_core\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Separating Typical from Extreme Longest Credit Length\n", + "\n", + "Looking at the occurance of bad loans on a logit scale reveal that the chance of a bad loan roughly decreases linearly in longest credit length from 3 to 20 years and is highly volatile outside of that range due to small numbers of observations. To reflect this finding in the modeling, we will replace the original `longest_credit_length` measure with two derived measures:\n", + "\n", + "\\begin{eqnarray}\n", + "longest\\_credit\\_length\\_core & = & \\max(3, \\min(longest\\_credit\\_length, 20)) \\\\\n", + "longest\\_credit\\_length\\_diff & = & longest\\_credit\\_length - longest\\_credit\\_length\\_core\n", + "\\end{eqnarray}" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Probs longest_credit_lengthQuantiles
0 0
0.05 6
0.25 10
0.5 14
0.75 18
0.95 28
1 65
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"longest_credit_length\"].quantile([0, 0.05, 0.25, 0.5, 0.75, 0.95, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [], + "source": [ + "breaks = np.linspace(0, 25, 26).tolist()\n", + "train[\"longest_credit_length_cat\"] = train[\"longest_credit_length\"].cut(breaks = breaks)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [], + "source": [ + "df = mean_target(train, \"longest_credit_length_cat\")" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.yscale(\"logit\")\n", + "plt.plot(df[\"longest_credit_length_cat\"].index, df[\"mean_bad_loan\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
longest_credit_length_catnrowmean_bad_loan
0NaN00.171094
1(0.0,1.0]670.253731
2(1.0,2.0]1000.300000
3(2.0,3.0]9140.205689
\n", + "
" + ], + "text/plain": [ + " longest_credit_length_cat nrow mean_bad_loan\n", + "0 NaN 0 0.171094\n", + "1 (0.0,1.0] 67 0.253731\n", + "2 (1.0,2.0] 100 0.300000\n", + "3 (2.0,3.0] 914 0.205689" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[0:4]" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
longest_credit_length_catnrowmean_bad_loan
20(19.0,20.0]46820.163392
21(20.0,21.0]38920.157760
22(21.0,22.0]33500.160000
23(22.0,23.0]30920.167206
24(23.0,24.0]28560.176821
25(24.0,25.0]24710.164711
\n", + "
" + ], + "text/plain": [ + " longest_credit_length_cat nrow mean_bad_loan\n", + "20 (19.0,20.0] 4682 0.163392\n", + "21 (20.0,21.0] 3892 0.157760\n", + "22 (21.0,22.0] 3350 0.160000\n", + "23 (22.0,23.0] 3092 0.167206\n", + "24 (23.0,24.0] 2856 0.176821\n", + "25 (24.0,25.0] 2471 0.164711" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[20:26]" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"longest_credit_length\")\n", + "x_trans.append(\"longest_credit_length_core\")\n", + "x_trans.append(\"longest_credit_length_delta\")\n", + "\n", + "train[\"longest_credit_length_core\"] = h2o.H2OFrame.ifelse(train[\"longest_credit_length\"] <= 3,\n", + " 3, train[\"longest_credit_length\"])\n", + "train[\"longest_credit_length_core\"] = h2o.H2OFrame.ifelse(train[\"longest_credit_length_core\"] <= 20,\n", + " train[\"longest_credit_length_core\"], 20)\n", + "\n", + "train[\"longest_credit_length_delta\"] = train[\"longest_credit_length\"] - train[\"longest_credit_length_core\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Converting Income Verification Status to a 0/1 Indicator\n", + "\n", + "Given that incomes are either verified or not verified, we will create a simplifed `verified` binary indicator that is 1 when income has been verified." + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
verification_status Count
not verified 59155
verified 104832
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"verification_status\"].table()" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [], + "source": [ + "x_trans.remove(\"verification_status\")\n", + "x_trans.append(\"verified\")\n", + "\n", + "train[\"verified\"] = train[\"verification_status\"] == \"verified\"" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
verified Count
0 59155
1 104832
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train[\"verified\"].table()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train Models Using Transformed Data" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
model_id auc logloss mean_per_class_error rmse mse
StackedEnsemble_AllModels_AutoML_20190204_105352 0.684653 0.444916 0.3664590.3740010.139877
StackedEnsemble_BestOfFamily_AutoML_20190204_1053520.684095 0.445076 0.3681 0.3740640.139924
XGBoost_1_AutoML_20190204_105352 0.682381 0.444104 0.36856 0.3737160.139664
XGBoost_2_AutoML_20190204_105352 0.681244 0.444554 0.3696250.37401 0.139883
XGBoost_3_AutoML_20190204_105352 0.676053 0.446428 0.3726640.3748480.140511
GLM_grid_1_AutoML_20190204_105352_model_1 0.674157 0.447619 0.3735430.3749730.140605
XRT_1_AutoML_20190204_105352 0.666562 0.449967 0.3790130.3762070.141532
DRF_1_AutoML_20190204_105352 0.662709 0.45256 0.3824450.3770470.142164
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(aml.leaderboard)" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['emp_length', 'loan_amnt_core', 'loan_amnt_delta', 'term_60months', 'emp_length_missing', 'home_ownership_3cat', 'annual_inc_core', 'annual_inc_delta', 'te_purpose', 'te_addr_state', 'dti_core', 'dti_delta', 'delinq_2yrs_core', 'delinq_2yrs_delta', 'revol_util_0', 'revol_util_core', 'revol_util_delta', 'total_acc_core', 'total_acc_delta', 'longest_credit_length_core', 'longest_credit_length_delta', 'verified']\n" + ] + } + ], + "source": [ + "print(x_trans)" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AutoML progress: |████████████████████████████████████████████████████████| 100%\n" + ] + } + ], + "source": [ + "aml_trans = H2OAutoML(max_models = 6, exclude_algos = ['DeepLearning'])\n", + "aml_trans.train(x = x_trans, y = y, training_frame = train)" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
model_id auc logloss mean_per_class_error rmse mse
StackedEnsemble_AllModels_AutoML_20190204_110108 0.68491 0.444785 0.3647360.3739310.139825
StackedEnsemble_BestOfFamily_AutoML_20190204_1101080.684419 0.444887 0.3648760.3739620.139848
XGBoost_1_AutoML_20190204_110108 0.684239 0.443425 0.3653170.37343 0.13945
XGBoost_2_AutoML_20190204_110108 0.681666 0.444487 0.3677920.3740010.139877
GLM_grid_1_AutoML_20190204_110108_model_1 0.67722 0.445658 0.3718390.3744140.140186
XGBoost_3_AutoML_20190204_110108 0.676057 0.446528 0.3721810.3749330.140575
DRF_1_AutoML_20190204_110108 0.667149 0.450572 0.3783450.3765590.141797
XRT_1_AutoML_20190204_110108 0.666489 0.450549 0.3790190.3765850.141816
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(aml_trans.leaderboard)" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [], + "source": [ + "best_model_trans = h2o.get_model(aml_trans.leaderboard[2,'model_id'])" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model Details\n", + "=============\n", + "H2OXGBoostEstimator : XGBoost\n", + "Model Key: XGBoost_1_AutoML_20190204_105352\n", + "\n", + "\n", + "ModelMetricsBinomial: xgboost\n", + "** Reported on train data. **\n", + "\n", + "MSE: 0.1375855946755337\n", + "RMSE: 0.3709253222355326\n", + "LogLoss: 0.43801446987930465\n", + "Mean Per-Class Error: 0.3559811560155455\n", + "AUC: 0.6993402202868698\n", + "pr_auc: 0.3503558980432989\n", + "Gini: 0.39868044057373964\n", + "Confusion Matrix (Act/Pred) for max f1 @ threshold = 0.19257715782698462: \n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
01ErrorRate
090524.043447.00.3243 (43447.0/133971.0)
111663.018353.00.3886 (11663.0/30016.0)
Total102187.061800.00.3361 (55110.0/163987.0)
" + ], + "text/plain": [ + " 0 1 Error Rate\n", + "----- ------ ----- ------- ------------------\n", + "0 90524 43447 0.3243 (43447.0/133971.0)\n", + "1 11663 18353 0.3886 (11663.0/30016.0)\n", + "Total 102187 61800 0.3361 (55110.0/163987.0)" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Metrics: Maximum metrics at their respective thresholds\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
metricthresholdvalueidx
max f10.19257720.3997778234.0
max f20.12684300.5601718309.0
max f0point50.28171360.3730883151.0
max accuracy0.45352130.819327152.0
max precision0.75629911.00.0
max recall0.04249021.0397.0
max specificity0.75629911.00.0
max absolute_mcc0.21845100.2332565208.0
max min_per_class_accuracy0.18463510.6429238242.0
max mean_per_class_accuracy0.18658850.6440188240.0
" + ], + "text/plain": [ + "metric threshold value idx\n", + "--------------------------- ----------- -------- -----\n", + "max f1 0.192577 0.399778 234\n", + "max f2 0.126843 0.560172 309\n", + "max f0point5 0.281714 0.373088 151\n", + "max accuracy 0.453521 0.819327 52\n", + "max precision 0.756299 1 0\n", + "max recall 0.0424902 1 397\n", + "max specificity 0.756299 1 0\n", + "max absolute_mcc 0.218451 0.233257 208\n", + "max min_per_class_accuracy 0.184635 0.642924 242\n", + "max mean_per_class_accuracy 0.186588 0.644019 240" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Gains/Lift Table: Avg response rate: 18.30 %, avg score: 18.36 %\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
groupcumulative_data_fractionlower_thresholdliftcumulative_liftresponse_ratescorecumulative_response_ratecumulative_scorecapture_ratecumulative_capture_rategaincumulative_gain
10.01000080.46356383.27799173.27799170.60.51207520.60.51207520.03278250.0327825227.7991738227.7991738
20.02000160.42738282.81494213.04646690.51524390.44357050.55762200.47782290.02815170.0609342181.4942092204.6466915
30.03000240.40311792.43517482.84270290.44573170.41477890.52032520.45680820.02435370.0852878143.5174756184.2702862
40.04000320.38393702.37188022.72499720.43414630.39330120.49878050.44093150.02372070.1090085137.1880200172.4997197
50.05000400.36832492.22530332.62505840.40731710.37598640.48048780.42794240.02225480.1312633122.5303334162.5058424
60.10000180.31302512.00501632.31505630.36699600.33809400.42374540.38302090.10024650.2315099100.5016290131.5056262
70.14999970.27735081.75114082.12709210.32052690.29416530.38934060.35340360.08755330.319063275.1140848112.7092099
80.20000370.25189451.51707061.97457740.27768290.26406520.36142450.33106760.07585950.394922751.707056697.4577416
90.29999940.21445571.29902931.74940390.23777290.23207720.32020900.29807220.12989740.524820129.902933174.9403876
100.40000120.18612871.10472391.58823140.20220750.19969840.29070810.27347840.11047440.635294510.472392658.8231431
110.50000300.16299510.92449001.45548150.16921760.17432510.26640970.25364750.09245070.7277452-7.550998345.5481530
120.59999880.14312210.79994091.34622920.14642030.15284750.24641230.23684820.07999070.8077359-20.005913734.6229193
130.70000060.12445670.68295661.25147430.12500760.13374210.22906850.22211850.06829690.8760328-31.704341125.1474313
140.79999630.10631030.54439961.16309330.09964630.11549260.21289130.20879070.05443760.9304704-45.560042916.3093339
150.89999820.08563350.43076241.08172160.07884630.09638520.19799710.19630100.04307700.9735474-56.92376258.1721578
161.00.03167450.26452071.00.04841760.06949610.18303890.18362030.02645261.0-73.54792530.0
" + ], + "text/plain": [ + " group cumulative_data_fraction lower_threshold lift cumulative_lift response_rate score cumulative_response_rate cumulative_score capture_rate cumulative_capture_rate gain cumulative_gain\n", + "-- ------- -------------------------- ----------------- -------- ----------------- --------------- --------- -------------------------- ------------------ -------------- ------------------------- -------- -----------------\n", + " 1 0.0100008 0.463564 3.27799 3.27799 0.6 0.512075 0.6 0.512075 0.0327825 0.0327825 227.799 227.799\n", + " 2 0.0200016 0.427383 2.81494 3.04647 0.515244 0.443571 0.557622 0.477823 0.0281517 0.0609342 181.494 204.647\n", + " 3 0.0300024 0.403118 2.43517 2.8427 0.445732 0.414779 0.520325 0.456808 0.0243537 0.0852878 143.517 184.27\n", + " 4 0.0400032 0.383937 2.37188 2.725 0.434146 0.393301 0.49878 0.440931 0.0237207 0.109009 137.188 172.5\n", + " 5 0.050004 0.368325 2.2253 2.62506 0.407317 0.375986 0.480488 0.427942 0.0222548 0.131263 122.53 162.506\n", + " 6 0.100002 0.313025 2.00502 2.31506 0.366996 0.338094 0.423745 0.383021 0.100247 0.23151 100.502 131.506\n", + " 7 0.15 0.277351 1.75114 2.12709 0.320527 0.294165 0.389341 0.353404 0.0875533 0.319063 75.1141 112.709\n", + " 8 0.200004 0.251894 1.51707 1.97458 0.277683 0.264065 0.361424 0.331068 0.0758595 0.394923 51.7071 97.4577\n", + " 9 0.299999 0.214456 1.29903 1.7494 0.237773 0.232077 0.320209 0.298072 0.129897 0.52482 29.9029 74.9404\n", + " 10 0.400001 0.186129 1.10472 1.58823 0.202207 0.199698 0.290708 0.273478 0.110474 0.635295 10.4724 58.8231\n", + " 11 0.500003 0.162995 0.92449 1.45548 0.169218 0.174325 0.26641 0.253647 0.0924507 0.727745 -7.551 45.5482\n", + " 12 0.599999 0.143122 0.799941 1.34623 0.14642 0.152847 0.246412 0.236848 0.0799907 0.807736 -20.0059 34.6229\n", + " 13 0.700001 0.124457 0.682957 1.25147 0.125008 0.133742 0.229068 0.222118 0.0682969 0.876033 -31.7043 25.1474\n", + " 14 0.799996 0.10631 0.5444 1.16309 0.0996463 0.115493 0.212891 0.208791 0.0544376 0.93047 -45.56 16.3093\n", + " 15 0.899998 0.0856335 0.430762 1.08172 0.0788463 0.0963852 0.197997 0.196301 0.043077 0.973547 -56.9238 8.17216\n", + " 16 1 0.0316745 0.264521 1 0.0484176 0.0694961 0.183039 0.18362 0.0264526 1 -73.5479 0" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "ModelMetricsBinomial: xgboost\n", + "** Reported on cross-validation data. **\n", + "\n", + "MSE: 0.13966377536338925\n", + "RMSE: 0.37371616952359615\n", + "LogLoss: 0.44410403240512103\n", + "Mean Per-Class Error: 0.36744047321629403\n", + "AUC: 0.6823805451020182\n", + "pr_auc: 0.32363072597274334\n", + "Gini: 0.36476109020403635\n", + "Confusion Matrix (Act/Pred) for max f1 @ threshold = 0.19381296035337148: \n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
01ErrorRate
090483.043488.00.3246 (43488.0/133971.0)
112382.017634.00.4125 (12382.0/30016.0)
Total102865.061122.00.3407 (55870.0/163987.0)
" + ], + "text/plain": [ + " 0 1 Error Rate\n", + "----- ------ ----- ------- ------------------\n", + "0 90483 43488 0.3246 (43488.0/133971.0)\n", + "1 12382 17634 0.4125 (12382.0/30016.0)\n", + "Total 102865 61122 0.3407 (55870.0/163987.0)" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Metrics: Maximum metrics at their respective thresholds\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
metricthresholdvalueidx
max f10.19381300.3869736230.0
max f20.11866430.5530505319.0
max f0point50.27455100.3505269155.0
max accuracy0.47158990.817619742.0
max precision0.74770951.00.0
max recall0.04155211.0396.0
max specificity0.74770951.00.0
max absolute_mcc0.22232400.2116015201.0
max min_per_class_accuracy0.18249650.6313904243.0
max mean_per_class_accuracy0.18249650.6325595243.0
" + ], + "text/plain": [ + "metric threshold value idx\n", + "--------------------------- ----------- -------- -----\n", + "max f1 0.193813 0.386974 230\n", + "max f2 0.118664 0.553051 319\n", + "max f0point5 0.274551 0.350527 155\n", + "max accuracy 0.47159 0.81762 42\n", + "max precision 0.747709 1 0\n", + "max recall 0.0415521 1 396\n", + "max specificity 0.747709 1 0\n", + "max absolute_mcc 0.222324 0.211602 201\n", + "max min_per_class_accuracy 0.182496 0.63139 243\n", + "max mean_per_class_accuracy 0.182496 0.63256 243" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Gains/Lift Table: Avg response rate: 18.30 %, avg score: 18.36 %\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
groupcumulative_data_fractionlower_thresholdliftcumulative_liftresponse_ratescorecumulative_response_ratecumulative_scorecapture_ratecumulative_capture_rategaincumulative_gain
10.01000080.46600962.90155572.90155570.53109760.51338150.53109760.51338150.02901790.0290179190.1555695190.1555695
20.02000160.42795392.42184962.66170260.44329270.44504730.48719510.47921440.02422040.0532383142.1849587166.1702641
30.03000240.40278312.35522372.55954300.43109760.41449920.46849590.45764270.02355410.0767924135.5223738155.9543007
40.04000320.38343572.26527882.48597700.41463410.39277450.45503050.44142560.02265460.0994470126.5278843148.5976966
50.05000400.36727442.06873262.40252810.37865850.37545890.43975610.42823230.02068900.1201359106.8732591140.2528091
60.10000180.31183201.91572682.15914230.35065250.33730070.39520700.38276930.09578220.215918291.5726765115.9142270
70.14999970.27674131.66451671.99427380.30467130.29330160.36502970.35294790.08322230.299140566.451668199.4273777
80.20000370.25132651.46976621.86313890.26902440.26344270.34102690.33057020.07349410.372634646.976621486.3138890
90.29999940.21436391.31102341.67910790.23996830.23188530.30734210.29767660.13109670.503731331.102344767.9107891
100.40000120.18624861.11938251.53917440.20489050.19981590.28172880.27321110.11194030.615671611.938250753.9174412
110.50000300.16343550.95813811.42296570.17537650.17452230.26045810.25347310.09581560.7114872-4.186187842.2965736
120.59999880.14351540.79027891.31752220.14465180.15322840.24115780.23676630.07902450.7905117-20.972106331.7522223
130.70000060.12474660.73626051.23448340.13476430.13407230.22595850.22209550.07362740.8641391-26.373948223.4483390
140.79999630.10650950.58837801.15372330.10769610.11567230.21117620.20879310.05883530.9229744-41.162200615.3723294
150.89999820.08561040.46940771.07768670.08591990.09653360.19725860.19631950.04694160.9699160-53.05922767.7686685
161.00.02858090.30083401.00.05506430.06890280.18303890.18357760.03008401.0-69.91659510.0
" + ], + "text/plain": [ + " group cumulative_data_fraction lower_threshold lift cumulative_lift response_rate score cumulative_response_rate cumulative_score capture_rate cumulative_capture_rate gain cumulative_gain\n", + "-- ------- -------------------------- ----------------- -------- ----------------- --------------- --------- -------------------------- ------------------ -------------- ------------------------- -------- -----------------\n", + " 1 0.0100008 0.46601 2.90156 2.90156 0.531098 0.513382 0.531098 0.513382 0.0290179 0.0290179 190.156 190.156\n", + " 2 0.0200016 0.427954 2.42185 2.6617 0.443293 0.445047 0.487195 0.479214 0.0242204 0.0532383 142.185 166.17\n", + " 3 0.0300024 0.402783 2.35522 2.55954 0.431098 0.414499 0.468496 0.457643 0.0235541 0.0767924 135.522 155.954\n", + " 4 0.0400032 0.383436 2.26528 2.48598 0.414634 0.392774 0.45503 0.441426 0.0226546 0.099447 126.528 148.598\n", + " 5 0.050004 0.367274 2.06873 2.40253 0.378659 0.375459 0.439756 0.428232 0.020689 0.120136 106.873 140.253\n", + " 6 0.100002 0.311832 1.91573 2.15914 0.350653 0.337301 0.395207 0.382769 0.0957822 0.215918 91.5727 115.914\n", + " 7 0.15 0.276741 1.66452 1.99427 0.304671 0.293302 0.36503 0.352948 0.0832223 0.29914 66.4517 99.4274\n", + " 8 0.200004 0.251327 1.46977 1.86314 0.269024 0.263443 0.341027 0.33057 0.0734941 0.372635 46.9766 86.3139\n", + " 9 0.299999 0.214364 1.31102 1.67911 0.239968 0.231885 0.307342 0.297677 0.131097 0.503731 31.1023 67.9108\n", + " 10 0.400001 0.186249 1.11938 1.53917 0.204891 0.199816 0.281729 0.273211 0.11194 0.615672 11.9383 53.9174\n", + " 11 0.500003 0.163435 0.958138 1.42297 0.175377 0.174522 0.260458 0.253473 0.0958156 0.711487 -4.18619 42.2966\n", + " 12 0.599999 0.143515 0.790279 1.31752 0.144652 0.153228 0.241158 0.236766 0.0790245 0.790512 -20.9721 31.7522\n", + " 13 0.700001 0.124747 0.736261 1.23448 0.134764 0.134072 0.225958 0.222095 0.0736274 0.864139 -26.3739 23.4483\n", + " 14 0.799996 0.106509 0.588378 1.15372 0.107696 0.115672 0.211176 0.208793 0.0588353 0.922974 -41.1622 15.3723\n", + " 15 0.899998 0.0856104 0.469408 1.07769 0.0859199 0.0965336 0.197259 0.19632 0.0469416 0.969916 -53.0592 7.76867\n", + " 16 1 0.0285809 0.300834 1 0.0550643 0.0689028 0.183039 0.183578 0.030084 1 -69.9166 0" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Cross-Validation Metrics Summary: \n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
meansdcv_1_validcv_2_validcv_3_validcv_4_validcv_5_valid
accuracy0.64582570.01724310.66272340.61583020.66167640.61676370.6721346
auc0.68240620.00186640.68403390.68123750.68600840.67818490.6825666
err0.35417440.01724310.33727670.38416980.33832360.38323630.3278654
err_count11616.0565.5572511062.012600.011096.012569.010753.0
f0point50.31885920.00624960.31995070.30875470.32630410.30890490.3303814
f10.38852910.00254360.38626280.38578530.39306420.38480740.3927260
f20.49793630.00853860.48724840.51402960.49416850.51016170.4840731
lift_top_group2.90826870.12085592.93252163.0538862.83838582.6191243.0974264
logloss0.44410410.00201010.43916390.44383230.44370650.4470410.4467766
max_per_class_error0.40515540.00908340.40990000.39412820.40355240.39110780.4270885
mcc0.21197940.00409280.21382710.20712930.21834180.20342730.2171714
mean_per_class_accuracy0.63359620.00140170.63437490.63312610.63640030.63029160.6337882
mean_per_class_error0.36640380.00140170.36562510.36687380.36359970.36970840.3662119
mse0.13966380.00084320.13756320.13949700.13962170.14083680.1408002
precision0.28489170.00748420.28709280.27248310.29311470.27300510.2987627
r20.06600260.00169840.06742780.06576550.06880780.06166990.0663418
recall0.61430610.02477670.59010.66038050.59644750.65169100.5729115
rmse0.37371280.00112990.37089510.37349300.37365990.37528220.3752335
specificity0.65288630.02665660.67864980.60587180.67635300.60889220.6946648
" + ], + "text/plain": [ + " mean sd cv_1_valid cv_2_valid cv_3_valid cv_4_valid cv_5_valid\n", + "----------------------- --------- ----------- ------------ ------------ ------------ ------------ ------------\n", + "accuracy 0.645826 0.0172431 0.662723 0.61583 0.661676 0.616764 0.672135\n", + "auc 0.682406 0.00186645 0.684034 0.681237 0.686008 0.678185 0.682567\n", + "err 0.354174 0.0172431 0.337277 0.38417 0.338324 0.383236 0.327865\n", + "err_count 11616 565.557 11062 12600 11096 12569 10753\n", + "f0point5 0.318859 0.00624955 0.319951 0.308755 0.326304 0.308905 0.330381\n", + "f1 0.388529 0.00254357 0.386263 0.385785 0.393064 0.384807 0.392726\n", + "f2 0.497936 0.00853857 0.487248 0.51403 0.494168 0.510162 0.484073\n", + "lift_top_group 2.90827 0.120856 2.93252 3.05389 2.83839 2.61912 3.09743\n", + "logloss 0.444104 0.00201011 0.439164 0.443832 0.443707 0.447041 0.446777\n", + "max_per_class_error 0.405155 0.00908337 0.4099 0.394128 0.403552 0.391108 0.427088\n", + "mcc 0.211979 0.00409284 0.213827 0.207129 0.218342 0.203427 0.217171\n", + "mean_per_class_accuracy 0.633596 0.00140169 0.634375 0.633126 0.6364 0.630292 0.633788\n", + "mean_per_class_error 0.366404 0.00140169 0.365625 0.366874 0.3636 0.369708 0.366212\n", + "mse 0.139664 0.000843169 0.137563 0.139497 0.139622 0.140837 0.1408\n", + "precision 0.284892 0.00748419 0.287093 0.272483 0.293115 0.273005 0.298763\n", + "r2 0.0660026 0.00169835 0.0674278 0.0657655 0.0688078 0.0616699 0.0663418\n", + "recall 0.614306 0.0247767 0.5901 0.660381 0.596448 0.651691 0.572912\n", + "rmse 0.373713 0.00112987 0.370895 0.373493 0.37366 0.375282 0.375234\n", + "specificity 0.652886 0.0266566 0.67865 0.605872 0.676353 0.608892 0.694665" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Scoring History: \n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
timestampdurationnumber_of_treestraining_rmsetraining_loglosstraining_auctraining_pr_auctraining_lifttraining_classification_error
2019-02-04 10:56:5349.588 sec0.00.50.69314720.50.01.00.8169611
2019-02-04 10:56:5450.011 sec5.00.45484620.60621850.67134160.31478732.69904290.3537110
2019-02-04 10:56:5450.246 sec10.00.42533910.55155360.67366220.31805332.81655600.3625348
2019-02-04 10:56:5450.473 sec15.00.40636050.51603450.67466980.32058052.91154960.3339228
2019-02-04 10:56:5450.712 sec20.00.39428440.49250730.67598220.32221652.96400020.3314775
------------------------------
2019-02-04 10:56:5955.572 sec105.00.37149180.43939660.69634510.34660503.22469110.3348924
2019-02-04 10:57:0055.902 sec110.00.37133990.43902590.69715810.34751603.25467270.3398989
2019-02-04 10:57:0056.226 sec115.00.37118540.43864870.69796350.34850023.26133530.3370999
2019-02-04 10:57:0056.567 sec120.00.37104520.43829270.69868390.34941833.25800400.3372523
2019-02-04 10:57:0156.889 sec124.00.37092530.43801450.69934020.35035593.27799170.3360632
" + ], + "text/plain": [ + " timestamp duration number_of_trees training_rmse training_logloss training_auc training_pr_auc training_lift training_classification_error\n", + "--- ------------------- ---------- ----------------- ------------------- ------------------- ------------------ ------------------- ------------------ -------------------------------\n", + " 2019-02-04 10:56:53 49.588 sec 0.0 0.5 0.6931471805599067 0.5 0.0 1.0 0.8169611005750456\n", + " 2019-02-04 10:56:54 50.011 sec 5.0 0.4548461543643131 0.6062184625129501 0.6713416478216915 0.3147872798955476 2.6990429482385516 0.35371096489355863\n", + " 2019-02-04 10:56:54 50.246 sec 10.0 0.4253390773044219 0.551553580461646 0.6736622272143787 0.31805325502833104 2.816555972098245 0.36253483507839035\n", + " 2019-02-04 10:56:54 50.473 sec 15.0 0.4063604679546381 0.516034549835951 0.6746698495419139 0.32058050237542945 2.9115495719356184 0.33392281095452686\n", + " 2019-02-04 10:56:54 50.712 sec 20.0 0.3942843595588244 0.492507333499956 0.6759822181119092 0.3222164598122689 2.9640002245865795 0.33147749516729985\n", + "--- --- --- --- --- --- --- --- --- ---\n", + " 2019-02-04 10:56:59 55.572 sec 105.0 0.37149178554534024 0.4393965865355424 0.6963451012301393 0.3466049564194871 3.224691059077435 0.3348924000073176\n", + " 2019-02-04 10:57:00 55.902 sec 110.0 0.3713399179536629 0.4390259162984699 0.697158119785264 0.3475159669058915 3.254672690825056 0.33989889442455806\n", + " 2019-02-04 10:57:00 56.226 sec 115.0 0.3711853856087302 0.4386487453085832 0.6979634852922376 0.3485002230849438 3.2613352756578604 0.3370998920646149\n", + " 2019-02-04 10:57:00 56.567 sec 120.0 0.37104521842651933 0.4382927496245225 0.6986838961208134 0.3494182794020932 3.258003983241458 0.33725234317354424\n", + " 2019-02-04 10:57:01 56.889 sec 124.0 0.3709253222355326 0.43801446987930465 0.6993402202868698 0.3503558980432989 3.277991737739872 0.3360632245238952" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "See the whole table with table.as_data_frame()\n", + "Variable Importances: \n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
variablerelative_importancescaled_importancepercentage
annual_inc20075.41601561.00.1940653
term.36months18496.76367190.92136390.1788047
revol_util16078.55664060.80090780.1554284
dti11124.35058590.55412800.1075370
loan_amnt7898.36132810.39343450.0763520
------------
addr_state.MT6.97312020.00034730.0000674
addr_state.AL6.96343990.00034690.0000673
purpose.educational6.94329980.00034590.0000671
addr_state.SD6.91255000.00034430.0000668
addr_state.NH5.61225990.00027960.0000543
" + ], + "text/plain": [ + "variable relative_importance scaled_importance percentage\n", + "------------------- --------------------- ---------------------- ----------------------\n", + "annual_inc 20075.416015625 1.0 0.19406527466547135\n", + "term.36months 18496.763671875 0.9213639038652394 0.17880473907045863\n", + "revol_util 16078.556640625 0.8009077683924865 0.15542838605479758\n", + "dti 11124.3505859375 0.5541280229151541 0.10753700696686397\n", + "loan_amnt 7898.361328125 0.3934345032739339 0.07635197494072928\n", + "--- --- --- ---\n", + "addr_state.MT 6.973120212554932 0.0003473462371652795 6.740784291949791e-05\n", + "addr_state.AL 6.96343994140625 0.0003468640418702407 6.731426555712382e-05\n", + "purpose.educational 6.943299770355225 0.0003458608162815231 6.711957430769791e-05\n", + "addr_state.SD 6.91254997253418 0.00034432910217920454 6.682232178972248e-05\n", + "addr_state.NH 5.612259864807129 0.00027955883257607325 5.4252661629034175e-05" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "See the whole table with table.as_data_frame()\n" + ] + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "best_model" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "best_model_trans.varimp_plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC (orig): train = 0.6993, xval = 0.6824\n" + ] + } + ], + "source": [ + "print(\"AUC (orig): train = {:.4f}, xval = {:.4f}\" \\\n", + " .format(best_model.auc(train = True),\n", + " best_model.auc(xval = True)))" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AUC (trans): train = 0.7009, xval = 0.6842\n" + ] + } + ], + "source": [ + "print(\"AUC (trans): train = {:.4f}, xval = {:.4f}\" \\\n", + " .format(best_model_trans.auc(train = True),\n", + " best_model_trans.auc(xval = True)))" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logloss (orig): train = 0.4380, xval = 0.4441\n" + ] + } + ], + "source": [ + "print(\"Logloss (orig): train = {:.4f}, xval = {:.4f}\" \\\n", + " .format(best_model.logloss(train = True),\n", + " best_model.logloss(xval = True)))" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logloss (trans): train = 0.4372, xval = 0.4434\n" + ] + } + ], + "source": [ + "print(\"Logloss (trans): train = {:.4f}, xval = {:.4f}\" \\\n", + " .format(best_model_trans.logloss(train = True),\n", + " best_model_trans.logloss(xval = True)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Shutdown H2O Cluster" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "H2O session _sid_980c closed.\n" + ] + } + ], + "source": [ + "h2o.cluster().shutdown()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}