{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"LogisticRegressionKoban.ipynb","provenance":[]},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"markdown","metadata":{"id":"QeAIy7xnSAa1"},"source":["#Logistic Regression Homework\n","\n","- Use the full dataset -- all columns. ✗ ☹️ Couldn't find the data on Google drive so I grabbed a different data set.\n","\n","- Try our quick algorigthm and see if it's any good ✓ Not bad. With standardized regressors, we outperformed the toward data science post I borrowed (Accuracy 0.88 vs 0.74).\n","\n","- Try SKLearn on the same data, see if you do any better ✓ Sklearn did a little better (Accuracy - 0.91 vs 0.88; F1 - 0.523 vs 0.34).\n","\n","- Combine random walk with Logistic regression -- does it improve results? ✗ ☹️ I'm not sure what this is asking me to do. I tried the random walk to find optimal weights and it didn't seem to work too well.\n","\n","- How do we optimize the learning rate? -- you can use gradient descent; balance oscillations with speed of convergeance\n","\n","**I added in scaling on the quantitative variables and WAY outpeformed the person who wrote this post - a post that has over 11 thousand claps. I also added a bettter model evaluation summary / confusion matrix. Last I properly evaluated my model against a true test set, not the synthetic data they came up with.**\n","\n","\n","The majority of my code is taken from this toward data science post https://towardsdatascience.com/building-a-logistic-regression-in-python-step-by-step-becd4d56c9c8. The analysis interpretation is solely mine. I did my own interpretation and then read the post.\n","\n","\n","**Question:** The comments on the article from medium tell the author she should have used the synthetically generated data to train the classifier and evaluated the model performance using the original test data. The synthetic data set is balanced (i.e. - has an equal number of positive and negative responses). The actual data has 88% positive and 11% negative cases. What is the correct way to do this? "]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ekM2kTaJR0of","executionInfo":{"status":"ok","timestamp":1613045322066,"user_tz":300,"elapsed":69995,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"a3bc8f02-a0ff-4eef-b630-0e4cc8d78b5a"},"source":["# Mount data drive\n","from google.colab import drive\n","drive.mount('/data/')\n","data_dir = '/data/My Drive/EMSE 6575/LogisticRegressionHomework'"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Mounted at /data/\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"kK61vDLrT4Qy"},"source":["# Load libraries\n","import pandas as pd\n","import numpy as np\n","from sklearn import preprocessing\n","import matplotlib.pyplot as plt \n","plt.rc(\"font\", size=14)\n","from sklearn.linear_model import LogisticRegression\n","from sklearn.model_selection import train_test_split\n","import seaborn as sns\n","sns.set(style=\"white\")\n","sns.set(style=\"whitegrid\", color_codes=True)"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":241},"id":"8Bq83sNIUPTa","executionInfo":{"status":"ok","timestamp":1613045325598,"user_tz":300,"elapsed":73516,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"3f080170-3f26-4f70-fdab-68558c357e48"},"source":["# Read the data - \n","# Data is marketing campaign data for a bank where the goal is to predict whether the client will subscribe to a term deposit.\n","data = pd.read_csv(data_dir + '/loan_data.csv', header = 0)\n","data = data.dropna()\n","print(data.shape)\n","data.head()"],"execution_count":null,"outputs":[{"output_type":"stream","text":["(41188, 21)\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
age
\n","
job
\n","
marital
\n","
education
\n","
default
\n","
housing
\n","
loan
\n","
contact
\n","
month
\n","
day_of_week
\n","
duration
\n","
campaign
\n","
pdays
\n","
previous
\n","
outcome
\n","
emp_var_rate
\n","
cons_price_idx
\n","
cons_conf_idx
\n","
euribor3m
\n","
nr_employed
\n","
y
\n","
\n"," \n"," \n","
\n","
0
\n","
44
\n","
blue-collar
\n","
married
\n","
basic.4y
\n","
unknown
\n","
yes
\n","
no
\n","
cellular
\n","
aug
\n","
thu
\n","
210
\n","
1
\n","
999
\n","
0
\n","
nonexistent
\n","
1.4
\n","
93.444
\n","
-36.1
\n","
4.963
\n","
5228.1
\n","
0
\n","
\n","
\n","
1
\n","
53
\n","
technician
\n","
married
\n","
unknown
\n","
no
\n","
no
\n","
no
\n","
cellular
\n","
nov
\n","
fri
\n","
138
\n","
1
\n","
999
\n","
0
\n","
nonexistent
\n","
-0.1
\n","
93.200
\n","
-42.0
\n","
4.021
\n","
5195.8
\n","
0
\n","
\n","
\n","
2
\n","
28
\n","
management
\n","
single
\n","
university.degree
\n","
no
\n","
yes
\n","
no
\n","
cellular
\n","
jun
\n","
thu
\n","
339
\n","
3
\n","
6
\n","
2
\n","
success
\n","
-1.7
\n","
94.055
\n","
-39.8
\n","
0.729
\n","
4991.6
\n","
1
\n","
\n","
\n","
3
\n","
39
\n","
services
\n","
married
\n","
high.school
\n","
no
\n","
no
\n","
no
\n","
cellular
\n","
apr
\n","
fri
\n","
185
\n","
2
\n","
999
\n","
0
\n","
nonexistent
\n","
-1.8
\n","
93.075
\n","
-47.1
\n","
1.405
\n","
5099.1
\n","
0
\n","
\n","
\n","
4
\n","
55
\n","
retired
\n","
married
\n","
basic.4y
\n","
no
\n","
yes
\n","
no
\n","
cellular
\n","
aug
\n","
fri
\n","
137
\n","
1
\n","
3
\n","
1
\n","
success
\n","
-2.9
\n","
92.201
\n","
-31.4
\n","
0.869
\n","
5076.2
\n","
1
\n","
\n"," \n","
\n","
"],"text/plain":[" age job marital ... euribor3m nr_employed y\n","0 44 blue-collar married ... 4.963 5228.1 0\n","1 53 technician married ... 4.021 5195.8 0\n","2 28 management single ... 0.729 4991.6 1\n","3 39 services married ... 1.405 5099.1 0\n","4 55 retired married ... 0.869 5076.2 1\n","\n","[5 rows x 21 columns]"]},"metadata":{"tags":[]},"execution_count":3}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9koIyv0PUkMm","executionInfo":{"status":"ok","timestamp":1613045325599,"user_tz":300,"elapsed":73509,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"da3b3490-1db7-4312-9473-3ac0fd571bcc"},"source":["# Relabel education categories so there are less values\n","data['education'] = np.where(data['education'] == 'basic.9y', 'Basic', data['education'])\n","data['education'] = np.where(data['education'] == 'basic.6y', 'Basic', data['education'])\n","data['education'] = np.where(data['education'] == 'basic.4y', 'Basic', data['education'])\n","data['education'].value_counts()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Basic 12513\n","university.degree 12168\n","high.school 9515\n","professional.course 5243\n","unknown 1731\n","illiterate 18\n","Name: education, dtype: int64"]},"metadata":{"tags":[]},"execution_count":4}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":336},"id":"sHmuJ9zLXcx9","executionInfo":{"status":"ok","timestamp":1613045325710,"user_tz":300,"elapsed":73612,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"7107a875-e2b7-47fb-ffec-e845bc688911"},"source":["# Explore response variable to determine how many trues there are\n","print(data['y'].value_counts())\n","sns.countplot(x = 'y', data = data, palette = 'hls')\n","plt.show()"],"execution_count":null,"outputs":[{"output_type":"stream","text":["0 36548\n","1 4640\n","Name: y, dtype: int64\n"],"name":"stdout"},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["
"]},"metadata":{"tags":[]}}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"nuNfl3y9X7Hu","executionInfo":{"status":"ok","timestamp":1613045325711,"user_tz":300,"elapsed":73605,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"6b0d94de-97f4-4a17-87ee-8f94c6fbb86c"},"source":["# Determine if the prediciton classes are balanced\n","count_no_sub = len(data[data['y']==0])\n","count_sub = len(data[data['y']==1])\n","pct_of_no_sub = count_no_sub/(count_no_sub+count_sub)\n","print(\"percentage of no subscription is\", pct_of_no_sub*100)\n","pct_of_sub = count_sub/(count_no_sub+count_sub)\n","print(\"percentage of subscription\", pct_of_sub*100)"],"execution_count":null,"outputs":[{"output_type":"stream","text":["percentage of no subscription is 88.73458288821988\n","percentage of subscription 11.265417111780131\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":142},"id":"tmkIozICYFGo","executionInfo":{"status":"ok","timestamp":1613045325711,"user_tz":300,"elapsed":73598,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"6053f5c2-3e95-481e-a51f-7156b2180f09"},"source":["# Examine if there are any obvious differences in the explanatory variables between classes\n","data.groupby('y').mean()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
age
\n","
duration
\n","
campaign
\n","
pdays
\n","
previous
\n","
emp_var_rate
\n","
cons_price_idx
\n","
cons_conf_idx
\n","
euribor3m
\n","
nr_employed
\n","
\n","
\n","
y
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n"," \n"," \n","
\n","
0
\n","
39.911185
\n","
220.844807
\n","
2.633085
\n","
984.113878
\n","
0.132374
\n","
0.248875
\n","
93.603757
\n","
-40.593097
\n","
3.811491
\n","
5176.166600
\n","
\n","
\n","
1
\n","
40.913147
\n","
553.191164
\n","
2.051724
\n","
792.035560
\n","
0.492672
\n","
-1.233448
\n","
93.354386
\n","
-39.789784
\n","
2.123135
\n","
5095.115991
\n","
\n"," \n","
\n","
"],"text/plain":[" age duration campaign ... cons_conf_idx euribor3m nr_employed\n","y ... \n","0 39.911185 220.844807 2.633085 ... -40.593097 3.811491 5176.166600\n","1 40.913147 553.191164 2.051724 ... -39.789784 2.123135 5095.115991\n","\n","[2 rows x 10 columns]"]},"metadata":{"tags":[]},"execution_count":7}]},{"cell_type":"markdown","metadata":{"id":"RinwTz4RZHiE"},"source":["Looks like people who subscribed were on the phone longer (duraction was 553 compared to 220). The `pdays` mean doesn't seem like a good measure since 999 means the client was not previously contacted. However, we can tell people who said yes are contacted more frequently than people who said no and were more likely to have been contacted in the previous quarter (previous 0.49 is greater than 0.132). \n"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":673},"id":"Ga7y0cCUaSJj","executionInfo":{"status":"ok","timestamp":1613045325813,"user_tz":300,"elapsed":73691,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"4f9f2b35-45b4-486b-c8dd-182ba9694765"},"source":["# Look at trends within categorical variables\n","print(data['job'].value_counts())\n","data.groupby('job').mean()"],"execution_count":null,"outputs":[{"output_type":"stream","text":["admin. 10422\n","blue-collar 9254\n","technician 6743\n","services 3969\n","management 2924\n","retired 1720\n","entrepreneur 1456\n","self-employed 1421\n","housemaid 1060\n","unemployed 1014\n","student 875\n","unknown 330\n","Name: job, dtype: int64\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
age
\n","
duration
\n","
campaign
\n","
pdays
\n","
previous
\n","
emp_var_rate
\n","
cons_price_idx
\n","
cons_conf_idx
\n","
euribor3m
\n","
nr_employed
\n","
y
\n","
\n","
\n","
job
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n"," \n"," \n","
\n","
admin.
\n","
38.187296
\n","
254.312128
\n","
2.623489
\n","
954.319229
\n","
0.189023
\n","
0.015563
\n","
93.534054
\n","
-40.245433
\n","
3.550274
\n","
5164.125350
\n","
0.129726
\n","
\n","
\n","
blue-collar
\n","
39.555760
\n","
264.542360
\n","
2.558461
\n","
985.160363
\n","
0.122542
\n","
0.248995
\n","
93.656656
\n","
-41.375816
\n","
3.771996
\n","
5175.615150
\n","
0.068943
\n","
\n","
\n","
entrepreneur
\n","
41.723214
\n","
263.267857
\n","
2.535714
\n","
981.267170
\n","
0.138736
\n","
0.158723
\n","
93.605372
\n","
-41.283654
\n","
3.791120
\n","
5176.313530
\n","
0.085165
\n","
\n","
\n","
housemaid
\n","
45.500000
\n","
250.454717
\n","
2.639623
\n","
960.579245
\n","
0.137736
\n","
0.433396
\n","
93.676576
\n","
-39.495283
\n","
4.009645
\n","
5179.529623
\n","
0.100000
\n","
\n","
\n","
management
\n","
42.362859
\n","
257.058140
\n","
2.476060
\n","
962.647059
\n","
0.185021
\n","
-0.012688
\n","
93.522755
\n","
-40.489466
\n","
3.611316
\n","
5166.650513
\n","
0.112175
\n","
\n","
\n","
retired
\n","
62.027326
\n","
273.712209
\n","
2.476744
\n","
897.936047
\n","
0.327326
\n","
-0.698314
\n","
93.430786
\n","
-38.573081
\n","
2.770066
\n","
5122.262151
\n","
0.252326
\n","
\n","
\n","
self-employed
\n","
39.949331
\n","
264.142153
\n","
2.660802
\n","
976.621393
\n","
0.143561
\n","
0.094159
\n","
93.559982
\n","
-40.488107
\n","
3.689376
\n","
5170.674384
\n","
0.104856
\n","
\n","
\n","
services
\n","
37.926430
\n","
258.398085
\n","
2.587805
\n","
979.974049
\n","
0.154951
\n","
0.175359
\n","
93.634659
\n","
-41.290048
\n","
3.699187
\n","
5171.600126
\n","
0.081381
\n","
\n","
\n","
student
\n","
25.894857
\n","
283.683429
\n","
2.104000
\n","
840.217143
\n","
0.524571
\n","
-1.408000
\n","
93.331613
\n","
-40.187543
\n","
1.884224
\n","
5085.939086
\n","
0.314286
\n","
\n","
\n","
technician
\n","
38.507638
\n","
250.232241
\n","
2.577339
\n","
964.408127
\n","
0.153789
\n","
0.274566
\n","
93.561471
\n","
-39.927569
\n","
3.820401
\n","
5175.648391
\n","
0.108260
\n","
\n","
\n","
unemployed
\n","
39.733728
\n","
249.451677
\n","
2.564103
\n","
935.316568
\n","
0.199211
\n","
-0.111736
\n","
93.563781
\n","
-40.007594
\n","
3.466583
\n","
5157.156509
\n","
0.142012
\n","
\n","
\n","
unknown
\n","
45.563636
\n","
239.675758
\n","
2.648485
\n","
938.727273
\n","
0.154545
\n","
0.357879
\n","
93.718942
\n","
-38.797879
\n","
3.949033
\n","
5172.931818
\n","
0.112121
\n","
\n"," \n","
\n","
"],"text/plain":[" age duration ... nr_employed y\n","job ... \n","admin. 38.187296 254.312128 ... 5164.125350 0.129726\n","blue-collar 39.555760 264.542360 ... 5175.615150 0.068943\n","entrepreneur 41.723214 263.267857 ... 5176.313530 0.085165\n","housemaid 45.500000 250.454717 ... 5179.529623 0.100000\n","management 42.362859 257.058140 ... 5166.650513 0.112175\n","retired 62.027326 273.712209 ... 5122.262151 0.252326\n","self-employed 39.949331 264.142153 ... 5170.674384 0.104856\n","services 37.926430 258.398085 ... 5171.600126 0.081381\n","student 25.894857 283.683429 ... 5085.939086 0.314286\n","technician 38.507638 250.232241 ... 5175.648391 0.108260\n","unemployed 39.733728 249.451677 ... 5157.156509 0.142012\n","unknown 45.563636 239.675758 ... 5172.931818 0.112121\n","\n","[12 rows x 11 columns]"]},"metadata":{"tags":[]},"execution_count":8}]},{"cell_type":"markdown","metadata":{"id":"rOzb1MPBaqzM"},"source":["Young students have the highest subscription rate (31.4%) followed by older retired people (25.2%). Howver, students make up only a small percentage of the sample - only 875 students in the data."]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":289},"id":"sJMFAavxbZkE","executionInfo":{"status":"ok","timestamp":1613045325906,"user_tz":300,"elapsed":73778,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"70b7f7d4-bfba-4b4c-bcb0-c73f8b9b7114"},"source":["print(data['marital'].value_counts())\n","data.groupby('marital').mean()"],"execution_count":null,"outputs":[{"output_type":"stream","text":["married 24928\n","single 11568\n","divorced 4612\n","unknown 80\n","Name: marital, dtype: int64\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
age
\n","
duration
\n","
campaign
\n","
pdays
\n","
previous
\n","
emp_var_rate
\n","
cons_price_idx
\n","
cons_conf_idx
\n","
euribor3m
\n","
nr_employed
\n","
y
\n","
\n","
\n","
marital
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n"," \n"," \n","
\n","
divorced
\n","
44.899393
\n","
253.790330
\n","
2.61340
\n","
968.639853
\n","
0.168690
\n","
0.163985
\n","
93.606563
\n","
-40.707069
\n","
3.715603
\n","
5170.878643
\n","
0.103209
\n","
\n","
\n","
married
\n","
42.307165
\n","
257.438623
\n","
2.57281
\n","
967.247673
\n","
0.155608
\n","
0.183625
\n","
93.597367
\n","
-40.270659
\n","
3.745832
\n","
5171.848772
\n","
0.101573
\n","
\n","
\n","
single
\n","
33.158714
\n","
261.524378
\n","
2.53380
\n","
949.909578
\n","
0.211359
\n","
-0.167989
\n","
93.517300
\n","
-40.918698
\n","
3.317447
\n","
5155.199265
\n","
0.140041
\n","
\n","
\n","
unknown
\n","
40.275000
\n","
312.725000
\n","
3.18750
\n","
937.100000
\n","
0.275000
\n","
-0.221250
\n","
93.471250
\n","
-40.820000
\n","
3.313038
\n","
5157.393750
\n","
0.150000
\n","
\n"," \n","
\n","
"],"text/plain":[" age duration campaign ... euribor3m nr_employed y\n","marital ... \n","divorced 44.899393 253.790330 2.61340 ... 3.715603 5170.878643 0.103209\n","married 42.307165 257.438623 2.57281 ... 3.745832 5171.848772 0.101573\n","single 33.158714 261.524378 2.53380 ... 3.317447 5155.199265 0.140041\n","unknown 40.275000 312.725000 3.18750 ... 3.313038 5157.393750 0.150000\n","\n","[4 rows x 11 columns]"]},"metadata":{"tags":[]},"execution_count":9}]},{"cell_type":"markdown","metadata":{"id":"TrZKJdxZbq7E"},"source":["Not much to speak of on this one, other than single people have a higher percentage of successful subscpription than divorced or married. Makes sense considering how many students sign up. The unknown category also has high percentages but only makes up 80 people in the data."]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":385},"id":"pglCHck-cNPr","executionInfo":{"status":"ok","timestamp":1613045325907,"user_tz":300,"elapsed":73773,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"8e7ba066-08d3-4f94-c86b-d0895abd4b82"},"source":["print(data['education'].value_counts())\n","data.groupby('education').mean()"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Basic 12513\n","university.degree 12168\n","high.school 9515\n","professional.course 5243\n","unknown 1731\n","illiterate 18\n","Name: education, dtype: int64\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
age
\n","
duration
\n","
campaign
\n","
pdays
\n","
previous
\n","
emp_var_rate
\n","
cons_price_idx
\n","
cons_conf_idx
\n","
euribor3m
\n","
nr_employed
\n","
y
\n","
\n","
\n","
education
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n","
\n"," \n"," \n","
\n","
Basic
\n","
42.163910
\n","
263.043874
\n","
2.559498
\n","
974.877967
\n","
0.141053
\n","
0.191329
\n","
93.639933
\n","
-40.927595
\n","
3.729654
\n","
5172.014113
\n","
0.087029
\n","
\n","
\n","
high.school
\n","
37.998213
\n","
260.886810
\n","
2.568576
\n","
964.358382
\n","
0.185917
\n","
0.032937
\n","
93.584857
\n","
-40.940641
\n","
3.556157
\n","
5164.994735
\n","
0.108355
\n","
\n","
\n","
illiterate
\n","
48.500000
\n","
276.777778
\n","
2.277778
\n","
943.833333
\n","
0.111111
\n","
-0.133333
\n","
93.317333
\n","
-39.950000
\n","
3.516556
\n","
5171.777778
\n","
0.222222
\n","
\n","
\n","
professional.course
\n","
40.080107
\n","
252.533855
\n","
2.586115
\n","
960.765974
\n","
0.163075
\n","
0.173012
\n","
93.569864
\n","
-40.124108
\n","
3.710457
\n","
5170.155979
\n","
0.113485
\n","
\n","
\n","
university.degree
\n","
38.879191
\n","
253.223373
\n","
2.563527
\n","
951.807692
\n","
0.192390
\n","
-0.028090
\n","
93.493466
\n","
-39.975805
\n","
3.529663
\n","
5163.226298
\n","
0.137245
\n","
\n","
\n","
unknown
\n","
43.481225
\n","
262.390526
\n","
2.596187
\n","
942.830734
\n","
0.226459
\n","
0.059099
\n","
93.658615
\n","
-39.877816
\n","
3.571098
\n","
5159.549509
\n","
0.145003
\n","
\n"," \n","
\n","
"],"text/plain":[" age duration ... nr_employed y\n","education ... \n","Basic 42.163910 263.043874 ... 5172.014113 0.087029\n","high.school 37.998213 260.886810 ... 5164.994735 0.108355\n","illiterate 48.500000 276.777778 ... 5171.777778 0.222222\n","professional.course 40.080107 252.533855 ... 5170.155979 0.113485\n","university.degree 38.879191 253.223373 ... 5163.226298 0.137245\n","unknown 43.481225 262.390526 ... 5159.549509 0.145003\n","\n","[6 rows x 11 columns]"]},"metadata":{"tags":[]},"execution_count":10}]},{"cell_type":"markdown","metadata":{"id":"gGvlAtazcrlY"},"source":["This one suffers the same issues with unbalance sampling like the job table. Illiterate people appear to have the highest subscription rate (22.2%), but only 18 people described themselves as illiterate. However, also looks like people with a university degree are more likely to be subscriber than other categories."]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":386},"id":"IC4ZhEiadE3J","executionInfo":{"status":"ok","timestamp":1613045326393,"user_tz":300,"elapsed":74252,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"53d0bc68-2960-41ed-d42e-a7f4c78ef031"},"source":["%matplotlib inline\n","pd.crosstab(data.job,data.y).plot(kind='bar')\n","plt.title('Purchase Frequency for Job Title')\n","plt.xlabel('Job')\n","plt.ylabel('Frequency of Purchase')"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Text(0, 0.5, 'Frequency of Purchase')"]},"metadata":{"tags":[]},"execution_count":11},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["
"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"markdown","metadata":{"id":"ET5V-epUdSIh"},"source":["This is a good plot because you can visually see which categories have high subscription rates (i.e., the blue and orange bars are closer in height for student and retired), but you can also see they make up a very small percentage of th total subscriptions (i.e., admin is the top job category to generate subscriptions). It also shows that the percentage of subscriptions varies within job categories; hence, knowing the type of job should help us predict whether or not a person subscribes. In other words, if we randomly draw a student, they have a higher chance of being a subscriber than if we draw a blue-collar worker.\n"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":358},"id":"O8u85NtKhXK6","executionInfo":{"status":"ok","timestamp":1613045326767,"user_tz":300,"elapsed":74619,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"cbca20c1-f636-4500-8c3d-b81f977013de"},"source":["%matplotlib inline\n","pd.crosstab(data.marital,data.y).plot(kind='bar')\n","plt.title('Purchase Frequency for Marital Status')\n","plt.xlabel('Marital Status')\n","plt.ylabel('Proportion of Customers')"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Text(0, 0.5, 'Proportion of Customers')"]},"metadata":{"tags":[]},"execution_count":12},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["
"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"markdown","metadata":{"id":"4R6c3eypiAYx"},"source":["Same as I stated above. Single people has a slightly higher proportion of subscriptions within their category than others."]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":415},"id":"FpH8uV0JiSYT","executionInfo":{"status":"ok","timestamp":1613045327093,"user_tz":300,"elapsed":74939,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"34a1bc56-47e5-4854-ef4a-21f4d6cbff2a"},"source":["%matplotlib inline\n","pd.crosstab(data.education,data.y).plot(kind='bar')\n","plt.title('Purchase Frequency for Education Status')\n","plt.xlabel('Education Status')\n","plt.ylabel('Proportion of Customers')"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Text(0, 0.5, 'Proportion of Customers')"]},"metadata":{"tags":[]},"execution_count":13},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["
"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"markdown","metadata":{"id":"RNmu8tTSivvS"},"source":["No change from above. University degree seems to be predictive over other categories. However, comparisons across other categories like basic and high.school seem less useful.\n","\n","**In summary, the diagnostic plots make it seem like newly graduated, single people are more likely to sign up for a term subscription than other types of people**"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":519},"id":"3FXvyViNjn6F","executionInfo":{"status":"ok","timestamp":1613045327398,"user_tz":300,"elapsed":75237,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"84a25046-01d6-4f67-ba2d-d60096709d35"},"source":["print(data['month'].value_counts())\n","pd.crosstab(data.month,data.y).plot(kind='bar')\n","plt.title('Purchase Frequency by Month')\n","plt.xlabel('Month')\n","plt.ylabel('Proportion of Customers')"],"execution_count":null,"outputs":[{"output_type":"stream","text":["may 13769\n","jul 7174\n","aug 6178\n","jun 5318\n","nov 4101\n","apr 2632\n","oct 718\n","sep 570\n","mar 546\n","dec 182\n","Name: month, dtype: int64\n"],"name":"stdout"},{"output_type":"execute_result","data":{"text/plain":["Text(0, 0.5, 'Proportion of Customers')"]},"metadata":{"tags":[]},"execution_count":14},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["
"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"markdown","metadata":{"id":"ataSEKBOjzfv"},"source":["Looks like march, september, and october tend to be more successful months in terms of percentages. No idea why this would be the case other than, the fiscal year starts on October 1st. But for model training, it seems like month is going to be very predictive. If we are predicting something in any of those months, it should have better odds at being a success."]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"XccHngLOlHlv","executionInfo":{"status":"ok","timestamp":1613045327512,"user_tz":300,"elapsed":75345,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"1662b212-7503-4a82-96d8-690e2f6ee315"},"source":["# One-hot encode the categorical variables \n","cat_vars=['job','marital','education','default','housing','loan','contact','month','day_of_week','outcome']\n","for var in cat_vars:\n"," cat_list='var'+'_'+var\n"," cat_list = pd.get_dummies(data[var], prefix=var)\n"," data1=data.join(cat_list)\n"," data=data1\n","\n","cat_vars=['job','marital','education','default','housing','loan','contact','month','day_of_week','outcome']\n","data_vars=data.columns.values.tolist()\n","to_keep=[i for i in data_vars if i not in cat_vars]\n","\n","data_final=data[to_keep]\n","data_final.columns.values"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array(['age', 'duration', 'campaign', 'pdays', 'previous', 'emp_var_rate',\n"," 'cons_price_idx', 'cons_conf_idx', 'euribor3m', 'nr_employed', 'y',\n"," 'job_admin.', 'job_blue-collar', 'job_entrepreneur',\n"," 'job_housemaid', 'job_management', 'job_retired',\n"," 'job_self-employed', 'job_services', 'job_student',\n"," 'job_technician', 'job_unemployed', 'job_unknown',\n"," 'marital_divorced', 'marital_married', 'marital_single',\n"," 'marital_unknown', 'education_Basic', 'education_high.school',\n"," 'education_illiterate', 'education_professional.course',\n"," 'education_university.degree', 'education_unknown', 'default_no',\n"," 'default_unknown', 'default_yes', 'housing_no', 'housing_unknown',\n"," 'housing_yes', 'loan_no', 'loan_unknown', 'loan_yes',\n"," 'contact_cellular', 'contact_telephone', 'month_apr', 'month_aug',\n"," 'month_dec', 'month_jul', 'month_jun', 'month_mar', 'month_may',\n"," 'month_nov', 'month_oct', 'month_sep', 'day_of_week_fri',\n"," 'day_of_week_mon', 'day_of_week_thu', 'day_of_week_tue',\n"," 'day_of_week_wed', 'outcome_failure', 'outcome_nonexistent',\n"," 'outcome_success'], dtype=object)"]},"metadata":{"tags":[]},"execution_count":15}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":419},"id":"iTl_bnxVcLNR","executionInfo":{"status":"ok","timestamp":1613045327513,"user_tz":300,"elapsed":75340,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"c52cba30-c3fe-46bd-f6a9-378b41b07438"},"source":["import sklearn.preprocessing\n","from sklearn.preprocessing import StandardScaler\n","from sklearn.preprocessing import MinMaxScaler\n","sc = StandardScaler()\n","\n","numeric_vars = ['age', 'duration', 'campaign', 'pdays', 'emp_var_rate', 'cons_price_idx', \n"," 'cons_conf_idx', 'euribor3m', 'nr_employed']\n","\n","#only standardize numerical features\n","features=data_final[numeric_vars]\n","features_standard=StandardScaler().fit_transform(features)# Gaussian Standardisation\n","temp=pd.DataFrame(features_standard,columns=numeric_vars)\n","temp"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
age
\n","
duration
\n","
campaign
\n","
pdays
\n","
emp_var_rate
\n","
cons_price_idx
\n","
cons_conf_idx
\n","
euribor3m
\n","
nr_employed
\n","
\n"," \n"," \n","
\n","
0
\n","
0.381527
\n","
-0.186230
\n","
-0.565922
\n","
0.195414
\n","
0.839061
\n","
-0.227465
\n","
0.951267
\n","
0.773575
\n","
0.845170
\n","
\n","
\n","
1
\n","
1.245157
\n","
-0.463926
\n","
-0.565922
\n","
0.195414
\n","
-0.115781
\n","
-0.649003
\n","
-0.323542
\n","
0.230456
\n","
0.398115
\n","
\n","
\n","
2
\n","
-1.153816
\n","
0.311309
\n","
0.156105
\n","
-5.117342
\n","
-1.134279
\n","
0.828107
\n","
0.151810
\n","
-1.667578
\n","
-2.428157
\n","
\n","
\n","
3
\n","
-0.098268
\n","
-0.282652
\n","
-0.204909
\n","
0.195414
\n","
-1.197935
\n","
-0.864955
\n","
-1.425496
\n","
-1.277824
\n","
-0.940281
\n","
\n","
\n","
4
\n","
1.437075
\n","
-0.467783
\n","
-0.565922
\n","
-5.133393
\n","
-1.898153
\n","
-2.374889
\n","
1.966794
\n","
-1.586859
\n","
-1.257233
\n","
\n","
\n","
...
\n","
...
\n","
...
\n","
...
\n","
...
\n","
...
\n","
...
\n","
...
\n","
...
\n","
...
\n","
\n","
\n","
41183
\n","
1.820911
\n","
-0.139947
\n","
-0.565922
\n","
0.195414
\n","
0.839061
\n","
1.536429
\n","
-0.280328
\n","
0.717649
\n","
0.845170
\n","
\n","
\n","
41184
\n","
-0.865939
\n","
-0.240227
\n","
-0.204909
\n","
0.195414
\n","
0.648092
\n","
0.722722
\n","
0.886447
\n","
0.714190
\n","
0.331680
\n","
\n","
\n","
41185
\n","
0.189609
\n","
-0.757050
\n","
0.156105
\n","
0.195414
\n","
0.648092
\n","
0.722722
\n","
0.886447
\n","
0.712460
\n","
0.331680
\n","
\n","
\n","
41186
\n","
0.765363
\n","
-0.224799
\n","
-0.204909
\n","
0.195414
\n","
-2.216433
\n","
-1.977538
\n","
2.939106
\n","
-1.660082
\n","
-2.069683
\n","
\n","
\n","
41187
\n","
-1.441693
\n","
-0.564206
\n","
0.517118
\n","
0.195414
\n","
0.648092
\n","
0.722722
\n","
0.886447
\n","
0.713613
\n","
0.331680
\n","
\n"," \n","
\n","
41188 rows × 9 columns
\n","
"],"text/plain":[" age duration campaign ... cons_conf_idx euribor3m nr_employed\n","0 0.381527 -0.186230 -0.565922 ... 0.951267 0.773575 0.845170\n","1 1.245157 -0.463926 -0.565922 ... -0.323542 0.230456 0.398115\n","2 -1.153816 0.311309 0.156105 ... 0.151810 -1.667578 -2.428157\n","3 -0.098268 -0.282652 -0.204909 ... -1.425496 -1.277824 -0.940281\n","4 1.437075 -0.467783 -0.565922 ... 1.966794 -1.586859 -1.257233\n","... ... ... ... ... ... ... ...\n","41183 1.820911 -0.139947 -0.565922 ... -0.280328 0.717649 0.845170\n","41184 -0.865939 -0.240227 -0.204909 ... 0.886447 0.714190 0.331680\n","41185 0.189609 -0.757050 0.156105 ... 0.886447 0.712460 0.331680\n","41186 0.765363 -0.224799 -0.204909 ... 2.939106 -1.660082 -2.069683\n","41187 -1.441693 -0.564206 0.517118 ... 0.886447 0.713613 0.331680\n","\n","[41188 rows x 9 columns]"]},"metadata":{"tags":[]},"execution_count":16}]},{"cell_type":"code","metadata":{"id":"sGIIVNHcmPnK"},"source":["cat_data = data_final[['job_admin.', 'job_blue-collar', 'job_entrepreneur',\n"," 'job_housemaid', 'job_management', 'job_retired',\n"," 'job_self-employed', 'job_services', 'job_student',\n"," 'job_technician', 'job_unemployed', 'job_unknown',\n"," 'marital_divorced', 'marital_married', 'marital_single',\n"," 'marital_unknown', 'education_Basic', 'education_high.school',\n"," 'education_illiterate', 'education_professional.course',\n"," 'education_university.degree', 'education_unknown', 'default_no',\n"," 'default_unknown', 'default_yes', 'housing_no', 'housing_unknown',\n"," 'housing_yes', 'loan_no', 'loan_unknown', 'loan_yes',\n"," 'contact_cellular', 'contact_telephone', 'month_apr', 'month_aug',\n"," 'month_dec', 'month_jul', 'month_jun', 'month_mar', 'month_may',\n"," 'month_nov', 'month_oct', 'month_sep', 'day_of_week_fri',\n"," 'day_of_week_mon', 'day_of_week_thu', 'day_of_week_tue',\n"," 'day_of_week_wed', 'outcome_failure', 'outcome_nonexistent',\n"," 'outcome_success', 'y']]\n","data_final_after_standardizing = pd.concat([cat_data.reset_index(drop=True), temp], axis=1)\n","data_final = data_final_after_standardizing"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"0Y_TrOuxmnma"},"source":["# SMOTE\n","\n","With our training data created, I’ll up-sample the no-subscription using the SMOTE algorithm(Synthetic Minority Oversampling Technique). At a high level, SMOTE:\n","\n","1. Works by creating synthetic samples from the minor class (no-subscription) instead of creating copies.\n","2. Randomly choosing one of the k-nearest-neighbors and using it to create a similar, but randomly tweaked, new observations."]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Iq6CmxhhmnFX","executionInfo":{"status":"ok","timestamp":1613045328680,"user_tz":300,"elapsed":76495,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"f074f651-0905-4935-b28b-cd16483d82ad"},"source":["X = data_final.loc[:, data_final.columns != 'y']\n","y = data_final.loc[:, data_final.columns == 'y']\n","from imblearn.over_sampling import SMOTE\n","os = SMOTE(random_state=0)\n","X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n","columns = X_train.columns\n","os_data_X,os_data_y=os.fit_sample(X_train, y_train)\n","os_data_X = pd.DataFrame(data=os_data_X,columns=columns )\n","os_data_y= pd.DataFrame(data=os_data_y,columns=['y'])\n","# we can Check the numbers of our data\n","print(\"length of oversampled data is \",len(os_data_X))\n","print(\"Number of no subscription in oversampled data\",len(os_data_y[os_data_y['y']==0]))\n","print(\"Number of subscription\",len(os_data_y[os_data_y['y']==1]))\n","print(\"Proportion of no subscription data in oversampled data is \",len(os_data_y[os_data_y['y']==0])/len(os_data_X))\n","print(\"Proportion of subscription data in oversampled data is \",len(os_data_y[os_data_y['y']==1])/len(os_data_X))"],"execution_count":null,"outputs":[{"output_type":"stream","text":["/usr/local/lib/python3.6/dist-packages/sklearn/externals/six.py:31: FutureWarning: The module is deprecated in version 0.21 and will be removed in version 0.23 since we've dropped support for Python 2.7. Please rely on the official version of six (https://pypi.org/project/six/).\n"," \"(https://pypi.org/project/six/).\", FutureWarning)\n","/usr/local/lib/python3.6/dist-packages/sklearn/utils/deprecation.py:144: FutureWarning: The sklearn.neighbors.base module is deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.neighbors. Anything that cannot be imported from sklearn.neighbors is now part of the private API.\n"," warnings.warn(message, FutureWarning)\n","/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py:760: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"," y = column_or_1d(y, warn=True)\n","/usr/local/lib/python3.6/dist-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function safe_indexing is deprecated; safe_indexing is deprecated in version 0.22 and will be removed in version 0.24.\n"," warnings.warn(msg, category=FutureWarning)\n"],"name":"stderr"},{"output_type":"stream","text":["length of oversampled data is 51134\n","Number of no subscription in oversampled data 25567\n","Number of subscription 25567\n","Proportion of no subscription data in oversampled data is 0.5\n","Proportion of subscription data in oversampled data is 0.5\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"KaUugP4ke19g","executionInfo":{"status":"ok","timestamp":1613045328682,"user_tz":300,"elapsed":76492,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"60bbf716-fcfe-4f28-bb56-fb8c6791efae"},"source":["data_final['y'].value_counts()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0 36548\n","1 4640\n","Name: y, dtype: int64"]},"metadata":{"tags":[]},"execution_count":19}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"VPBTRLXRe_6_","executionInfo":{"status":"ok","timestamp":1613045328682,"user_tz":300,"elapsed":76488,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"38583cd7-9865-4a8d-81c7-642167b7f570"},"source":["os_data_y['y'].value_counts()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["1 25567\n","0 25567\n","Name: y, dtype: int64"]},"metadata":{"tags":[]},"execution_count":20}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"FrT9knUlfLoB","executionInfo":{"status":"ok","timestamp":1613045328683,"user_tz":300,"elapsed":76485,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"f369b7f3-178e-49a1-8933-9f9ca1f3136c"},"source":["y_test['y'].value_counts()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0 10981\n","1 1376\n","Name: y, dtype: int64"]},"metadata":{"tags":[]},"execution_count":21}]},{"cell_type":"markdown","metadata":{"id":"HU2KJhWTnMYv"},"source":["Now we have a perfect balanced data! You may have noticed that I over-sampled only on the training data, because by oversampling only on the training data, none of the information in the test data is being used to create synthetic observations, therefore, no information will bleed from test data into the model training."]},{"cell_type":"markdown","metadata":{"id":"_uJzUpvopVjk"},"source":["# Recursive Feature Elimination\n","\n","Recursive Feature Elimination (RFE) is based on the idea to repeatedly construct a model and choose either the best or worst performing feature, setting the feature aside and then repeating the process with the rest of the features. This process is applied until all features in the dataset are exhausted. The goal of RFE is to select features by recursively considering smaller and smaller sets of features."]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"PjNuOpFapeqQ","executionInfo":{"status":"ok","timestamp":1613045372388,"user_tz":300,"elapsed":120186,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"10d592c4-cc04-4073-f4a5-63fa434c0ebc"},"source":["import warnings\n","warnings.filterwarnings('ignore')\n","\n","data_final_vars=data_final.columns.values.tolist()\n","y=['y']\n","X=[i for i in data_final_vars if i not in y]\n","from sklearn.feature_selection import RFE\n","from sklearn.linear_model import LogisticRegression\n","logreg = LogisticRegression()\n","rfe = RFE(logreg, 25)\n","rfe = rfe.fit(os_data_X, os_data_y.values.ravel())\n","print(rfe.support_)\n","print(rfe.ranking_)"],"execution_count":null,"outputs":[{"output_type":"stream","text":["[False True False True False True True True True False False False\n"," False False False False False False True False False False False True\n"," False False True False False False True False True False True True\n"," False True True True True False True False False False False False\n"," True True True False True False False True True False True False]\n","[22 1 2 1 9 1 1 1 1 8 21 20 19 32 34 14 11 12 1 33 17 10 31 1\n"," 35 28 1 29 23 6 1 7 1 5 1 1 4 1 1 1 1 16 1 25 26 24 27 13\n"," 1 1 1 36 1 15 18 1 1 30 1 3]\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"CVkoEkDSpyj1"},"source":["from itertools import compress\n","cols = list(compress(os_data_X.columns, rfe.support_))\n","X=os_data_X[cols]\n","y=os_data_y['y']"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"RfiR1uafr4Me","executionInfo":{"status":"ok","timestamp":1613045373574,"user_tz":300,"elapsed":121364,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"c8954fdb-e6bd-4a58-9bda-d4a837429527"},"source":["# Implement the model\n","import statsmodels.api as sm\n","logit_model=sm.Logit(y,X)\n","result=logit_model.fit()\n","print(result.summary2())"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Optimization terminated successfully.\n"," Current function value: 0.315088\n"," Iterations 7\n"," Results: Logit\n","=====================================================================\n","Model: Logit Pseudo R-squared: 0.545 \n","Dependent Variable: y AIC: 32273.4687\n","Date: 2021-02-11 12:09 BIC: 32494.5238\n","No. Observations: 51134 Log-Likelihood: -16112. \n","Df Model: 24 LL-Null: -35443. \n","Df Residuals: 51109 LLR p-value: 0.0000 \n","Converged: 1.0000 Scale: 1.0000 \n","No. Iterations: 7.0000 \n","---------------------------------------------------------------------\n"," Coef. Std.Err. z P>|z| [0.025 0.975]\n","---------------------------------------------------------------------\n","job_blue-collar -0.3431 0.0411 -8.3412 0.0000 -0.4238 -0.2625\n","job_housemaid -0.4216 0.1155 -3.6492 0.0003 -0.6480 -0.1951\n","job_retired 0.3941 0.0611 6.4492 0.0000 0.2744 0.5139\n","job_self-employed -0.5627 0.0908 -6.2009 0.0000 -0.7406 -0.3849\n","job_services -0.4321 0.0565 -7.6411 0.0000 -0.5429 -0.3212\n","job_student 0.4525 0.0822 5.5062 0.0000 0.2914 0.6135\n","education_illiterate 0.6605 0.6181 1.0685 0.2853 -0.5510 1.8720\n","default_unknown -0.5534 0.0468 -11.8187 0.0000 -0.6452 -0.4616\n","housing_unknown -0.5237 0.1124 -4.6570 0.0000 -0.7441 -0.3033\n","loan_yes -0.3626 0.0444 -8.1660 0.0000 -0.4497 -0.2756\n","contact_telephone -0.6316 0.0515 -12.2732 0.0000 -0.7325 -0.5308\n","month_aug 1.0900 0.0580 18.8032 0.0000 0.9764 1.2037\n","month_dec -0.6926 0.1547 -4.4757 0.0000 -0.9959 -0.3893\n","month_jun -0.7708 0.0579 -13.3160 0.0000 -0.8843 -0.6574\n","month_mar 2.1291 0.0907 23.4618 0.0000 1.9512 2.3069\n","month_may -0.8230 0.0453 -18.1828 0.0000 -0.9117 -0.7343\n","month_nov -0.7804 0.0591 -13.2009 0.0000 -0.8962 -0.6645\n","month_sep 0.3917 0.0927 4.2276 0.0000 0.2101 0.5734\n","outcome_failure -1.4407 0.0539 -26.7484 0.0000 -1.5463 -1.3351\n","outcome_nonexistent -0.8536 0.0336 -25.3834 0.0000 -0.9195 -0.7877\n","outcome_success 0.5635 0.0740 7.6188 0.0000 0.4185 0.7084\n","duration 1.9455 0.0196 99.0136 0.0000 1.9070 1.9840\n","emp_var_rate -3.7658 0.1032 -36.4927 0.0000 -3.9681 -3.5636\n","cons_price_idx 1.3606 0.0420 32.4203 0.0000 1.2784 1.4429\n","euribor3m 1.6083 0.0838 19.1874 0.0000 1.4440 1.7726\n","=====================================================================\n","\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"333QHUW9YMW4"},"source":["Will remove variables that have coefficient estimates with p-value higher than 0.05. ['education_illiterate']"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"XLgpTKXhYo04","executionInfo":{"status":"ok","timestamp":1613045374115,"user_tz":300,"elapsed":121899,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"237f33fb-2229-43dc-e3d4-b2cba724ab2e"},"source":["remove_cols = ['education_illiterate']\n","new_cols = [x for x in cols if x not in remove_cols]\n","X=os_data_X[new_cols]\n","y=os_data_y['y']\n","logit_model=sm.Logit(y,X)\n","result=logit_model.fit()\n","print(result.summary2())"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Optimization terminated successfully.\n"," Current function value: 0.315100\n"," Iterations 7\n"," Results: Logit\n","====================================================================\n","Model: Logit Pseudo R-squared: 0.545 \n","Dependent Variable: y AIC: 32272.6253\n","Date: 2021-02-11 12:09 BIC: 32484.8382\n","No. Observations: 51134 Log-Likelihood: -16112. \n","Df Model: 23 LL-Null: -35443. \n","Df Residuals: 51110 LLR p-value: 0.0000 \n","Converged: 1.0000 Scale: 1.0000 \n","No. Iterations: 7.0000 \n","--------------------------------------------------------------------\n"," Coef. Std.Err. z P>|z| [0.025 0.975]\n","--------------------------------------------------------------------\n","job_blue-collar -0.3427 0.0411 -8.3317 0.0000 -0.4234 -0.2621\n","job_housemaid -0.4215 0.1155 -3.6481 0.0003 -0.6479 -0.1950\n","job_retired 0.3963 0.0611 6.4879 0.0000 0.2766 0.5160\n","job_self-employed -0.5593 0.0907 -6.1678 0.0000 -0.7371 -0.3816\n","job_services -0.4320 0.0565 -7.6395 0.0000 -0.5428 -0.3212\n","job_student 0.4523 0.0822 5.5047 0.0000 0.2913 0.6134\n","default_unknown -0.5531 0.0468 -11.8144 0.0000 -0.6449 -0.4614\n","housing_unknown -0.5243 0.1124 -4.6621 0.0000 -0.7446 -0.3039\n","loan_yes -0.3625 0.0444 -8.1651 0.0000 -0.4496 -0.2755\n","contact_telephone -0.6301 0.0514 -12.2506 0.0000 -0.7309 -0.5293\n","month_aug 1.0910 0.0580 18.8224 0.0000 0.9774 1.2047\n","month_dec -0.6937 0.1547 -4.4829 0.0000 -0.9970 -0.3904\n","month_jun -0.7708 0.0579 -13.3163 0.0000 -0.8843 -0.6574\n","month_mar 2.1281 0.0907 23.4535 0.0000 1.9503 2.3060\n","month_may -0.8236 0.0453 -18.1990 0.0000 -0.9123 -0.7349\n","month_nov -0.7788 0.0591 -13.1781 0.0000 -0.8946 -0.6629\n","month_sep 0.3916 0.0927 4.2260 0.0000 0.2100 0.5732\n","outcome_failure -1.4418 0.0539 -26.7739 0.0000 -1.5474 -1.3363\n","outcome_nonexistent -0.8541 0.0336 -25.3995 0.0000 -0.9200 -0.7882\n","outcome_success 0.5635 0.0740 7.6191 0.0000 0.4185 0.7085\n","duration 1.9455 0.0196 99.0139 0.0000 1.9070 1.9840\n","emp_var_rate -3.7642 0.1032 -36.4837 0.0000 -3.9664 -3.5620\n","cons_price_idx 1.3597 0.0420 32.4081 0.0000 1.2774 1.4419\n","euribor3m 1.6069 0.0838 19.1744 0.0000 1.4426 1.7711\n","====================================================================\n","\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"BJRL96LRbBzy","executionInfo":{"status":"ok","timestamp":1613045374869,"user_tz":300,"elapsed":122647,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"88c56ded-d82a-48f5-bc1e-9e81cdeadbe6"},"source":["from sklearn.linear_model import LogisticRegression\n","from sklearn import metrics\n","logreg = LogisticRegression()\n","logreg.fit(X_train, y_train)"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n"," intercept_scaling=1, l1_ratio=None, max_iter=100,\n"," multi_class='auto', n_jobs=None, penalty='l2',\n"," random_state=None, solver='lbfgs', tol=0.0001, verbose=0,\n"," warm_start=False)"]},"metadata":{"tags":[]},"execution_count":26}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"FhVLLvF_bOQd","executionInfo":{"status":"ok","timestamp":1613045374870,"user_tz":300,"elapsed":122643,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"ff67aeed-897d-41f0-96f0-8bc5070d507a"},"source":["y_pred = logreg.predict(X_test)\n","print('Accuracy of logistic regression classifier on test set: {:.2f}'.format(logreg.score(X_test, y_test)))\n","\n","cm = metrics.confusion_matrix(y_test, y_pred)\n","true_pos = cm[1,1]\n","true_neg = cm[0,0]\n","false_pos = cm[0,1]\n","false_neg = cm[1,0]\n","precision = true_pos/(true_pos + false_pos)\n","recall = true_pos/(true_pos + false_neg)\n","\n","print(\"When we check precision of our model against the test data set, \" + str(len(y_test)) + \" users\")\n","print(\"\")\n","print(\"Precision - We predicted a subscription \" + str(cm[1,1] + cm[0,1]) + \" times and were correct \" + str(cm[1,1]) + \" times: \" + str(cm[1,1]/(cm[1,1] + cm[0,1]))[0:5])\n","print(\"Recall - We predicted \" + str(cm[1,1]) + \" out of the \" + str(cm[1,1] + cm[1,0]) + \" subscriptions: \" + str(recall)[0:5])\n","print(\"\")\n","print(\"Our total accuracy was \" + str((cm[0,0] + cm[1,1])/len(y_test))[0:5])\n","print(\"Our F1 score was \" + str(2*(precision*recall)/(precision+recall))[0:5])"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Accuracy of logistic regression classifier on test set: 0.91\n","When we check precision of our model against the test data set, 12357 users\n","\n","Precision - We predicted a subscription 884 times and were correct 592 times: 0.669\n","Recall - We predicted 592 out of the 1376 subscriptions: 0.430\n","\n","Our total accuracy was 0.912\n","Our F1 score was 0.523\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":111},"id":"lRxm6RHDg40s","executionInfo":{"status":"ok","timestamp":1613045374872,"user_tz":300,"elapsed":122640,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"b8e9a1ec-8327-4b89-87a2-2f5d20bad72d"},"source":["metrics.precision_score(y_test, y_pred)\n","cm = metrics.confusion_matrix(y_test, y_pred)\n","\n","true_neg = str(cm[0,0]) + \"/\" + str(cm[0,0] + cm[1,0]) + \" (\" + str(cm[0,0]/(cm[0,0] + cm[1,0]))[0:5] + \")\"\n","false_pos = str(cm[0,1]) + \"/\" + str(cm[0,1] + cm[1,1]) + \" (\" + str(cm[0,1]/(cm[0,1] + cm[1,1]))[0:5] + \")\"\n","false_neg = str(cm[1,0]) + \"/\" + str(cm[1,0] + cm[0,0]) + \" (\" + str(cm[1,0]/(cm[1,0] + cm[0,0]))[0:5] + \")\"\n","true_pos = str(cm[1,1]) + \"/\" + str(cm[1,1] + cm[0,1]) + \" (\" + str(cm[1,1]/(cm[1,1] + cm[0,1]))[0:5] + \")\"\n","\n","conf_matrix = pd.DataFrame({'Not Subscription': [true_neg, false_neg],\n"," 'Subscription': [false_pos, true_pos],\n"," 'Support': [cm[0,0] + cm[0,1], cm[1,0] + cm[1,1]]},\n"," index = ['Not Subscription', 'Subscription'])\n","conf_matrix"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["
"],"text/plain":[" prediction truth result\n","31880 0 0 None\n","38177 0 0 None\n","2459 0 0 None\n","756 0 0 None\n","11275 0 0 None"]},"metadata":{"tags":[]},"execution_count":37}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"5RTyj28lnD5L","executionInfo":{"status":"ok","timestamp":1613045382170,"user_tz":300,"elapsed":129890,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"be24897b-bdcc-4144-f3a2-632b98d90778"},"source":["prediction_df['result'][(prediction_df['prediction'] == 0) & (prediction_df['truth'] == 0)] = \"true_neg\"\n","prediction_df['result'][(prediction_df['prediction'] == 0) & (prediction_df['truth'] == 1)] = \"false_neg\"\n","prediction_df['result'][(prediction_df['prediction'] == 1) & (prediction_df['truth'] == 0)] = \"false_pos\"\n","prediction_df['result'][(prediction_df['prediction'] == 1) & (prediction_df['truth'] == 1)] = \"true_pos\"\n","results = prediction_df['result'].value_counts()\n","results"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["true_neg 24640\n","false_neg 2071\n","true_pos 1193\n","false_pos 927\n","Name: result, dtype: int64"]},"metadata":{"tags":[]},"execution_count":38}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"gRoRQbQCmep6","executionInfo":{"status":"ok","timestamp":1613045382170,"user_tz":300,"elapsed":129887,"user":{"displayName":"Donald Koban","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GgIl_q-klTdMSVMcpQ2RqU9YBN_aDPqg2-7Pd4=s64","userId":"12205738029019728376"}},"outputId":"245b9634-866f-461b-f0e6-a25319ab33b4"},"source":["\n","true_pos = results[3]\n","true_neg = results[0]\n","false_pos = results[1]\n","false_neg = results[2]\n","precision = true_pos/(true_pos + false_pos)\n","recall = true_pos/(true_pos + false_neg)\n","\n","print(\"When we check precision of our model against the test data set, \" + str(len(y)) + \" users\")\n","print(\"\")\n","print(\"Precision - We predicted a subscription \" + str(true_pos + false_pos) + \" times and were correct \" + str(true_pos) + \" times: \" + str(true_pos/(true_pos + false_pos))[0:5])\n","print(\"Recall - We predicted \" + str(true_pos) + \" out of the \" + str(true_pos + false_neg) + \" subscriptions: \" + str(recall)[0:5])\n","print(\"\")\n","print(\"Our total accuracy was \" + str((true_pos + true_neg)/len(y))[0:5])\n","print(\"Our F1 score was \" + str(2*(precision*recall)/(precision+recall))[0:5])"],"execution_count":null,"outputs":[{"output_type":"stream","text":["When we check precision of our model against the test data set, 28831 users\n","\n","Precision - We predicted a subscription 2998 times and were correct 927 times: 0.309\n","Recall - We predicted 927 out of the 2120 subscriptions: 0.437\n","\n","Our total accuracy was 0.886\n","Our F1 score was 0.362\n"],"name":"stdout"}]}]}