Last active
March 3, 2018 08:07
-
-
Save DahlitzFlorian/f555aa1b9725a206a29da6883c97fe82 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Logistic Regression #" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Data preparation and analysis ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Import the needed libaries and set some things for later visualization." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 33, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import pandas as pd\n", | |
| "import numpy as np\n", | |
| "\n", | |
| "from sklearn import preprocessing\n", | |
| "from sklearn.linear_model import LogisticRegression\n", | |
| "from sklearn.model_selection import train_test_split\n", | |
| "\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "import seaborn as sns\n", | |
| "\n", | |
| "plt.rc(\"font\", size=14)\n", | |
| "sns.set(style=\"white\")\n", | |
| "sns.set(style=\"whitegrid\", color_codes=True)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Read sample-data from csv-file and print the shape (datasets and fields) and the columns' values." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 34, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "(41188, 21)\n", | |
| "['age', 'job', 'marital', 'education', 'default', 'housing', 'loan', 'contact', 'month', 'day_of_week', 'duration', 'campaign', 'pdays', 'previous', 'poutcome', 'emp_var_rate', 'cons_price_idx', 'cons_conf_idx', 'euribor3m', 'nr_employed', 'y']\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "data = pd.read_csv(\"src/banking.csv\", header=0)\n", | |
| "data = data.dropna()\n", | |
| "print(data.shape)\n", | |
| "print(list(data.columns))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Show the first five rows of the dataframe." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 35, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| " age job marital education default housing loan \\\n", | |
| "0 44 blue-collar married basic.4y unknown yes no \n", | |
| "1 53 technician married unknown no no no \n", | |
| "2 28 management single university.degree no yes no \n", | |
| "3 39 services married high.school no no no \n", | |
| "4 55 retired married basic.4y no yes no \n", | |
| "\n", | |
| " contact month day_of_week ... campaign pdays previous poutcome \\\n", | |
| "0 cellular aug thu ... 1 999 0 nonexistent \n", | |
| "1 cellular nov fri ... 1 999 0 nonexistent \n", | |
| "2 cellular jun thu ... 3 6 2 success \n", | |
| "3 cellular apr fri ... 2 999 0 nonexistent \n", | |
| "4 cellular aug fri ... 1 3 1 success \n", | |
| "\n", | |
| " emp_var_rate cons_price_idx cons_conf_idx euribor3m nr_employed y \n", | |
| "0 1.4 93.444 -36.1 4.963 5228.1 0 \n", | |
| "1 -0.1 93.200 -42.0 4.021 5195.8 0 \n", | |
| "2 -1.7 94.055 -39.8 0.729 4991.6 1 \n", | |
| "3 -1.8 93.075 -47.1 1.405 5099.1 0 \n", | |
| "4 -2.9 92.201 -31.4 0.869 5076.2 1 \n", | |
| "\n", | |
| "[5 rows x 21 columns]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "print(data.head())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Show the unique values of the column \"education\"." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 36, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array(['basic.4y', 'unknown', 'university.degree', 'high.school',\n", | |
| " 'basic.9y', 'professional.course', 'basic.6y', 'illiterate'],\n", | |
| " dtype=object)" | |
| ] | |
| }, | |
| "execution_count": 36, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data[\"education\"].unique()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The column \"education\" has three values, which are quite similar: \n", | |
| " - basic.9y\n", | |
| " - basic.6y\n", | |
| " - basic.4y\n", | |
| "The following lines replace them with the value <i>Basic</i> to group them." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 37, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "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'])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Having another look at the unique values of the \"education\" column to see the changes." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 38, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array(['Basic', 'unknown', 'university.degree', 'high.school',\n", | |
| " 'professional.course', 'illiterate'], dtype=object)" | |
| ] | |
| }, | |
| "execution_count": 38, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data[\"education\"].unique()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Count the values of the \"y\" column (in this case the depended variable) and display it." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 39, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "0 36548\n", | |
| "1 4640\n", | |
| "Name: y, dtype: int64" | |
| ] | |
| }, | |
| "execution_count": 39, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data[\"y\"].value_counts()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Visualize the last line of code using a histogram." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 40, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.axes._subplots.AxesSubplot at 0x116d4ffd0>" | |
| ] | |
| }, | |
| "execution_count": 40, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x1169bdf98>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.countplot(x=\"y\", data=data, palette=\"hls\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Group the datasets by the values of the \"y\" column (0, 1) and calculate the mean for each column. " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 41, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>age</th>\n", | |
| " <th>duration</th>\n", | |
| " <th>campaign</th>\n", | |
| " <th>pdays</th>\n", | |
| " <th>previous</th>\n", | |
| " <th>emp_var_rate</th>\n", | |
| " <th>cons_price_idx</th>\n", | |
| " <th>cons_conf_idx</th>\n", | |
| " <th>euribor3m</th>\n", | |
| " <th>nr_employed</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>y</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>39.911185</td>\n", | |
| " <td>220.844807</td>\n", | |
| " <td>2.633085</td>\n", | |
| " <td>984.113878</td>\n", | |
| " <td>0.132374</td>\n", | |
| " <td>0.248875</td>\n", | |
| " <td>93.603757</td>\n", | |
| " <td>-40.593097</td>\n", | |
| " <td>3.811491</td>\n", | |
| " <td>5176.166600</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>40.913147</td>\n", | |
| " <td>553.191164</td>\n", | |
| " <td>2.051724</td>\n", | |
| " <td>792.035560</td>\n", | |
| " <td>0.492672</td>\n", | |
| " <td>-1.233448</td>\n", | |
| " <td>93.354386</td>\n", | |
| " <td>-39.789784</td>\n", | |
| " <td>2.123135</td>\n", | |
| " <td>5095.115991</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " age duration campaign pdays previous emp_var_rate \\\n", | |
| "y \n", | |
| "0 39.911185 220.844807 2.633085 984.113878 0.132374 0.248875 \n", | |
| "1 40.913147 553.191164 2.051724 792.035560 0.492672 -1.233448 \n", | |
| "\n", | |
| " cons_price_idx cons_conf_idx euribor3m nr_employed \n", | |
| "y \n", | |
| "0 93.603757 -40.593097 3.811491 5176.166600 \n", | |
| "1 93.354386 -39.789784 2.123135 5095.115991 " | |
| ] | |
| }, | |
| "execution_count": 41, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data.groupby(\"y\").mean()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Doing the same as before, but this time with the \"job\" column instead of the \"y\" column." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 42, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>age</th>\n", | |
| " <th>duration</th>\n", | |
| " <th>campaign</th>\n", | |
| " <th>pdays</th>\n", | |
| " <th>previous</th>\n", | |
| " <th>emp_var_rate</th>\n", | |
| " <th>cons_price_idx</th>\n", | |
| " <th>cons_conf_idx</th>\n", | |
| " <th>euribor3m</th>\n", | |
| " <th>nr_employed</th>\n", | |
| " <th>y</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>job</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>admin.</th>\n", | |
| " <td>38.187296</td>\n", | |
| " <td>254.312128</td>\n", | |
| " <td>2.623489</td>\n", | |
| " <td>954.319229</td>\n", | |
| " <td>0.189023</td>\n", | |
| " <td>0.015563</td>\n", | |
| " <td>93.534054</td>\n", | |
| " <td>-40.245433</td>\n", | |
| " <td>3.550274</td>\n", | |
| " <td>5164.125350</td>\n", | |
| " <td>0.129726</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>blue-collar</th>\n", | |
| " <td>39.555760</td>\n", | |
| " <td>264.542360</td>\n", | |
| " <td>2.558461</td>\n", | |
| " <td>985.160363</td>\n", | |
| " <td>0.122542</td>\n", | |
| " <td>0.248995</td>\n", | |
| " <td>93.656656</td>\n", | |
| " <td>-41.375816</td>\n", | |
| " <td>3.771996</td>\n", | |
| " <td>5175.615150</td>\n", | |
| " <td>0.068943</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>entrepreneur</th>\n", | |
| " <td>41.723214</td>\n", | |
| " <td>263.267857</td>\n", | |
| " <td>2.535714</td>\n", | |
| " <td>981.267170</td>\n", | |
| " <td>0.138736</td>\n", | |
| " <td>0.158723</td>\n", | |
| " <td>93.605372</td>\n", | |
| " <td>-41.283654</td>\n", | |
| " <td>3.791120</td>\n", | |
| " <td>5176.313530</td>\n", | |
| " <td>0.085165</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>housemaid</th>\n", | |
| " <td>45.500000</td>\n", | |
| " <td>250.454717</td>\n", | |
| " <td>2.639623</td>\n", | |
| " <td>960.579245</td>\n", | |
| " <td>0.137736</td>\n", | |
| " <td>0.433396</td>\n", | |
| " <td>93.676576</td>\n", | |
| " <td>-39.495283</td>\n", | |
| " <td>4.009645</td>\n", | |
| " <td>5179.529623</td>\n", | |
| " <td>0.100000</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>management</th>\n", | |
| " <td>42.362859</td>\n", | |
| " <td>257.058140</td>\n", | |
| " <td>2.476060</td>\n", | |
| " <td>962.647059</td>\n", | |
| " <td>0.185021</td>\n", | |
| " <td>-0.012688</td>\n", | |
| " <td>93.522755</td>\n", | |
| " <td>-40.489466</td>\n", | |
| " <td>3.611316</td>\n", | |
| " <td>5166.650513</td>\n", | |
| " <td>0.112175</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>retired</th>\n", | |
| " <td>62.027326</td>\n", | |
| " <td>273.712209</td>\n", | |
| " <td>2.476744</td>\n", | |
| " <td>897.936047</td>\n", | |
| " <td>0.327326</td>\n", | |
| " <td>-0.698314</td>\n", | |
| " <td>93.430786</td>\n", | |
| " <td>-38.573081</td>\n", | |
| " <td>2.770066</td>\n", | |
| " <td>5122.262151</td>\n", | |
| " <td>0.252326</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>self-employed</th>\n", | |
| " <td>39.949331</td>\n", | |
| " <td>264.142153</td>\n", | |
| " <td>2.660802</td>\n", | |
| " <td>976.621393</td>\n", | |
| " <td>0.143561</td>\n", | |
| " <td>0.094159</td>\n", | |
| " <td>93.559982</td>\n", | |
| " <td>-40.488107</td>\n", | |
| " <td>3.689376</td>\n", | |
| " <td>5170.674384</td>\n", | |
| " <td>0.104856</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>services</th>\n", | |
| " <td>37.926430</td>\n", | |
| " <td>258.398085</td>\n", | |
| " <td>2.587805</td>\n", | |
| " <td>979.974049</td>\n", | |
| " <td>0.154951</td>\n", | |
| " <td>0.175359</td>\n", | |
| " <td>93.634659</td>\n", | |
| " <td>-41.290048</td>\n", | |
| " <td>3.699187</td>\n", | |
| " <td>5171.600126</td>\n", | |
| " <td>0.081381</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>student</th>\n", | |
| " <td>25.894857</td>\n", | |
| " <td>283.683429</td>\n", | |
| " <td>2.104000</td>\n", | |
| " <td>840.217143</td>\n", | |
| " <td>0.524571</td>\n", | |
| " <td>-1.408000</td>\n", | |
| " <td>93.331613</td>\n", | |
| " <td>-40.187543</td>\n", | |
| " <td>1.884224</td>\n", | |
| " <td>5085.939086</td>\n", | |
| " <td>0.314286</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>technician</th>\n", | |
| " <td>38.507638</td>\n", | |
| " <td>250.232241</td>\n", | |
| " <td>2.577339</td>\n", | |
| " <td>964.408127</td>\n", | |
| " <td>0.153789</td>\n", | |
| " <td>0.274566</td>\n", | |
| " <td>93.561471</td>\n", | |
| " <td>-39.927569</td>\n", | |
| " <td>3.820401</td>\n", | |
| " <td>5175.648391</td>\n", | |
| " <td>0.108260</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>unemployed</th>\n", | |
| " <td>39.733728</td>\n", | |
| " <td>249.451677</td>\n", | |
| " <td>2.564103</td>\n", | |
| " <td>935.316568</td>\n", | |
| " <td>0.199211</td>\n", | |
| " <td>-0.111736</td>\n", | |
| " <td>93.563781</td>\n", | |
| " <td>-40.007594</td>\n", | |
| " <td>3.466583</td>\n", | |
| " <td>5157.156509</td>\n", | |
| " <td>0.142012</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>unknown</th>\n", | |
| " <td>45.563636</td>\n", | |
| " <td>239.675758</td>\n", | |
| " <td>2.648485</td>\n", | |
| " <td>938.727273</td>\n", | |
| " <td>0.154545</td>\n", | |
| " <td>0.357879</td>\n", | |
| " <td>93.718942</td>\n", | |
| " <td>-38.797879</td>\n", | |
| " <td>3.949033</td>\n", | |
| " <td>5172.931818</td>\n", | |
| " <td>0.112121</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " age duration campaign pdays previous \\\n", | |
| "job \n", | |
| "admin. 38.187296 254.312128 2.623489 954.319229 0.189023 \n", | |
| "blue-collar 39.555760 264.542360 2.558461 985.160363 0.122542 \n", | |
| "entrepreneur 41.723214 263.267857 2.535714 981.267170 0.138736 \n", | |
| "housemaid 45.500000 250.454717 2.639623 960.579245 0.137736 \n", | |
| "management 42.362859 257.058140 2.476060 962.647059 0.185021 \n", | |
| "retired 62.027326 273.712209 2.476744 897.936047 0.327326 \n", | |
| "self-employed 39.949331 264.142153 2.660802 976.621393 0.143561 \n", | |
| "services 37.926430 258.398085 2.587805 979.974049 0.154951 \n", | |
| "student 25.894857 283.683429 2.104000 840.217143 0.524571 \n", | |
| "technician 38.507638 250.232241 2.577339 964.408127 0.153789 \n", | |
| "unemployed 39.733728 249.451677 2.564103 935.316568 0.199211 \n", | |
| "unknown 45.563636 239.675758 2.648485 938.727273 0.154545 \n", | |
| "\n", | |
| " emp_var_rate cons_price_idx cons_conf_idx euribor3m \\\n", | |
| "job \n", | |
| "admin. 0.015563 93.534054 -40.245433 3.550274 \n", | |
| "blue-collar 0.248995 93.656656 -41.375816 3.771996 \n", | |
| "entrepreneur 0.158723 93.605372 -41.283654 3.791120 \n", | |
| "housemaid 0.433396 93.676576 -39.495283 4.009645 \n", | |
| "management -0.012688 93.522755 -40.489466 3.611316 \n", | |
| "retired -0.698314 93.430786 -38.573081 2.770066 \n", | |
| "self-employed 0.094159 93.559982 -40.488107 3.689376 \n", | |
| "services 0.175359 93.634659 -41.290048 3.699187 \n", | |
| "student -1.408000 93.331613 -40.187543 1.884224 \n", | |
| "technician 0.274566 93.561471 -39.927569 3.820401 \n", | |
| "unemployed -0.111736 93.563781 -40.007594 3.466583 \n", | |
| "unknown 0.357879 93.718942 -38.797879 3.949033 \n", | |
| "\n", | |
| " nr_employed y \n", | |
| "job \n", | |
| "admin. 5164.125350 0.129726 \n", | |
| "blue-collar 5175.615150 0.068943 \n", | |
| "entrepreneur 5176.313530 0.085165 \n", | |
| "housemaid 5179.529623 0.100000 \n", | |
| "management 5166.650513 0.112175 \n", | |
| "retired 5122.262151 0.252326 \n", | |
| "self-employed 5170.674384 0.104856 \n", | |
| "services 5171.600126 0.081381 \n", | |
| "student 5085.939086 0.314286 \n", | |
| "technician 5175.648391 0.108260 \n", | |
| "unemployed 5157.156509 0.142012 \n", | |
| "unknown 5172.931818 0.112121 " | |
| ] | |
| }, | |
| "execution_count": 42, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data.groupby(\"job\").mean()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Data Visualization ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Displaying the frequencies of purchase for each job and the number of term deposits." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 43, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x116d5f518>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "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')\n", | |
| "plt.savefig('purchase_fre_job')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The frequency of purchase of the deposit depends a great deal on the job title. Thus, the job title can be a good predictor of the outcome variable." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The next couple of rows will oppose the martial status values and the purchase." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 44, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x1167572b0>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "table=pd.crosstab(data.marital,data.y)\n", | |
| "table.div(table.sum(1).astype(float), axis=0).plot(kind='bar', stacked=True)\n", | |
| "plt.title('Stacked Bar Chart of Marital Status vs Purchase')\n", | |
| "plt.xlabel('Marital Status')\n", | |
| "plt.ylabel('Proportion of Customers')\n", | |
| "plt.savefig('mariral_vs_pur_stack')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The marital status does not seem a strong predictor for the outcome variable." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The following lines create a bar chart comparing education and purchase." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 45, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x1166fb9b0>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "table=pd.crosstab(data.education,data.y)\n", | |
| "table.div(table.sum(1).astype(float), axis=0).plot(kind='bar', stacked=True)\n", | |
| "plt.title('Stacked Bar Chart of Education vs Purchase')\n", | |
| "plt.xlabel('Education')\n", | |
| "plt.ylabel('Proportion of Customers')\n", | |
| "plt.savefig('edu_vs_pur_stack')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Education seems a good predictor of the outcome variable." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Now, let's have a look if the day of the purchase has an impact on our depended variable y." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 46, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEeCAYAAACQfIJ4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3XmcXFWZ//FPJyGAJMAwCChhETBfZ1AJNMoaEvZ9GQZkcUERcQmDOOE3qKBEQGUTBwURwyCKgEKUnUALYZNVegKCwAMEBBlRCQhhk5ikf3+cU3TR3K6+SXf1Lbq/79erX1116txbT52k71PnnHvPbevq6sLMzKynEVUHYGZmrckJwszMCjlBmJlZIScIMzMr5ARhZmaFnCDMzKzQqKoDsOaQtDYwB7i/rrgNOD0izh2g9zgPeCAiTh2I/S3G+3YBDwAL64rviYhDBjOOwSLpaOCzwA0R8akl3Md5wPbAs7loNHAv8J8R8eeBiLPBey8PzARWBL4eEb/M5Zvk8pUjYlEuuxD491z2Ui47E3glIv5rCd//D8A+EXFPPz/KsOMEMbS9FhETak8krQ48IOmeiPhdhXENhK0jYm7VQQySTwMHRsRv+rmf79aSuaQ24CvAtZLaI2Jh4037ZQKwakSs16P8t8Ai4IPAvZJGAdsANwE7AZfketuSEqQNMieIYSQi/k/So8B4SRuRvlXtBiDpk7Xn+dvmSsC6wFXA8cD3gS2ABcBlwNF5t5tLuh1YlfSt/sCIeEXSwaQ/6tF5XydGxFmSVgN+Cqyct786Ir6WY/g08AXS0OdzwGER8fDifEZJrwOXAxsAHwVeAU4H/hkYCXyv1oOSdFyuMxe4Fdg4Iib37BnVP89J9gxgTWAp4OcR8a3cY7sBuAbYJH/moyPiF/nAdzKwW26/24EpwO+A/4iIjvw+0/P7nF73eX4BjAP+R9LXgduAs4C1ST3Cn0TEKfn9bwUeyq9NiohnemuniOgCvpX/3bcnJYqvAnsBywDLAUeS/q0f7ivOXL4XcGxu53nAfwIvAucCq0u6F9gsIl7LMSySdB0wmdSb2TK3ycXAHsAlub1XzZ+71/8jkkYDJwGT8vvPBg6PiHl18Y3J/z53RMRRvbWNdfMcxDAiaTNgPeCuEtXfERHr5z+k40gHjX8hfRvcgvSHCLA6sB0wnnQg2zv/IX4G2CUiNgT2Ix0gyeWPR8RGwETgvZJWkDQJOAiYmLc5GfhVg/hulHRv3c8quXw0cGVEiHTQmQF8OSLac8xHStpU0t6koYwJpAPTv5ZoE4DzgXPz/j4MbCfpI/m1dYDrIuLDwFF1n/kLQDspab0fGAt8hHSgPwTeGIbZE/hJ/ZtFxH7An4CPRsQvgAuAGyPiA6R/h49J2j9XHwccHxHjGyWHHu4DPiBpLdK/46SI+CDpC8BxOZH0Gaek9wE/BP49b/91UqJ+Jm87JyIm1JJDnZmkBAGwO+kLyTXATpJGknoPHRGxoI//I18mJd/2iNggt9mJde+zAtBB+kLi5FCSexBD27L5Wxukf+u5pAPNHyX1tW39cMZ2pLHqhaRx/0nwRq/jsoh4NT9/AFglIl6WtBuwq6T3kg7CY/K+rgWukbQmcD3p4P2ipF1Jyev2uthWkrRSRDxfEF+jIaZb8+/xpF7QuXX7XBbYEFgf+FXdOPePgCMaNYik5fJnX0nS8bl4TP58dwP/IB3cAP6X1IuA1H7n1x0c98v7WxE4VtI7gX2AqyLihT7efwtgB4DcbucBOwN3kg6QdzT6DAW6gFcj4klJBwEflbQesCnd/2bnlYhzG9IcyeM5tlmS/kpKjI3W87kO+G9JI0gJYqeIeEbSk8DGeb9X57q9/h8h9c5WBLbPr40G/lr3PueT2ud75ZrFwAliqHvTHEQPXaQhiprRPV5/ue7xAur+yCWtAbyan/6j5z4ljSMdqH5ESjQzSH/ARMRvJb2HdNDcBrg7D02MJB1Ej8rvMQJ4N/C3ch+1MPaRwAs95mFWJQ17HM+bP//8np+j7nmtbUbm8s3rkuLKwN9JQ2bza5OtPfbRs/1WBUbkA+ElwMeAA0nDTo2M6BFXrWyp/Pj1iFjQxz7ekOch2oEz8pDj5cB3Sd+0byb1HIiIF0rEWTQaUYttfsFr5H0/K+lxYG9gQS3BkJLClqSE/P9yWaP/IyOBL0bEzPzaGFKvt+YEYGtSr+M/eovH3sxDTMPXs8D7JS2Tx8h3b1D3euAgSSMkLU064E9qUH/jvP8TIuI6cnKQNFLSicDXIuIy4IvA70nf9DuAAyS9K+/jc6Qx/f4I4O+SPpbffw3SPEk76QD0EUn/lA80n6jb7tn8GWoJYCJAHs++kzS2XusB3EYacmnkeuBASUvn9zoLOCC/diZwOClh3N3ww6Tezp3kA7SkFXLcv+7j/d8iD998HZgbEbcAW5HOBDuNlBxqSbumrzhnATtIWifvfxtgDcoNZ84EvkYaXqq5Cvg48JeIqJ151ej/yHXAYZJG5zaeDny7bn93k4b69pW0Q4mYDCeI4az2LfFh0pDM/Q3qfoP0LfA+0uTfNRHRaH6gA3gaCEmzSRO6z5KGB/4bmJCHo+4BngAuyonkJODXkn5H+qa6dx4DXyIRMZ908D4k77ODlJxui4ibSJPXvyEdPJaq2/T7wLskBWnM/6a61w4ENpV0P+ngd1FEXNBHKGcDnfnnftK4/PdyjPeRvgH/sOTH+iiwbX7/u4FfkoaAyvhSnq+ZTfp3XBPYJb92EbCypAdznC+Thm/GlokzIh4kHYB/lf9tTwR2j4gXS8Q1k3QmU32CuAdYje7hJfr4P3I88If8uR4k9bSm9ojx2RzjuZL+qURcw16bl/s2A0n7kM6ImTzI77suKQGpNmzVit4ucdrAcg/CrCL5NNvbgCNb+aD7donTBp57EGZmVsg9CDMzK9S001wlLUW6mGZt0rnznyGd7nce6ZS/B4Ap+WrKY0nnOC8AjoiIu/O52G+p26x4zczszZrZg9gFGBURm5OuxP0mcBpwTERMJJ1lsGc+/3oSaXmC/Umn01FUt4mxmplZD828UO4RYFQ+J3l50gVVm5JOrYR0atsOpHPVO/Kpak9JGpWv2GwvqHtpb2/W2dnpyRQzsyXQ3t7e8wJMoLkJ4mXS8NLDpKtMdwO2qjuv/SXS+ijLkxbdokd5W0FdMzMbJM1MEF8iLVz2lXwF6yzevJzDWOAF0qqPYwvKFxWUNdTe3t7fmPuts7OzJeJoBW6Lbm6Lbm6Lbq3QFp2dnb2+1sw5iL+R1rwBeJ50pepsSZNz2c6kK3hvA3bMyzisSbqUf24vdc3MbJA0swfxXdIl7beSeg5fJV0+Pz2v3f4QMCMiFuY6d5ASVm0hsKk96zYxVjMz66FpCSIiXiated/TWxZ5i4hpwLQeZY8U1TUzs8HhC+XMzKyQE4SZmRVygjAzs0JOEGZmVsi3HLVCu0+9vN/7mHbguAGIxMyq4h6EmVkLmTp1KjfddBMAc+bM4dBDD60sFvcgzPrg3pQNpn333ZeLLrqIyZMnM2PGDPbZZ5/KYnEPwsyshWyyySbMmTOH559/nttuu42tt966slicIMzMWkhbWxt77LEHJ5xwAltssQVLLbVUZbF4iMnMrMXsvffeTJ48mcsv7//wZn+4B2Fm1mIWLlxIe3s76667bqVxOEGYmbWQjo4ODjnkEA4//PCqQ/EQk5lZK9lhhx3YYYcdqg4DcA/CzMx64QRhZmaFnCDMzKyQE4SZmRXyJLWZ2RIYiCVYALjw6VLVrvzOng1fX7RoEdOmTSMiGD16NCeccAJrrbVWv0JzgjCz0rwuVeu6/vrrmT9/Pr/4xS+49957OfHEEznrrLP6tc+mJQhJnwQ+mZ8uA0wAJgOnAwuAjoj4hqQRwA+ADYDXgUMi4jFJm/as26xYzcze7jo7O5k4cSIAEyZM4IEHHuj3Pps2BxER50XE5IiYDHQChwM/BA4EtgQ2kbQhsBewTERsBnwZ+E7eRVFdMzMr8PLLLzNmzJg3no8cOZIFCxb0a59Nn6SWtDGwPvBzYOmImBMRXcB1wHakBHAtQETcCWwsafle6pqZWYExY8bwyiuvvPF80aJFjBrVv0GiwZiD+CrwDWB5YF5d+UvAOrn8xbryhQ3qNtTZ2dnfWAdEq8TRCtwW3dwW3dwWi6+vNltxxRW59NJLWXXVVXn00UdZbbXV+t3OTU0QklYEFBE35l7B2LqXxwIvAO/oUT6ClByK6jbU3t7er3gHagKuv3G0hJJnVvTFbdHNbdHNbbH4+mqzDTfckGnTpnHKKafQ1dXFt7/97VKL/TVKIs3uQWwF3AAQEfMkzZe0LvA4sCOpZzEO2B24OE9M39+grpnZkDGQXyhHjBjBcccdNyD7qml2ghDpAF/zOeACYCTpzKS7JP0W2F7S7UAb8Kne6jY5VjMzq9PUBBERp/R4fiewaY+yRaRk0HPbt9Q1M7PB46U2zMyskBOEmZkVcoIwM7NCThBmZlbIi/WZmTXBsh++ts86Jz0GPHZOqf1dvF+5hffuu+8+Tj31VM4///xS9RtxgjAzGyKmT5/OFVdcwbLLLjsg+/MQk5nZELHmmmvy/e9/f8D25wRhZjZE7Ljjjv1eoK+eE4SZmRVygjAzs0JOEGZmVshnMZmZNcFrd+/UZ51m3B5g3LhxXHzxxQOyL/cgzMyskBOEmZkVcoIwM7NCThBmZlbICcLMzAo5QZiZWSEnCDMzK9TU6yAkfQXYAxgN/AC4GTgP6AIeAKZExCJJxwK7AguAIyLibknrFdVtZrxmZtatVA9C0nKSPiipTdJyJbeZDGwObAFMAtYATgOOiYiJQBuwp6SN8uubAPsDZ+ZdvKVu6U9lZmb91meCkLQtcB9wObAa8AdJO5TY947A/cClwJXAVUA7qRcBMBPYDtgS6IiIroh4Chgl6Z291DUzs0FSZojpW6SD+MyIeEbSJOAioKOP7VYG1gJ2A94DXAGMiIiu/PpLwArA8sBzddvVytsK6jbU2dlZ4uM0X6vE0QrcFt3cFt3cFt1auS3KJIgREfFnSQBExIO1x314Dng4IuYDIenvpGGmmrHAC8C8/Lhn+aKCsob6vabJhU/3b/uBiqMVuC26uS26uS26DZG2aJSgysxBPC1pN6BL0oqSjgaeKrHdb4Cd8rzFu4HlgBvy3ATAzsCtwG3AjpJGSFqTlJDmArML6pqZ2SAp04P4LHA66dv/HGAWcGhfG0XEVZK2Au4mJaIpwBPAdEmjgYeAGRGxUNKtwB119QCm9qy7OB/MzMz6p88EERF/BQ4AkLQCMC4inimz84j4r4LiSQX1pgHTepQ9UlTXzMwGR58JQtIhpNNVjwJmAy9J+mVEHNPs4MzMrDpl5iA+DxxJ6kVcDnwA6PtOGGZm9rZW6kK5iHge2AW4OiIWAMs2NSozM6tcmQTxe0lXAesA10u6GLinuWGZmVnVyiSIg4GTgU3zNQ3n5zIzMxvCypzmuhJp2YtJktqAkcC+wCeaGZiZmVWrTA/iV8AE4GOki9324M1XOZuZ2RBUJkGsHBEHkRbc+xUwGVi/mUGZmVn1yiSIv+XfAWwQES8CSzUvJDMzawVl5iBmSbqEdC1ER75/w9+bG5aZmVWtzx5ERBwNfDkiniRdLBfAvzU7MDMzq1aZGwYtBYyX9HHg/aRlvLdvdmBmZlatMkNMlwDvIq2oWruBTxfw02YFZWZm1SuTIN4XEe9reiRmZtZSypzFNCffyMfMzIaRXnsQkm4kDSWtAtwv6T5gAdAGdEXENoMTopmZVaHRENO0wQrCzMxaT69DTBFxc0TcDDwG7JIfPwV8Gnh4kOIzM7OKlJmD+BnweH78J+BW0oquZmY2hJVazTUizgaIiNeB6ZI+X2bnkv4XmJefPgGcDZxOmsvoiIhvSBoB/ADYAHgdOCQiHpO0ac+6i/G5zMysn8r0IF6TtHPtiaRtgVf62kjSMkBbREzOP58CfggcCGwJbCJpQ2AvYJmI2Az4MvCdvIuiumZmNkjK9CA+C1wgqTas9EfS0t992QB4h6SO/D7TgKUjYg6ApOuA7UgX4V0LEBF3StpY0vK91J1d9oOZmVn/lEkQm0XE+yX9M/CPiJjX5xbJq8CpwDnAe4GZwAt1r79Euo3p8sCLdeULc9m8groNdXZ2lgytuVoljlbgtujmtujmtujWym1RJkEcBvwwIp5bzH0/AjwWEV3AI5JeJN2drmYsKWG8Iz+uGUFKDmML6jbU3t6+mCH2cOHT/dt+oOJoBW6Lbm6Lbm6LbkOkLRolqDIJ4o+SZgF3Aa/VCiPiuD62Oxj4APAFSe8mJYJXJK1LOitqR+AbwDhgd+DiPDF9f0TMkzS/oK6ZmQ2SMgnizrrHbYux7/8BzpP0G9IV2QeTblV6Aem+1h0RcZek3wLbS7o97/9TefvP9ay7GO9tZmb91GeCWNLTSyNiPukspJ427VFvESkZ9Nz+zp51zcxs8PSZICQtonuZ75o/RcQazQnJzMxaQZkexBvXSuSbB+0FbNbMoMzMrHplLpR7Q0T8IyIuAbySq5nZEFdmiOkTdU/bgPWB+U2LyMzMWkKZs5i2rnvcBcwF9mtOOGZm1ioaJghJI4Ejl+AiOTMze5vrdQ5C0mTS8t5/lfSwpA8MWlRmZla5RpPUpwAfB5YDTgNOGpSIzMysJTQaYloqIjry4x9J+uJgBGRmZq2hUQ9iUY/nrzczEDMzay2NehCjJa1B9/pLb3oeEU81OzgzM6tOowQxBriZNy/Qd0v+3UWJ+zOYmdnbV68JIiLWHsQ4zMysxSzWUhtmZjZ8OEGYmVmhRhfKHZF/f3DwwjEzs1bRaJL6MElXARdK2pked5PzWUxmZkNbowRxAXAd6Z7Rt/R4zWcxmZkNcY3OYjoWOFbSWRHx+UGMyczMWkCZ5b6nSPo8sG2uPws4I99LuiFJqwCdwPbAAuA8Uu/jAWBKRCySdCywa379iIi4W9J6RXUX87OZmVk/lDmL6SRgR+CnwI9Jd5M7ra+N8u1JzwZey0WnAcdExETSfMaekjYCJgGbAPsDZ/ZWt+wHMjOzgVGmB7EDsGHtG7ykq4H7S2x3KvBD4Cv5eTvpymyAmXm/AXRERBfwlKRRkt7ZS91LS7ynmZkNkDIJYlT+mV/3fGGjDSR9Eng2Iq6TVEsQbTkRALwErAAsD9TfjKhWXlS3T52dnWWqNV2rxNEK3Bbd3Bbd3BbdWrktyiSIC4CbJF2Unx8AXNjHNgcDXZK2AyaQhqdWqXt9LPACMC8/7lm+qKCsT+3t7WWq9e7Cp/u3/UDF0QrcFt3cFt3cFt2GSFs0SlB9zkFExLeA44E1gbWBb+ayRttsFRGTImIycC/wCWBmvksdwM7ArcBtwI6SRkhaExgREXOB2QV1zcxsEJXpQRARM0lzAf0xFZguaTTwEDAjIhZKuhW4g5SspvRWt5/vbWZmi6lUguiP3IuomVTw+jRgWo+yR4rqmpnZ4PFifWZmVqjPHoSka0jXP1wWEf9ofkhmZtYKyvQgTgR2Ah6VdKakDzU5JjMzawF99iAi4hbgFknLAvsAv5Q0DzgHOCsiXm9yjGZmVoFScxD5lNMzgG8B1wKHA6sCVzQtMjMzq1SZOYgngcdJ8xCHRcRrufwm4J6mRmdmZpUp04PYBtgvIn4KkFdaJSIWRcRGzQzOzMyqUyZB7EoaVoK0XMaVkg5tXkhmZtYKyiSIQ4GJABHxJGml1f9oZlBmZla9MgliKaD+TKX5pBv5mJnZEFZmqY3LgFmSLs7P98ZnL5mZDXllVnM9CvgeIGAd4HsRcUyzAzMzs2qVXYvpIeBiUm/ieUlbNS8kMzNrBWWugzgT2B2YU1fcRTr91czMhqiy96RW7QI5MzMbHsoMMT0OtDU7EDMzay1lehDPAw9Kuh34e60wIg5uWlRmZla5MgniWrqvpDYzs2GizHLfP5G0NrA+cB2wRkQ80ezAzMysWmXOYtoPOAZYFtgcuEPSkRHxsz62GwlMJ10/0QV8jjREdV5+/gAwJSIWSTqWtObTAuCIiLg7Lwr4lrpL8iHNzGzxlZmkPoqUGF6KiL8CGwJfKbHd7gARsQUpwXwTOA04JiImkia+95S0ETAJ2ATYHzgzb/+WumU/lJmZ9V+ZBLEwIl6qPYmIZ4A+v8lHxGWkhf4A1gJeIC30d3MumwlsB2wJdEREV0Q8BYyS9M5e6pqZ2SApM0n9e0mHAUtJmgB8Abi3zM4jYoGknwD/Rrpd6fYRUVvo7yVgBWB54Lm6zWrlbQV1G+rs7CwTVtO1ShytwG3RzW3RzW3RrZXbokyCmEIaInoNOBeYBUwt+wYRcZCko4C7SPMYNWNJvYp5+XHP8kUFZQ21t7eXDavYhU/3b/uBiqMVuC26uS26uS26DZG2aJSgypzF9AppzqHMvMMbJH0cGBcR3wZeJR3w75E0OSJuAnYGbgQeA06WdCowDhgREXMlzS6oa2Zmg6TMWUyLeOv9H56JiHF9bPor4MeSbiHdU+II0qJ/0yWNzo9nRMRCSbcCd5DmRKbk7af2rFvyM5mZ2QAo04N4YyJb0lLAXsBmJbZ7BfhIwUuTCupOA6b1KHukqK6ZmQ2Osst9AxAR/4iIS/BKrmZmQ16ZIaZP1D1tI11RPb9pEZmZWUsocxbT1nWPu4C5wH7NCcfMzFpFmTmITw1GIGZm1lrKDDE9wVvPYoI03NQVEesMeFRmZla5MkNMFwKvkxbe+wfwUeBDwNFNjMvMzCpWJkHsGBEb1z0/XVJnRDzZrKDMzKx6ZU5zbZP0xkJ5knYjLY9hZmZDWJkexKHATyWtRpqLeBg4qKlRmZlZ5cqcxdQJrC9pZeDvEfFy88MyM7Oq9TnEJGktSb8mrZU0RtKsfAtSMzMbwsrMQZwNnAK8DPwFuAj4aTODMjOz6pVJECtHRAdAvuvbdNJNfszMbAgrkyBekzSOfLGcpC1J10WYmdkQVuYspi8BVwHrSroXWAnYt6lRmZlZ5cokiFVJV06PB0YCD0eEV3M1MxviyiSIkyPiauD3zQ7GzMxaR5kEMUfSucBdwGu1wojwmUxmZkNYmQTxHGnl1k3ryrrwqa5mZkNarwlC0uoR8X9Lcj+IfO/qc4G1gaWBE4AHgfNIyeUBYEpELJJ0LLArsAA4IiLulrReUd3FjcPMzJZco9Ncr6w9kDR1Mff7MeC5iJgI7AScAZwGHJPL2oA9JW0ETAI2AfYHzszbv6XuYr6/mZn1U6ME0Vb3+KOLud9LgK/V7WcB0A7cnMtmAtsBWwId+QK8p4BRkt7ZS10zMxtEjeYg6u8i19ZrrQK1Bf0kjQVmAMcAp0ZEbZ8vASuQrsh+rm7TWnlbQd0+dXZ2Lk6YTdMqcbQCt0U3t0U3t0W3Vm6LMpPUUHzL0YYkrQFcCvwgIi6UdHLdy2OBF0j3lRhbUL6ooKxP7e3tixvmm134dP+2H6g4WoHbopvbopvbotsQaYtGCapRglhf0uP58ep1j/u8F7WkVYEO4LCIuCEXz5Y0OSJuAnYGbgQeA06WdCowDhgREXMlFdU1M7NB1ChBjO/Hfr8K/BPwNUm1uYgvAt+TNBp4CJgREQsl3UpaSnwEMCXXnQpMr6/bj1jMzGwJ9Jog+nPP6Yj4Iikh9DSpoO40YFqPskeK6pqZ2eAps5qrmZkNQ04QZmZWyAnCzMwKOUGYmVkhJwgzMyvkBGFmZoWcIMzMrJAThJmZFXKCMDOzQk4QZmZWyAnCzMwKOUGYmVkhJwgzMyvkBGFmZoWcIMzMrJAThJmZFXKCMDOzQk4QZmZWyAnCzMwK9XpP6oEgaRPgpIiYLGk94DygC3gAmBIRiyQdC+wKLACOiIi7e6vbzFjNzOzNmtaDkPRfwDnAMrnoNOCYiJgItAF7StoImARsAuwPnNlb3WbFaWZmxZrZg5gD7A2cn5+3AzfnxzOBHYAAOiKiC3hK0ihJ7+yl7qVNjNWsqU567Bx47Jwl3v7i/c4awGjMymlagoiIX0pau66oLScCgJeAFYDlgefq6tTKi+r2qbOzs18xD5RWiaMVuC0GxlBrx6H2efqjlduiqXMQPdTPIYwFXgDm5cc9y4vq9qm9vb1/EV74dP+2H6g4WoHbotsAtUV/tEw7DkBbnNSPnhS0UG9qiPyNNEpQg5kgZkuaHBE3ATsDNwKPASdLOhUYB4yIiLmSiuqamQ0prT70OJgJYiowXdJo4CFgRkQslHQrcAdpwnxKb3UHMU4zM6PJCSIi/gBsmh8/QjpjqWedacC0HmWFdd8O+vuNAFqoC91PbguztzdfKGdmZoWcIMzMrJAThJmZFXKCMDOzQk4QZmZWyAnCzMwKOUGYmVkhJwgzMyvkBGFmZoWcIMzMrJAThJmZFXKCMDOzQk4QZmZWyAnCzMwKOUGYmVkhJwgzMyvkBGFmZoWcIMzMrJAThJmZFWrqPan7Q9II4AfABsDrwCER8Vi1UZmZDR+t3IPYC1gmIjYDvgx8p+J4zMyGlVZOEFsC1wJExJ3AxtWGY2Y2vLR1dXVVHUMhSecAv4yImfn5U8A6EbGgqH5nZ2drfhAzsxbX3t7eVlTesnMQwDxgbN3zEb0lB+j9A5qZ2ZJp5SGm24BdACRtCtxfbThmZsNLK/cgLgW2l3Q70AZ8quJ4zMyGlZadgzAzs2q18hCTmZlVyAnCzMwKOUGYmVkhJwgzMyvkBGFmZoVa+TTXlibpjIg4TNIdQO1UsDagKyI2rzC0Skn6BPAVYGm622OdaqMafJK26lkWEbdUEUvVJI0EPgmsBcwCHoiIuZUGNcgk/Zju48SbRMTBgxxOaU4QS+74/PtTwGtVBtJijgJ2B/5YdSAV+3z+3QasD/wBGJYJAjgb+BOwPfBb4Kfki2CHkZ/n358HbiddCPwh4MOVRVRGV1eXf/rxM378+N9UHUMr/YwfP/7KqmNotZ/x48ePHj9+/GVVx1Hh578x/56Vf99WdUwVtkVHj+e/rjqmRj/uQSwhSStExIvAK5K+CwSwCCAiflRpcNV6VdJM4F5ylzoivlptSJUbBQy7YbY6oyStDCBpLPnvZJgaI2kbUk9qc2CZiuNpyAliyV1QPs/FAAAF7ElEQVRNWpL8CeBvwCrVhtMyrqk6gFYg6RlSgmwj/Z2dXm1ElTqGNKTyLuBO4Ihqw6nUwcApwHuBB4GDqg2nMS+1sYQk3QiMIf1DP1T30nCfpB4FfBb4V+AR4KyImF9tVNYKJL0TmBsRw/qgI2k86bhxH/B/rdwe7kEsue2A1YGzgC9UHEsrORt4Afg1MAk4B/hEpRFVQNKupAnJd9TKImKb6iKqTv4y1VX3fDi3xWHAvwErAeeREsVhVcbUiBPEEoqIhcBTwK5Vx9Ji3hsRtVM8L8ur8Q5HxwNfAv5cdSAt4HP5dxvQDkyoMJaq7Q9sBdwQEadL+m3VATXiBGEDbRlJ74iIVyW9AxhZdUAVeT4ibq46iFYQEVH39GFJn64smOqNIPWmaj2q1yuMpU9OEDbQ/hu4V9LvSfMQx1Ycz6CSdGh++LqkHwGddJ/NNSzPbqtrE4B3A8tVFUsL+DlwM7C2pGuAyyqOpyEvtWED7WXgYdLtYp9i+M0/vCv/7Ag8DawKrAa8p8qgKvYDUhusRrqo9PFqw6nUQcAzwJHAURFxasXxNOQehA20U4BDSRPVw9HTwCHAK8DOuWwEsBRpCZJhIw8l9dYWw1JEtEv6F9JqA1+U9JeI2LvquHrjBGED7ffDfOz9Z8D1wNHAN3PZIuCvlUVUnZ8BNwBfxW0BgKQJpDMgt81FD1cYTp98HYQNKEkHkc5aeePakFZejMxsMEl6kTTEdnREtPxFpe5B2EA7HDiZ4TvEZNbIP5NWYNhR0lTgrxFxQMUx9coJwgbanyPiF1UHYdaiViRdYLsW6WyuJ6sNpzEnCBtor0m6FpiNF+sz6+la0qmt34yI31cdTF+cIGygXVl1AGatKiI2rjqGxeFJajMzK+QL5czMrJAThJmZFfIchA0LktYm3Z/iwVy0LPA74LCI+EuT3nN5YBbp7+wjEfFILn80P5+dn88ANoiI9+bny5FWgV0lIhbrfueSbgKmRcRNA/U5bPhyD8KGkz9FxISImAC8D3gMmNHE95sAzM/v+Uhd+Q2k200iaWSuN09S7bakmwF3Lm5yMBto7kHYsBQRXZKOBf4i6YOknsVZwPtJC+wFsDdpmYiRtVN1Jf0YuLb+Wg9JqwL/A6wJLMjb/C9wLrCapCsiYo+6t58F7AWcCWyS684hLfB3FjCRdMMlJO0EHEdav+gJ4DMR8ZykDwHfJd2QaC7w2Yh4oi6mVfL7HB0Rlw9Io9mw4x6EDVv5VqiPknoTm5O+7W8GrEcagtoF+DFwgKS2PPSzLW9dovn7wKyI+CCwDykxtJEWqrunR3IAuDG/H6SkcB3QkR9DuqFMR75F54nAjhGxYa53kqTRpDv1HRgRGwHfAabX7X8F0j3Tpzk5WH+4B2HDXRfwWkTcIuk5SVNICeO9wJiIeFzSH0gH7TWBqyOi501etgE+A5Dr30XqGcwresOIeFbSC5LGkZLCvsBfgPMlLU1aGvw+0t0K1wRulATp5kvPA+OBdYErcjnA8nVvcTZpDuNXS9QiZpl7EDZs5W/iAh6UtAdwAfAqqddwC6kXAKlHcGD+Oa9gVz3/jtro+8vXLFIPZUxE/DH3Zn4HHADclm9kPxL4Td28yYdIPZSRwON15e2k9X1qTgKeJd0T22yJOUHYsCRpBPAN0mTwHNISzBdHxI9J3763ovt2qTNIQ0urRcRdBbubBXw673cdYAvgjj5CmAV8kTRhXfNrYGr+DXAXsJmk8fn510j323gYWEnSxFx+MHBh3X5mA18AjpW0eh9xmPXKCcKGk3dLulfSvaQhnNVJvQJIY/gHSJpNGpq5k3wXuHw20R3ARb3s93BgG0n3k+YnDomIZ/qI5WbSUFFHXVkHaZL81/l9/0w6+F+c970RMDUPce0LfEfS70h3KXvTfZ4j4lHSJPgZfcRh1isvtWHWgKQ20u1T7wC2zQdts2HBPQizxj4E/AH4kZODDTfuQZiZWSH3IMzMrJAThJmZFXKCMDOzQk4QZmZWyAnCzMwKOUGYmVmh/w9iJEjoaAqeGAAAAABJRU5ErkJggg==\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x11938f5c0>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "pd.crosstab(data.day_of_week,data.y).plot(kind='bar')\n", | |
| "plt.title('Purchase Frequency for Day of Week')\n", | |
| "plt.xlabel('Day of Week')\n", | |
| "plt.ylabel('Frequency of Purchase')\n", | |
| "plt.savefig('pur_dayofweek_bar')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Day of week may not be a good predictor of the outcome." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "After looking at the day of order, let's have a look at the month." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 47, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x11643d160>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "pd.crosstab(data.month,data.y).plot(kind='bar')\n", | |
| "plt.title('Purchase Frequency for Month')\n", | |
| "plt.xlabel('Month')\n", | |
| "plt.ylabel('Frequency of Purchase')\n", | |
| "plt.savefig('pur_fre_month_bar')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Month might be a good predictor of the outcome variable." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The following lines will create a histogram showing which age the people have with the highest frequency of purchase." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 48, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x116538f28>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "data.age.hist()\n", | |
| "plt.title('Histogram of Age')\n", | |
| "plt.xlabel('Age')\n", | |
| "plt.ylabel('Frequency')\n", | |
| "plt.savefig('hist_age')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Most of the customers of the bank in this dataset are in the age range of 30–40." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Last but not least we have a look at the purchase frequency for the previous outcome (from the last campaign)." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 49, | |
| "metadata": { | |
| "hidden": true, | |
| "scrolled": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x116538a58>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "pd.crosstab(data.poutcome,data.y).plot(kind='bar')\n", | |
| "plt.title('Purchase Frequency for Poutcome')\n", | |
| "plt.xlabel('Poutcome')\n", | |
| "plt.ylabel('Frequency of Purchase')\n", | |
| "plt.savefig('pur_fre_pout_bar')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Poutcome (previous outcome) seems to be a good predictor of the outcome variable." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Create dummy variables ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "That are variables with only two values, zero and one. They are created by categorial variables. It's hard to analyse categorial variables, that's why we create for each possible value of a categorial variable a new (dummy) variable, which then has only the possible values of one and zero." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 50, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "cat_vars=['job','marital','education','default','housing','loan','contact','month','day_of_week','poutcome']\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", | |
| "cat_vars=['job','marital','education','default','housing','loan','contact','month','day_of_week','poutcome']\n", | |
| "data_vars=data.columns.values.tolist()\n", | |
| "to_keep=[i for i in data_vars if i not in cat_vars]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Our final data columns will be:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 51, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "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', 'poutcome_failure', 'poutcome_nonexistent',\n", | |
| " 'poutcome_success'], dtype=object)" | |
| ] | |
| }, | |
| "execution_count": 51, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data_final=data[to_keep]\n", | |
| "data_final.columns.values" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 52, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "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]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Feature Selection ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "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.\n", | |
| "\n", | |
| "Let's do some feature selection:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 53, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/validation.py:578: 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" | |
| ] | |
| }, | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "[False False False False True False False False True False False True\n", | |
| " False False False True False True True False False False False False\n", | |
| " False False True False False False False False True False False False\n", | |
| " False False False False False True False True True False False False\n", | |
| " True True True False False False True False False False True True\n", | |
| " True]\n", | |
| "[35 33 13 42 1 17 21 23 1 30 12 1 28 41 38 1 31 1 1 14 24 40 7 8\n", | |
| " 9 43 1 2 39 3 4 5 1 20 44 36 15 37 22 19 16 1 18 1 1 25 27 26\n", | |
| " 1 1 1 32 10 11 1 34 29 6 1 1 1]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from sklearn import datasets\n", | |
| "from sklearn.feature_selection import RFE\n", | |
| "from sklearn.linear_model import LogisticRegression\n", | |
| "logreg = LogisticRegression()\n", | |
| "rfe = RFE(logreg, 18)\n", | |
| "rfe = rfe.fit(data_final[X], data_final[y] )\n", | |
| "print(rfe.support_)\n", | |
| "print(rfe.ranking_)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The RFE has helped us select the following features: “previous”, “euribor3m”, “job_blue-collar”, “job_retired”, “job_services”, “job_student”, “default_no”, “month_aug”, “month_dec”, “month_jul”, “month_nov”, “month_oct”, “month_sep”, “day_of_week_fri”, “day_of_week_wed”, “poutcome_failure”, “poutcome_nonexistent”, “poutcome_success”." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 54, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "cols=[\"previous\", \"euribor3m\", \"job_blue-collar\", \"job_retired\", \"job_services\", \"job_student\", \"default_no\", \n", | |
| " \"month_aug\", \"month_dec\", \"month_jul\", \"month_nov\", \"month_oct\", \"month_sep\", \"day_of_week_fri\", \"day_of_week_wed\", \n", | |
| " \"poutcome_failure\", \"poutcome_nonexistent\", \"poutcome_success\"] \n", | |
| "X=data_final[cols]\n", | |
| "y=data_final['y']" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Implementing the model ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 55, | |
| "metadata": { | |
| "hidden": true, | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Optimization terminated successfully.\n", | |
| " Current function value: 0.287116\n", | |
| " Iterations 7\n", | |
| " Logit Regression Results \n", | |
| "==============================================================================\n", | |
| "Dep. Variable: y No. Observations: 41188\n", | |
| "Model: Logit Df Residuals: 41170\n", | |
| "Method: MLE Df Model: 17\n", | |
| "Date: Sat, 03 Mar 2018 Pseudo R-squ.: 0.1844\n", | |
| "Time: 09:01:56 Log-Likelihood: -11826.\n", | |
| "converged: True LL-Null: -14499.\n", | |
| " LLR p-value: 0.000\n", | |
| "========================================================================================\n", | |
| " coef std err z P>|z| [0.025 0.975]\n", | |
| "----------------------------------------------------------------------------------------\n", | |
| "previous 0.2385 0.051 4.642 0.000 0.138 0.339\n", | |
| "euribor3m -0.4981 0.012 -40.386 0.000 -0.522 -0.474\n", | |
| "job_blue-collar -0.3222 0.049 -6.549 0.000 -0.419 -0.226\n", | |
| "job_retired 0.3821 0.069 5.552 0.000 0.247 0.517\n", | |
| "job_services -0.2423 0.065 -3.701 0.000 -0.371 -0.114\n", | |
| "job_student 0.3540 0.086 4.107 0.000 0.185 0.523\n", | |
| "default_no 0.3312 0.056 5.943 0.000 0.222 0.440\n", | |
| "month_aug 0.4272 0.055 7.770 0.000 0.319 0.535\n", | |
| "month_dec 0.8061 0.163 4.948 0.000 0.487 1.125\n", | |
| "month_jul 0.7319 0.056 13.094 0.000 0.622 0.841\n", | |
| "month_nov 0.2706 0.064 4.249 0.000 0.146 0.395\n", | |
| "month_oct 0.8043 0.087 9.258 0.000 0.634 0.975\n", | |
| "month_sep 0.5906 0.096 6.160 0.000 0.403 0.778\n", | |
| "day_of_week_fri -0.0044 0.046 -0.097 0.923 -0.094 0.085\n", | |
| "day_of_week_wed 0.1226 0.044 2.771 0.006 0.036 0.209\n", | |
| "poutcome_failure -1.8438 0.100 -18.412 0.000 -2.040 -1.647\n", | |
| "poutcome_nonexistent -1.1344 0.070 -16.253 0.000 -1.271 -0.998\n", | |
| "poutcome_success 0.0912 0.114 0.803 0.422 -0.131 0.314\n", | |
| "========================================================================================\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "import statsmodels.api as sm\n", | |
| "\n", | |
| "# Workaround, because of error inside of the official released package\n", | |
| "from scipy import stats\n", | |
| "stats.chisqprob = lambda chisq, df: stats.chi2.sf(chisq, df)\n", | |
| "# End of workaround\n", | |
| "\n", | |
| "logit_model=sm.Logit(y,X)\n", | |
| "result=logit_model.fit()\n", | |
| "print(result.summary())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The p-value for each term tests the null hypothesis that the coefficient is equal to zero (no effect). A low p-value (< 0.05) indicates that you can reject the null hypothesis. In other words, a predictor that has a low p-value is likely to be a meaningful addition to your model because changes in the predictor's value are related to changes in the response variable.\n", | |
| "\n", | |
| "Conversely, a larger (insignificant) p-value suggests that changes in the predictor are not associated with changes in the response.\n", | |
| "\n", | |
| "The p-values for most of the variables are smaller than 0.05, therefore, most of them are significant to the model." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Logistic Regression Model Fitting ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 56, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", | |
| " intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n", | |
| " penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n", | |
| " verbose=0, warm_start=False)" | |
| ] | |
| }, | |
| "execution_count": 56, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "from sklearn.linear_model import LogisticRegression\n", | |
| "from sklearn import metrics\n", | |
| "\n", | |
| "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n", | |
| "logreg = LogisticRegression()\n", | |
| "logreg.fit(X_train, y_train)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "We used the LogisticRegression() without any parameters. Here are the default values, which are used.\n", | |
| "\n", | |
| "*LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True, intercept_scaling=1, max_iter=100, multi_class=’ovr’, n_jobs=1, penalty=’l2', random_state=None, solver=’liblinear’, tol=0.0001,\n", | |
| "verbose=0, warm_start=False)*" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "**Predicting the test set results and calculating the accuracy**" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 57, | |
| "metadata": { | |
| "hidden": true, | |
| "scrolled": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Accuracy of logistic regression classifier on test set: 0.90\n" | |
| ] | |
| } | |
| ], | |
| "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)))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Accuracy of logistic regression classifier on test set: 0.90" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Cross Validation ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "Cross validation attempts to avoid overfitting while still producing a prediction for each observation dataset. We are using 10-fold Cross-Validation to train our Logistic Regression model." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 58, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "10-fold cross validation average accuracy: 0.897\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from sklearn import model_selection\n", | |
| "from sklearn.model_selection import cross_val_score\n", | |
| "\n", | |
| "kfold = model_selection.KFold(n_splits=10, random_state=7)\n", | |
| "modelCV = LogisticRegression()\n", | |
| "scoring = 'accuracy'\n", | |
| "results = model_selection.cross_val_score(modelCV, X_train, y_train, cv=kfold, scoring=scoring)\n", | |
| "print(\"10-fold cross validation average accuracy: %.3f\" % (results.mean()))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "10-fold cross validation average accuracy: 0.897\n", | |
| "\n", | |
| "The average accuracy remains very close to the Logistic Regression model accuracy; hence, we can conclude that our model generalizes well." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Confusion Matrix ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "In the field of machine learning and specifically the problem of statistical classification, a confusion matrix, also known as an error matrix, is a specific table layout that allows visualization of the performance of an algorithm, typically a supervised learning one. Each row of the matrix represents the instances in a predicted class while each column represents the instances in an actual class (or vice versa). The name stems from the fact that it makes it easy to see if the system is confusing two classes (i.e. commonly mislabelling one as another).\n", | |
| "\n", | |
| "It is a special kind of contingency table, with two dimensions (\"actual\" and \"predicted\"), and identical sets of \"classes\" in both dimensions (each combination of dimension and class is a variable in the contingency table).\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 59, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "[[10872 109]\n", | |
| " [ 1122 254]]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from sklearn.metrics import confusion_matrix\n", | |
| "\n", | |
| "confusion_matrix = confusion_matrix(y_test, y_pred)\n", | |
| "print(confusion_matrix)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The result is telling us that we have 10872+254 correct predictions and 1122+109 incorrect predictions." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## Compute precision, recall, F-measure and support ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "To quote from Scikit Learn:\n", | |
| "\n", | |
| "The precision is the ratio **tp / (tp + fp)** where tp is the number of true positives and fp the number of false positives. The precision is intuitively the ability of the classifier to not label a sample as positive if it is negative.\n", | |
| "\n", | |
| "The recall is the ratio **tp / (tp + fn)** where tp is the number of true positives and fn the number of false negatives. The recall is intuitively the ability of the classifier to find all the positive samples.\n", | |
| "\n", | |
| "The F-beta score can be interpreted as a weighted harmonic mean of the precision and recall, where an F-beta score reaches its best value at 1 and worst score at 0.\n", | |
| "The F-beta score weights the recall more than the precision by a factor of beta. **beta = 1.0** means recall and precision are equally important.\n", | |
| "\n", | |
| "The support is the number of occurrences of each class in y_test." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 60, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| " precision recall f1-score support\n", | |
| "\n", | |
| " 0 0.91 0.99 0.95 10981\n", | |
| " 1 0.70 0.18 0.29 1376\n", | |
| "\n", | |
| "avg / total 0.88 0.90 0.87 12357\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "from sklearn.metrics import classification_report\n", | |
| "\n", | |
| "print(classification_report(y_test, y_pred))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "**Interpretation:** Of the entire test set, 88% of the promoted term deposit were the term deposit that the customers liked. Of the entire test set, 90% of the customer’s preferred term deposits that were promoted." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "heading_collapsed": true | |
| }, | |
| "source": [ | |
| "## ROC Curve ##" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "source": [ | |
| "The **receiver operating characteristic (ROC)** curve is another common tool used with binary classifiers. \n", | |
| "\n", | |
| "The dotted line represents the ROC curve of a purely random classifier; a good classifier stays as far away from that line as possible (toward the top-left corner)." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 61, | |
| "metadata": { | |
| "hidden": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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Amj+mZqamvjVr36FMQabzcajjz5KZmYmd999NzU1NdTX13PPPfdw+umnM27cOJYtW8amTZv44x//SEBAACEhIfzxj3/E6XRy3333kZKSwu7duxkyZAiPPvroIT/H+++/z7hx4wCoqanh4Ycfprq6muLiYq6++mquvvpqrr32WuLj46msrGTevHk88sgj7Ny5E6fTya9+9StGjRrFxx9/zCuvvILdbsdisfD0008THx/fvJyFCxfyySefHLLsv//976SmpjYvu7GxkfT0dABOP/10li9ffkhx2LBhAxs3bmT69OnEx8fzm9/8htzcXE477TRCQkIA6NWrF1prhg8fzoQJE3jnnXe47rrrTuj3zSPGGL/4t2rVKvPI/BWmLZSvXWdyZt9hynJWt8n82tuqVat8HaHD8Ld1sXLlSvOrX/3qkGFOp9NMmjTJFBUVGWOMeemll8zf/vY3s3TpUnP33XcbY4wpLS012dnZZvfu3eaBBx4wX3/9tVm4cKH585//bBobG83y5cvNu+++a4wxZuzYscYYY95++23zz3/+02zcuNFcccUVxm63G5vNZv76178ap9N5SKbRo0eb6dOnmylTppjzzz/fLFiwwBhjzFdffdWct6GhwVx00UWmsrLSTJ061WzdutUYY8zjjz9uHnjgAbN7924zatQoY7PZjDHGXH755Wbbtm3GGGMWLVpkHn/8cfPll1+aO++809TX15v169ebVatWma1bt5orrrjCVFdXm/z8fPPVV18d8nNccsklZtOmTcYYY5YuXWruvPNOs3v3bnPaaaeZ6upqY7fbzcSJE01xcXHzz7Rq1Spz7733mu+++84YY8yGDRvMJ598YowxpqioyJxzzjnGGGOmT59uPv30U2OMMa+88or5xz/+YYwxpqyszJx33nnGGGPmzJlj6urqjDHG/Pa3vzWLFy8+ru+8sLDQXHbZZc3v33zzTfP4448fMs7SpUvNsmXLjDHGLF682Nx5551m+/bt5uKLLzbV1dWmrKzMjB8/3ixfvtwYY8z3339vbr/9do+W7/4bOe5trl8dOQQHndyRQ2NFJfkvvcz+L78Ci4XavB3EjRzRNuGEOEHl5eVERkaS7O5L/NRTT+Xxxx8nLi6O4cOHAxAfH09mZuYh01122WXMnz+fGTNmEBUVxbnnnnvU+e/YsYOhQ4cSEBBAQEAADz74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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x116a401d0>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "from sklearn.metrics import roc_auc_score\n", | |
| "from sklearn.metrics import roc_curve\n", | |
| "\n", | |
| "logit_roc_auc = roc_auc_score(y_test, logreg.predict(X_test))\n", | |
| "fpr, tpr, thresholds = roc_curve(y_test, logreg.predict_proba(X_test)[:,1])\n", | |
| "\n", | |
| "plt.figure()\n", | |
| "plt.plot(fpr, tpr, label='Logistic Regression (area = %0.2f)' % logit_roc_auc)\n", | |
| "plt.plot([0, 1], [0, 1],'r--')\n", | |
| "plt.xlim([0.0, 1.0])\n", | |
| "plt.ylim([0.0, 1.05])\n", | |
| "plt.xlabel('False Positive Rate')\n", | |
| "plt.ylabel('True Positive Rate')\n", | |
| "plt.title('Receiver operating characteristic')\n", | |
| "plt.legend(loc=\"lower right\")\n", | |
| "plt.savefig('Log_ROC')\n", | |
| "\n", | |
| "plt.show()" | |
| ] | |
| } | |
| ], | |
| "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.3" | |
| }, | |
| "toc": { | |
| "nav_menu": {}, | |
| "number_sections": true, | |
| "sideBar": true, | |
| "skip_h1_title": false, | |
| "title_cell": "Table of Contents", | |
| "title_sidebar": "Contents", | |
| "toc_cell": false, | |
| "toc_position": {}, | |
| "toc_section_display": true, | |
| "toc_window_display": false | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment