├── README.md ├── Features.py ├── .gitignore ├── AttributeRelevance.py ├── statistical_significance_of_information_value.ipynb └── telco_dataset_eda.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # Churn analysis using IV and WOE in Python 2 | 3 | Attribute relevance analysis helps in recognizing the most important variables which have the greatest impact on target variable and understanding relations and logic between the most important predictors and the target variable. 4 | 5 | Information value (IV) and weight of evidence (WOE) are simple and powerful techniques of conducting attribute relevance analysis. They provide a great framework for exploratory analysis and have been used extensively in the credit risk world for several decades. 6 | 7 | This repository contains analysis of churn in telephone service company (using IV and WOE), comparison of effect size and information value and quick tutorial how to use information value module (created for this analysis). 8 | 9 | 10 | 11 | Learn more from the article about this analysis: **[Churn Analysis Using Information Value and Weight of Evidence](https://towardsdatascience.com/churn-analysis-information-value-and-weight-of-evidence-6a35db8b9ec5)** 12 | 13 | ------ 14 | 15 | 16 | 17 | ### Contents 18 | 19 | [**Telco Customer Churn Analysis using IV and WOE**](telco_customer_churn_analysis.ipynb) - Being able to distinguish clients who are likely to churn is a key to success and enables businesses to take appropriate actions. See what is the churner profile for Telco company. 20 | 21 | [**Statistical Significance of Information Value**](statistical_significance_of_information_value.ipynb) - How differences in distribution of 'goods' and 'bads' are measured by two methods: IV & WOE and p-value & effect size? See how statistically significant are results obtained with information value technique. 22 | 23 | [**Information Value (IV) and Weight of Evidence (WOE) in Python**](iv_and_woe_in_python.ipynb) - Information value module contains all you need to conduct IV & WOE analysis. See how to use it to get the results and create insightful visualizations. -------------------------------------------------------------------------------- /Features.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import scipy.stats as stats 3 | 4 | class CategoricalFeature(): 5 | def __init__(self, df, feature): 6 | self.df = df 7 | self.feature = feature 8 | 9 | @property 10 | def df_lite(self): 11 | df_lite = self.df 12 | df_lite['bin'] = df_lite[self.feature].fillna('MISSING') 13 | return df_lite[['bin', 'label']] 14 | 15 | 16 | class ContinuousFeature(): 17 | def __init__(self, df, feature): 18 | self.df = df 19 | self.feature = feature 20 | self.bin_min_size = int(len(self.df) * 0.05) 21 | 22 | def __generate_bins(self, bins_num): 23 | df = self.df[[self.feature, 'label']] 24 | df['bin'] = pd.qcut(df[self.feature], bins_num, duplicates='drop') \ 25 | .apply(lambda x: x.left) \ 26 | .astype(float) 27 | return df 28 | 29 | def __generate_correct_bins(self, bins_max=20): 30 | for bins_num in range(bins_max, 1, -1): 31 | df = self.__generate_bins(bins_num) 32 | df_grouped = pd.DataFrame(df.groupby('bin') \ 33 | .agg({self.feature: 'count', 34 | 'label': 'sum'})) \ 35 | .reset_index() 36 | r, p = stats.stats.spearmanr(df_grouped['bin'], df_grouped['label']) 37 | 38 | if ( 39 | abs(r)==1 and # check if woe for bins are monotonic 40 | df_grouped[self.feature].min() > self.bin_min_size # check if bin size is greater than 5% 41 | and not (df_grouped[self.feature] == df_grouped['label']).any() # check if number of good and bad is not equal to 0 42 | ): 43 | break 44 | 45 | return df 46 | 47 | @property 48 | def df_lite(self): 49 | df_lite = self.__generate_correct_bins() 50 | df_lite['bin'].fillna('MISSING', inplace=True) 51 | return df_lite[['bin', 'label']] -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/python,pycharm,windows,jupyternotebooks 3 | # Edit at https://www.gitignore.io/?templates=python,pycharm,windows,jupyternotebooks 4 | 5 | ### JupyterNotebooks ### 6 | # gitignore template for Jupyter Notebooks 7 | # website: http://jupyter.org/ 8 | 9 | .ipynb_checkpoints 10 | */.ipynb_checkpoints/* 11 | 12 | # IPython 13 | profile_default/ 14 | ipython_config.py 15 | 16 | # Remove previous ipynb_checkpoints 17 | # git rm -r .ipynb_checkpoints/ 18 | 19 | ### PyCharm ### 20 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm 21 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 22 | 23 | # User-specific stuff 24 | .idea/**/workspace.xml 25 | .idea/**/tasks.xml 26 | .idea/**/usage.statistics.xml 27 | .idea/**/dictionaries 28 | .idea/**/shelf 29 | 30 | # Generated files 31 | .idea/**/contentModel.xml 32 | 33 | # Sensitive or high-churn files 34 | .idea/**/dataSources/ 35 | .idea/**/dataSources.ids 36 | .idea/**/dataSources.local.xml 37 | .idea/**/sqlDataSources.xml 38 | .idea/**/dynamic.xml 39 | .idea/**/uiDesigner.xml 40 | .idea/**/dbnavigator.xml 41 | 42 | # Gradle 43 | .idea/**/gradle.xml 44 | .idea/**/libraries 45 | 46 | # Gradle and Maven with auto-import 47 | # When using Gradle or Maven with auto-import, you should exclude module files, 48 | # since they will be recreated, and may cause churn. Uncomment if using 49 | # auto-import. 50 | # .idea/modules.xml 51 | # .idea/*.iml 52 | # .idea/modules 53 | # *.iml 54 | # *.ipr 55 | 56 | # CMake 57 | cmake-build-*/ 58 | 59 | # Mongo Explorer plugin 60 | .idea/**/mongoSettings.xml 61 | 62 | # File-based project format 63 | *.iws 64 | 65 | # IntelliJ 66 | out/ 67 | 68 | # mpeltonen/sbt-idea plugin 69 | .idea_modules/ 70 | 71 | # JIRA plugin 72 | atlassian-ide-plugin.xml 73 | 74 | # Cursive Clojure plugin 75 | .idea/replstate.xml 76 | 77 | # Crashlytics plugin (for Android Studio and IntelliJ) 78 | com_crashlytics_export_strings.xml 79 | crashlytics.properties 80 | crashlytics-build.properties 81 | fabric.properties 82 | 83 | # Editor-based Rest Client 84 | .idea/httpRequests 85 | 86 | # Android studio 3.1+ serialized cache file 87 | .idea/caches/build_file_checksums.ser 88 | 89 | ### PyCharm Patch ### 90 | # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 91 | 92 | # *.iml 93 | # modules.xml 94 | # .idea/misc.xml 95 | # *.ipr 96 | 97 | # Sonarlint plugin 98 | .idea/**/sonarlint/ 99 | 100 | # SonarQube Plugin 101 | .idea/**/sonarIssues.xml 102 | 103 | # Markdown Navigator plugin 104 | .idea/**/markdown-navigator.xml 105 | .idea/**/markdown-navigator/ 106 | 107 | ### Python ### 108 | # Byte-compiled / optimized / DLL files 109 | __pycache__/ 110 | *.py[cod] 111 | *$py.class 112 | 113 | # C extensions 114 | *.so 115 | 116 | # Distribution / packaging 117 | .Python 118 | build/ 119 | develop-eggs/ 120 | dist/ 121 | downloads/ 122 | eggs/ 123 | .eggs/ 124 | lib/ 125 | lib64/ 126 | parts/ 127 | sdist/ 128 | var/ 129 | wheels/ 130 | pip-wheel-metadata/ 131 | share/python-wheels/ 132 | *.egg-info/ 133 | .installed.cfg 134 | *.egg 135 | MANIFEST 136 | 137 | # PyInstaller 138 | # Usually these files are written by a python script from a template 139 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 140 | *.manifest 141 | *.spec 142 | 143 | # Installer logs 144 | pip-log.txt 145 | pip-delete-this-directory.txt 146 | 147 | # Unit test / coverage reports 148 | htmlcov/ 149 | .tox/ 150 | .nox/ 151 | .coverage 152 | .coverage.* 153 | .cache 154 | nosetests.xml 155 | coverage.xml 156 | *.cover 157 | .hypothesis/ 158 | .pytest_cache/ 159 | 160 | # Translations 161 | *.mo 162 | *.pot 163 | 164 | # Scrapy stuff: 165 | .scrapy 166 | 167 | # Sphinx documentation 168 | docs/_build/ 169 | 170 | # PyBuilder 171 | target/ 172 | 173 | # pyenv 174 | .python-version 175 | 176 | # pipenv 177 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 178 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 179 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 180 | # install all needed dependencies. 181 | #Pipfile.lock 182 | 183 | # celery beat schedule file 184 | celerybeat-schedule 185 | 186 | # SageMath parsed files 187 | *.sage.py 188 | 189 | # Spyder project settings 190 | .spyderproject 191 | .spyproject 192 | 193 | # Rope project settings 194 | .ropeproject 195 | 196 | # Mr Developer 197 | .mr.developer.cfg 198 | .project 199 | .pydevproject 200 | 201 | # mkdocs documentation 202 | /site 203 | 204 | # mypy 205 | .mypy_cache/ 206 | .dmypy.json 207 | dmypy.json 208 | 209 | # Pyre type checker 210 | .pyre/ 211 | 212 | ### Windows ### 213 | # Windows thumbnail cache files 214 | Thumbs.db 215 | Thumbs.db:encryptable 216 | ehthumbs.db 217 | ehthumbs_vista.db 218 | 219 | # Dump file 220 | *.stackdump 221 | 222 | # Folder config file 223 | [Dd]esktop.ini 224 | 225 | # Recycle Bin used on file shares 226 | $RECYCLE.BIN/ 227 | 228 | # Windows Installer files 229 | *.cab 230 | *.msi 231 | *.msix 232 | *.msm 233 | *.msp 234 | 235 | # Windows shortcuts 236 | *.lnk 237 | 238 | # Custom 239 | /data/ 240 | .idea/ 241 | 242 | # End of https://www.gitignore.io/api/python,pycharm,windows,jupyternotebooks -------------------------------------------------------------------------------- /AttributeRelevance.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | import scipy.stats as stats 4 | import matplotlib.pyplot as plt 5 | import seaborn as sns 6 | 7 | pd.set_option('mode.chained_assignment', None) 8 | 9 | class AttributeRelevance(): 10 | def seq_palette(self, n_colors): 11 | return sns.cubehelix_palette(n_colors, start=.5, rot=-.75, reverse=True) 12 | 13 | def bulk_iv(self, feats, iv, woe_extremes=False): 14 | iv_dict = {} 15 | for f in feats: 16 | iv_df, iv_value = iv.calculate_iv(f) 17 | if woe_extremes: 18 | iv_dict[f.feature] = [iv_value, iv_df['woe'].min(), iv_df['woe'].max()] 19 | cols = ['iv', 'woe_min', 'woe_max'] 20 | else: 21 | iv_dict[f.feature] = iv_value 22 | cols = ['iv'] 23 | df = pd.DataFrame.from_dict(iv_dict, orient='index', columns=cols) 24 | return df 25 | 26 | def bulk_stats(self, feats, s): 27 | stats_dict = {} 28 | for f in feats: 29 | p_value, effect_size = s.calculate_chi(f) 30 | stats_dict[f.feature] = [p_value, effect_size] 31 | df = pd.DataFrame.from_dict(stats_dict, orient='index', columns=['p-value', 'effect_size']) 32 | return df 33 | 34 | def analyze(self, feats, iv, s=None, interpretation=False): 35 | df_iv = self.bulk_iv(feats, iv).sort_values(by='iv', ascending=False) 36 | if s is not None: 37 | df_stats = self.bulk_stats(feats, s) 38 | df_iv = df_iv.merge(df_stats, left_index=True, right_index=True) 39 | if interpretation: 40 | df_iv['iv_interpretation'] = df_iv['iv'].apply(iv.interpretation) 41 | if s is not None: 42 | df_iv['es_interpretation'] = df_iv['effect_size'].apply(s.interpretation) 43 | return df_iv 44 | 45 | def draw_iv(self, feats, iv): 46 | df = self.analyze(feats, iv) 47 | fig, ax = plt.subplots(figsize=(10, 6)) 48 | sns.barplot(x=df.index, y='iv', data=df, palette=self.seq_palette(len(feats))) 49 | ax.set_title('IV values') 50 | plt.xticks(rotation=90) 51 | plt.show() 52 | 53 | def draw_woe_extremes(self, feats, iv): 54 | df = self.bulk_iv(feats, iv, woe_extremes=True).sort_values(by='iv', ascending=False) 55 | fig, ax = plt.subplots(figsize=(10, 6)) 56 | sns.barplot(x=df.index, y='woe_min', data=df, palette=self.seq_palette(len(feats))) 57 | sns.barplot(x=df.index, y='woe_max', data=df, palette=self.seq_palette(len(feats))) 58 | ax.axhline(y=0, color='black', linewidth=1) 59 | ax.set_title('Range of WOE values') 60 | ax.set_ylabel('WOE') 61 | plt.xticks(rotation=90) 62 | plt.show() 63 | 64 | def draw_woe_multiplot(self, feats, iv): 65 | n = len(feats) 66 | nrows = int(np.ceil(n/3)) 67 | fig, ax = plt.subplots(nrows=nrows, ncols=3, figsize=(15, nrows*4)) 68 | for i in range(n): 69 | iv_df, iv_value = iv.calculate_iv(feats[i]) 70 | sns.barplot(x=feats[i].feature, y='woe', data=iv_df, color='#455872', ax=fig.axes[i]) 71 | 72 | for ax in fig.axes: 73 | plt.sca(ax) 74 | plt.xticks(rotation=50) 75 | 76 | plt.tight_layout() 77 | plt.show() 78 | 79 | class Analysis(): 80 | def seq_palette(self, n_colors): 81 | return sns.cubehelix_palette(n_colors, start=.5, rot=-.75, reverse=True) 82 | 83 | def group_by_feature(self, feat): 84 | df = feat.df_lite \ 85 | .groupby('bin') \ 86 | .agg({'label': ['count', 'sum']}) \ 87 | .reset_index() 88 | df.columns = [feat.feature, 'count', 'good'] 89 | df['bad'] = df['count'] - df['good'] 90 | return df 91 | 92 | class StatsSignificance(Analysis): 93 | def calculate_chi(self, feat): 94 | df = self.group_by_feature(feat) 95 | df_chi = np.array(df[['good', 'bad']]) 96 | n = df['count'].sum() 97 | 98 | chi = stats.chi2_contingency(df_chi) 99 | cramers_v = np.sqrt(chi[0] / n) # assume that k=2 (good, bad) 100 | return chi[1], cramers_v 101 | 102 | @staticmethod 103 | def interpretation(cramers_v): 104 | if cramers_v < 0.1: 105 | return 'useless' 106 | elif cramers_v < 0.2: 107 | return 'weak' 108 | elif cramers_v < 0.4: 109 | return 'medium' 110 | elif cramers_v < 0.6: 111 | return 'strong' 112 | else: 113 | return 'very strong' 114 | 115 | def interpret_chi(self, feat): 116 | _, cramers_v = self.calculate_chi(feat) 117 | return self.interpretation(cramers_v) 118 | 119 | def print_chi(self, feat): 120 | p_value, cramers_v = self.calculate_chi(feat) 121 | print('P-value: %0.2f\nEffect size: %0.2f' % (p_value, cramers_v)) 122 | print('%s is a %s predictor' % (feat.feature.capitalize(), self.interpretation(cramers_v))) 123 | 124 | 125 | class IV(Analysis): 126 | @staticmethod 127 | def __perc_share(df, group_name): 128 | return df[group_name] / df[group_name].sum() 129 | 130 | def __calculate_perc_share(self, feat): 131 | df = self.group_by_feature(feat) 132 | df['perc_good'] = self.__perc_share(df, 'good') 133 | df['perc_bad'] = self.__perc_share(df, 'bad') 134 | df['perc_diff'] = df['perc_good'] - df['perc_bad'] 135 | return df 136 | 137 | def __calculate_woe(self, feat): 138 | df = self.__calculate_perc_share(feat) 139 | df['woe'] = np.log(df['perc_good']/df['perc_bad']) 140 | df['woe'] = df['woe'].replace([np.inf, -np.inf], np.nan).fillna(0) 141 | return df 142 | 143 | def calculate_iv(self, feat): 144 | df = self.__calculate_woe(feat) 145 | df['iv'] = df['perc_diff'] * df['woe'] 146 | return df, df['iv'].sum() 147 | 148 | def draw_woe(self, feat): 149 | iv_df, iv_value = self.calculate_iv(feat) 150 | fig, ax = plt.subplots(figsize=(10,6)) 151 | sns.barplot(x=feat.feature, y='woe', data=iv_df, palette=self.seq_palette(len(iv_df.index))) 152 | ax.set_title('WOE visualization for: ' + feat.feature) 153 | plt.show() 154 | plt.show() 155 | 156 | @staticmethod 157 | def interpretation(iv): 158 | if iv < 0.02: 159 | return 'useless' 160 | elif iv < 0.1: 161 | return 'weak' 162 | elif iv < 0.3: 163 | return 'medium' 164 | elif iv < 0.5: 165 | return 'strong' 166 | else: 167 | return 'suspicious' 168 | 169 | def interpret_iv(self, feat): 170 | _, iv = self.calculate_iv(feat) 171 | return self.interpretation(iv) 172 | 173 | def print_iv(self, feat): 174 | _, iv = self.calculate_iv(feat) 175 | print('Information value: %0.2f' % iv) 176 | print('%s is a %s predictor' % (feat.feature.capitalize(), self.interpretation(iv))) -------------------------------------------------------------------------------- /statistical_significance_of_information_value.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Statistical Significance of Information Value\n", 8 | "\n", 9 | "While Information Value and Weight of Evidence may be a totally new concepts for many people (especially collegues from other departments, not statisticians), statistical significance is much more familiar term. During presentation of analysis you might be asked if the obtained results are statistically significant. IV & WOE technique doesn't give explicit answer to this question (although it gives some intuition which results are relevant).\n", 10 | "\n", 11 | "This analysis shows how differences in distribution of 'goods' and 'bads' are measured by two methods: IV & WOE and p-value & effect size.\n", 12 | "\n", 13 | "- In order to see how it can be used in practice, check [**Telco Customer Churn Analysis**](https://github.com/klaudia-nazarko/iv-and-woe-python/blob/master/telco_customer_churn_analysis.ipynb).\n", 14 | "- Get to know how to use Information Value module, check [**IV and WOE in Python**](https://github.com/klaudia-nazarko/iv-and-woe-python/blob/master/iv_and_woe_in_python.ipynb)" 15 | ] 16 | }, 17 | { 18 | "cell_type": "markdown", 19 | "metadata": {}, 20 | "source": [ 21 | "## P-value and effect size\n", 22 | "\n", 23 | "In order to measure p-value and effect size in this analysis it was used:\n", 24 | "* chi-square test of independence of variables\n", 25 | "* cramers' v effect size\n", 26 | "\n", 27 | ">Pearson's chi-squared test (χ2) is a statistical test applied to sets of categorical data to evaluate how likely it is that any observed difference between the sets arose by chance. A test of independence assesses whether observations consisting of measures on two variables, expressed in a contingency table, are independent of each other (e.g. polling responses from people of different nationalities to see if one's nationality is related to the response).\n", 28 | "\n", 29 | "Chi-square says that there is a significant relationship between variables, but it does not say just how strong and important this is.\n", 30 | "\n", 31 | ">Cramér's V is a measure of association between two nominal variables. Cramer's V is a post-test to give this additional information. It varies between 0 and 1: close to 0 it shows little association between variables; close to 1, it indicates a strong association." 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 1, 37 | "metadata": {}, 38 | "outputs": [], 39 | "source": [ 40 | "import pandas as pd\n", 41 | "from pandas.api.types import is_numeric_dtype\n", 42 | "\n", 43 | "from Features import *\n", 44 | "from AttributeRelevance import *" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": 2, 50 | "metadata": {}, 51 | "outputs": [], 52 | "source": [ 53 | "pd.options.display.float_format = '{:,.2f}'.format\n", 54 | "pd.set_option('display.max_columns', None) " 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": 3, 60 | "metadata": {}, 61 | "outputs": [], 62 | "source": [ 63 | "df = pd.read_csv('data/telco_churn.csv', na_values=[' '])" 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": 4, 69 | "metadata": {}, 70 | "outputs": [], 71 | "source": [ 72 | "df.columns = [c[0].lower() + c[1:] for c in df.columns]\n", 73 | "df['label'] = df['churn'].map({'Yes': 0, 'No': 1})\n", 74 | "df['seniorCitizen'] = df['seniorCitizen'].map({1: 'Yes', 0: 'No'})\n", 75 | "df.drop(['customerID', 'churn'], axis=1, inplace=True)" 76 | ] 77 | }, 78 | { 79 | "cell_type": "code", 80 | "execution_count": 5, 81 | "metadata": {}, 82 | "outputs": [ 83 | { 84 | "data": { 85 | "text/html": [ 86 | "
\n", 87 | "\n", 100 | "\n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | "
genderseniorCitizenpartnerdependentstenurephoneServicemultipleLinesinternetServiceonlineSecurityonlineBackupdeviceProtectiontechSupportstreamingTVstreamingMoviescontractpaperlessBillingpaymentMethodmonthlyChargestotalChargeslabel
4831FemaleNoNoNo18NoNo phone serviceDSLYesYesNoYesNoNoOne yearYesMailed check40.20711.951
3739MaleNoNoNo24YesYesNoNo internet serviceNo internet serviceNo internet serviceNo internet serviceNo internet serviceNo internet serviceOne yearNoElectronic check24.60592.651
4590FemaleYesNoNo57YesYesFiber opticYesNoYesYesNoYesTwo yearNoCredit card (automatic)101.305,779.601
179MaleNoYesNo61YesNoNoNo internet serviceNo internet serviceNo internet serviceNo internet serviceNo internet serviceNo internet serviceOne yearYesCredit card (automatic)20.551,252.001
882FemaleNoNoNo6YesNoFiber opticNoNoYesNoNoYesMonth-to-monthNoElectronic check83.90497.550
\n", 244 | "
" 245 | ], 246 | "text/plain": [ 247 | " gender seniorCitizen partner dependents tenure phoneService \\\n", 248 | "4831 Female No No No 18 No \n", 249 | "3739 Male No No No 24 Yes \n", 250 | "4590 Female Yes No No 57 Yes \n", 251 | "179 Male No Yes No 61 Yes \n", 252 | "882 Female No No No 6 Yes \n", 253 | "\n", 254 | " multipleLines internetService onlineSecurity \\\n", 255 | "4831 No phone service DSL Yes \n", 256 | "3739 Yes No No internet service \n", 257 | "4590 Yes Fiber optic Yes \n", 258 | "179 No No No internet service \n", 259 | "882 No Fiber optic No \n", 260 | "\n", 261 | " onlineBackup deviceProtection techSupport \\\n", 262 | "4831 Yes No Yes \n", 263 | "3739 No internet service No internet service No internet service \n", 264 | "4590 No Yes Yes \n", 265 | "179 No internet service No internet service No internet service \n", 266 | "882 No Yes No \n", 267 | "\n", 268 | " streamingTV streamingMovies contract \\\n", 269 | "4831 No No One year \n", 270 | "3739 No internet service No internet service One year \n", 271 | "4590 No Yes Two year \n", 272 | "179 No internet service No internet service One year \n", 273 | "882 No Yes Month-to-month \n", 274 | "\n", 275 | " paperlessBilling paymentMethod monthlyCharges totalCharges \\\n", 276 | "4831 Yes Mailed check 40.20 711.95 \n", 277 | "3739 No Electronic check 24.60 592.65 \n", 278 | "4590 No Credit card (automatic) 101.30 5,779.60 \n", 279 | "179 Yes Credit card (automatic) 20.55 1,252.00 \n", 280 | "882 No Electronic check 83.90 497.55 \n", 281 | "\n", 282 | " label \n", 283 | "4831 1 \n", 284 | "3739 1 \n", 285 | "4590 1 \n", 286 | "179 1 \n", 287 | "882 0 " 288 | ] 289 | }, 290 | "execution_count": 5, 291 | "metadata": {}, 292 | "output_type": "execute_result" 293 | } 294 | ], 295 | "source": [ 296 | "df.sample(5)" 297 | ] 298 | }, 299 | { 300 | "cell_type": "code", 301 | "execution_count": 6, 302 | "metadata": {}, 303 | "outputs": [], 304 | "source": [ 305 | "feats_dict = {}\n", 306 | "\n", 307 | "for col in [c for c in df.columns if c != 'label']:\n", 308 | " if is_numeric_dtype(df[col]):\n", 309 | " feats_dict[col] = ContinuousFeature(df, col)\n", 310 | " else:\n", 311 | " feats_dict[col] = CategoricalFeature(df, col)\n", 312 | "\n", 313 | "feats = list(feats_dict.values())" 314 | ] 315 | }, 316 | { 317 | "cell_type": "code", 318 | "execution_count": 7, 319 | "metadata": {}, 320 | "outputs": [], 321 | "source": [ 322 | "iv = IV()\n", 323 | "s = StatsSignificance()\n", 324 | "\n", 325 | "ar = AttributeRelevance()" 326 | ] 327 | }, 328 | { 329 | "cell_type": "markdown", 330 | "metadata": {}, 331 | "source": [ 332 | "## Information value vs statistical significance\n", 333 | "\n", 334 | "Analysis of features with both IV & WOE and Chi-square test & Cramers'V shows some interesting relations between results of those two methods.\n", 335 | "\n", 336 | "**P-value vs information value**\n", 337 | "\n", 338 | "P-value for almost all featues is very, very small (less than 0.01 which gives us 99% confidence level). Only the differences of distribution for two features (with IV = 0) aren't statistically significant. It leads to the conclusion that for features that were recognized as at least medium predictor (the most interesting from analysis perspective) the differences in distribution of 'goods' and 'bads' is statistically significant. However, it's good to note that low p-value doesn't give information about the strength of relationship.\n", 339 | "\n", 340 | "**Information value vs Cramers' V**\n", 341 | "\n", 342 | "There is strong, almost linear, relationship between information value and effect size. Features with high information value have high effect size as well. Correlation coefficient for these values is: 0.94 (Pearson) and 0.98 (Spearman).\n", 343 | "\n", 344 | "**Interpretation of information value and effect size**\n", 345 | "\n", 346 | "Although the interpretation of information value and effect size differs a bit, the rules are very similar: values closer to 0 imply very weak (or lack of) relationship, while higher values suggest stronger relation." 347 | ] 348 | }, 349 | { 350 | "cell_type": "code", 351 | "execution_count": 32, 352 | "metadata": {}, 353 | "outputs": [ 354 | { 355 | "data": { 356 | "text/html": [ 357 | "
\n", 358 | "\n", 371 | "\n", 372 | " \n", 373 | " \n", 374 | " \n", 375 | " \n", 376 | " \n", 377 | " \n", 378 | " \n", 379 | " \n", 380 | " \n", 381 | " \n", 382 | " \n", 383 | " \n", 384 | " \n", 385 | " \n", 386 | " \n", 387 | " \n", 388 | " \n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | " \n", 411 | " \n", 412 | " \n", 413 | " \n", 414 | " \n", 415 | " \n", 416 | " \n", 417 | " \n", 418 | " \n", 419 | " \n", 420 | " \n", 421 | " \n", 422 | " \n", 423 | " \n", 424 | " \n", 425 | " \n", 426 | " \n", 427 | " \n", 428 | " \n", 429 | " \n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | " \n", 434 | " \n", 435 | " \n", 436 | " \n", 437 | " \n", 438 | " \n", 439 | " \n", 440 | " \n", 441 | " \n", 442 | " \n", 443 | " \n", 444 | " \n", 445 | " \n", 446 | " \n", 447 | " \n", 448 | " \n", 449 | " \n", 450 | " \n", 451 | " \n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \n", 459 | " \n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | " \n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | " \n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | " \n", 522 | " \n", 523 | " \n", 524 | " \n", 525 | " \n", 526 | " \n", 527 | " \n", 528 | " \n", 529 | " \n", 530 | " \n", 531 | " \n", 532 | " \n", 533 | " \n", 534 | " \n", 535 | " \n", 536 | "
ivp-valueeffect_sizeiv_interpretationes_interpretation
contract1.240.000.41suspiciousstrong
tenure0.780.000.37suspiciousmedium
onlineSecurity0.720.000.35suspiciousmedium
techSupport0.700.000.34suspiciousmedium
internetService0.620.000.32suspiciousmedium
onlineBackup0.530.000.29suspiciousmedium
deviceProtection0.500.000.28strongmedium
paymentMethod0.460.000.30strongmedium
streamingMovies0.380.000.23strongmedium
streamingTV0.380.000.23strongmedium
totalCharges0.320.000.25strongmedium
paperlessBilling0.200.000.19mediumweak
monthlyCharges0.170.000.18mediumweak
dependents0.160.000.16mediumweak
partner0.120.000.15mediumweak
seniorCitizen0.110.000.15mediumweak
multipleLines0.010.000.04uselessuseless
phoneService0.000.340.01uselessuseless
gender0.000.490.01uselessuseless
\n", 537 | "
" 538 | ], 539 | "text/plain": [ 540 | " iv p-value effect_size iv_interpretation \\\n", 541 | "contract 1.24 0.00 0.41 suspicious \n", 542 | "tenure 0.78 0.00 0.37 suspicious \n", 543 | "onlineSecurity 0.72 0.00 0.35 suspicious \n", 544 | "techSupport 0.70 0.00 0.34 suspicious \n", 545 | "internetService 0.62 0.00 0.32 suspicious \n", 546 | "onlineBackup 0.53 0.00 0.29 suspicious \n", 547 | "deviceProtection 0.50 0.00 0.28 strong \n", 548 | "paymentMethod 0.46 0.00 0.30 strong \n", 549 | "streamingMovies 0.38 0.00 0.23 strong \n", 550 | "streamingTV 0.38 0.00 0.23 strong \n", 551 | "totalCharges 0.32 0.00 0.25 strong \n", 552 | "paperlessBilling 0.20 0.00 0.19 medium \n", 553 | "monthlyCharges 0.17 0.00 0.18 medium \n", 554 | "dependents 0.16 0.00 0.16 medium \n", 555 | "partner 0.12 0.00 0.15 medium \n", 556 | "seniorCitizen 0.11 0.00 0.15 medium \n", 557 | "multipleLines 0.01 0.00 0.04 useless \n", 558 | "phoneService 0.00 0.34 0.01 useless \n", 559 | "gender 0.00 0.49 0.01 useless \n", 560 | "\n", 561 | " es_interpretation \n", 562 | "contract strong \n", 563 | "tenure medium \n", 564 | "onlineSecurity medium \n", 565 | "techSupport medium \n", 566 | "internetService medium \n", 567 | "onlineBackup medium \n", 568 | "deviceProtection medium \n", 569 | "paymentMethod medium \n", 570 | "streamingMovies medium \n", 571 | "streamingTV medium \n", 572 | "totalCharges medium \n", 573 | "paperlessBilling weak \n", 574 | "monthlyCharges weak \n", 575 | "dependents weak \n", 576 | "partner weak \n", 577 | "seniorCitizen weak \n", 578 | "multipleLines useless \n", 579 | "phoneService useless \n", 580 | "gender useless " 581 | ] 582 | }, 583 | "metadata": {}, 584 | "output_type": "display_data" 585 | } 586 | ], 587 | "source": [ 588 | "df_analysis = ar.analyze(feats, iv, s, interpretation=True)\n", 589 | "display(df_analysis)" 590 | ] 591 | }, 592 | { 593 | "cell_type": "code", 594 | "execution_count": 20, 595 | "metadata": {}, 596 | "outputs": [ 597 | { 598 | "data": { 599 | "image/png": "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\n", 600 | "text/plain": [ 601 | "
" 602 | ] 603 | }, 604 | "metadata": { 605 | "needs_background": "light" 606 | }, 607 | "output_type": "display_data" 608 | }, 609 | { 610 | "name": "stdout", 611 | "output_type": "stream", 612 | "text": [ 613 | "Pearson correlation: 0.94\n", 614 | "Spearman correlation: 0.98\n" 615 | ] 616 | } 617 | ], 618 | "source": [ 619 | "df_analysis_sign = df_analysis[df_analysis['p-value']<0.05]\n", 620 | "\n", 621 | "fig, ax = plt.subplots(figsize=(10,6))\n", 622 | "sns.regplot(x='iv', y='effect_size', data=df_analysis_sign, color='#455872')\n", 623 | "ax.set_title('Information value vs effect size')\n", 624 | "plt.show()\n", 625 | "\n", 626 | "print('Pearson correlation: %0.2f' % df_analysis_sign['iv'].corr(df_analysis_sign['effect_size']))\n", 627 | "print('Spearman correlation: %0.2f' % df_analysis_sign['iv'].corr(df_analysis_sign['effect_size'], method='spearman'))" 628 | ] 629 | }, 630 | { 631 | "cell_type": "markdown", 632 | "metadata": {}, 633 | "source": [ 634 | "## Weight of Evidence vs share of 'goods' in total\n", 635 | "\n", 636 | "WOE is one of ways to show the proportion of 'good' observations in a group (bin). Another way of doing it is to calculate a share of 'goods' in total. It's not a surprise that results obtained in two ways are very similar. The relation remains the same, it's just presented on a different scale." 637 | ] 638 | }, 639 | { 640 | "cell_type": "code", 641 | "execution_count": 23, 642 | "metadata": {}, 643 | "outputs": [ 644 | { 645 | "data": { 646 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmkAAAGDCAYAAABwRoerAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAfNklEQVR4nO3de7xcZX3v8c9XAngBDDZRKBcjSK3osYgRoSj1ikA90B7xiKcq0no4rVK1p9piPdXW1pZaL6dUXrWgWKjWS7XatMQiiohaQAIGBFIloEiaVIJ4AaUg8usfa20ZNrOTTZI960n25/16zWuv9cyz1vzmyew93zxrrZlUFZIkSWrLA4YuQJIkSfdlSJMkSWqQIU2SJKlBhjRJkqQGGdIkSZIaZEiTJElqkCFN0kQk2TvJbUm2m8PHeHqSNSPrVyd5+hw8zm1J9pmD/T4myZeT3JrkVVt6/5K2LoY0aRuR5PVJlk9ru3aGtuP65SR5Xd92e5JvJjklyY4j/f8myZ19MJm6XXF/66uqb1bVTlX14019jpvwmI+rqgs2Zx9JLkjy8mn73amqrt+s4sb7HeCCqtq5qk7d0jtP8gdJ3r+l9ytpbhjSpG3HhcChUzNVSXYDtgcOnNb26L4vwKnAicBLgZ2BI4FnAh+Ztu+39sFk6vZzc/5s5qdHAldvyoZJFmzhWrao1uuTWmRIk7Ydl9KFsgP69cOAzwJfndZ2XVWtTbIf8ArgV6rqoqq6q6quBp4PHJHkmfe3gCSrkjxvZH1BkpuTHJhkSZKaerNO8rIk1/eH9r6e5Ff69nvN9ozZ7oT+cW7tt/8/G6jnG0me3S9/d2Qm8Af9Ppck2TXJPydZn+Q7/fKe/TZvAZ4GvKvf7l19eyV5dL/80CRn99vfkOT/JXnAyHP8QpK39fv+epIjZ6j1fOAZI4/1M7PY9xeTvDPJLcAfbOTf5gjg94AXjs6G9o/x3iTrkvx7kj8eCfUbrH90fKf/2438u/1akm8C5/ftByf51/7f44rMweFoaVthSJO2EVV1J3AJXRCj//l54AvT2qZm0Z4FrKmqL03bz43AxcBzNqGMDwIvGll/LnBzVV0+2inJQ+hm8Y6sqp2BnwdWzvIxbgKeB+wCnAC8M8mBG9uoqhZOzQQCf0E3Nv9O93fwfXSzWHsDtwPv6rd5Q9/vpH7bk8bs+i+BhwL7AL9ANyt5wsj9T6ELyouAtwLvTZIx9T1z2mN9bZb7vh54OPCWdOf9fTfJ3mP2/y/AnwAfnjYbehZwF90M6xOBw4HRw7uzqn8DfgF4LPDcJHsA5wB/DDwMeC3wsSSL78f+pHnDkCZtWz7HPYHsaXRv+p+f1va5fnkRsG6G/azr75/y2v7Nf+p21gzb/R1wdJIH9+v/q28b527g8UkeVFXr+lm8jaqqc6rquup8DvhU/7xmJckL+7qeX1U/qqpvV9XHquqHVXUr8Ba6YDGbfW0HvBB4fVXdWlXfAN4OvGSk2w1VdUZ/Lt5ZwO7AI7bQvtdW1V/2s6C39+f9Layqb86y/kfQHeJ+TVX9oKpuAt4JHLe59Y/4g37ftwMvBpZX1fKquruqzgNWAEfdj/1J84YhTdq2XAg8NcmuwOKquhb4V+Dn+7bHc89M2s10b7jj7N7fP+Vt/Zv/1O34cRtV1WpgFfDf+6B2NGNCWlX9gC6A/DqwLsk5SX52Nk8wyZFJLk5yS5Lv0r3BL9rYdv22T6SbJfvlqlrftz04yV/3hxO/Tzc+CzO7q1AXATsAN4y03QDsMbL+H1MLVfXDfnGnLbTvG2exnw15JN0h8nVTARz4a7qZuSmbWv+4Gh8JvGA08ANPZebXoTSvGdKkbctFdIfHTgS+CFBV3wfW9m1rq+rrfd/zgb2SHDS6gyR7AQcDn9nEGqYOeR4DXNMHt/uoqnOr6jl0b9D/BpzR3/UD4MEjXXcbqW1H4GPA24BHVNVCYDmw0cNv/SG1j9MdTvzyyF2/DTwGeEpV7cI9s45T+6wN7PZm4Ed04WPK3nSHUTfXbPa9odrGmd7/RuAOYNFIAN+lqh43y/3N+G81w2PeCPzttMD/kKo6ZdbPQJpHDGnSNqQ/pLQC+L90hzmnfKFvu3Ck79eAdwMf6E/m3i7J4+hC0Ker6tObWMaH6M5r+g1mONSZ5BFJju7PTbsDuA2Y+miOlcBh/flVDwVeP7LpDsCOwHrgrv4k9sM3VlC6iw4+Bnygqj487e6d6c5D+26ShwFvmnb/t+jOCbuP/hDgR+jOB9s5ySPpxnmzP+Zijvb9LWDJ1MUHVbWO7nDx25PskuQBSfZNMqvDvXT/Vscl2T7JUuDYjfR/P90s63P719sD03223Z6b+oSkbZkhTdr2fI7ucNUXRto+37ddOK3vScB76N48bwP+BbiA7grPUb+Te39O2s3MoH/jv4juYoDpgWjKA+hmsNYCt9CdA/aKfvvz+u2uBC4D/nlk37cCr6ILL9+hO7ds2Uy1jNiT7ry110x7HnsD/x94EN3M1cX9GIz6C+DY/urGcZ9d9pt0M0rX04353wFnzqKm2bhf+849Hxh8nwsHen/f//x2kqmLOV5KF36voRvTjzL7w4+/D+zbb/eHzHz+IfCTi1KOobvKdD3dzNrr8L1IGitV93e2XJIkSXPN/71IkiQ1yJAmSZLUIEOaJElSgwYLaUn2SvLZdF/vcnWSV4/pkySnJlmd5MrZfKq4JEnStmDIL7y9C/jtqro8yc7AZUnOq6prRvocCezX354C/FX/U5IkaZs2WEjrL9Nf1y/fmmQV3Sdpj4a0Y4Czq7sE9eIkC5Ps3m871qJFi2rJkiVzWLkkSdKWcdlll91cVWO/v3bImbSfSLKE7ot9L5l21x7c+ytF1vRtM4a0JUuWsGLFii1coSRJ0paX5IaZ7hv8woEkO9F9Evhr+q+vudfdYza5zwe7JTkxyYokK9avXz8XZUqSJE3UoCEtyfbc81Ut/zCmyxpgr5H1Pek+ofxequr0qlpaVUsXLx47YyhJkrRVGfLqzgDvBVZV1Ttm6LYMeGl/lefBwPc2dD6aJEnStmLIc9IOBV4CfCXJyr7t94C9Aarq3cBy4ChgNfBD4IQB6pQkSZq4Ia/u/ALjzzkb7VPAKydTkSRJUjsGv3BAkiRJ92VIkyRJapAhTZIkqUGGNEmSpAYZ0iRJkhpkSJMkSWqQIU2SJKlBTXzBuiRJ2nZds/qLQ5cwmP0ffegmb+tMmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1aNCQluTMJDcluWqG+5+e5HtJVva3N066RkmSpCEsGPjx/wZ4F3D2Bvp8vqqeN5lyJEmS2jDoTFpVXQjcMmQNkiRJLdoazkk7JMkVST6Z5HHjOiQ5McmKJCvWr18/6fokSZK2uNZD2uXAI6vq54C/BD4xrlNVnV5VS6tq6eLFiydaoCRJ0lxoOqRV1fer6rZ+eTmwfZJFA5clSZI055oOaUl2S5J++SC6er89bFWSJElzb9CrO5N8EHg6sCjJGuBNwPYAVfVu4FjgN5LcBdwOHFdVNVC5kiRJEzNoSKuqF23k/nfRfUSHJEnSvNL04U5JkqT5ypAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUoEFDWpIzk9yU5KoZ7k+SU5OsTnJlkgMnXaMkSdIQhp5J+xvgiA3cfySwX387EfirCdQkSZI0uEFDWlVdCNyygS7HAGdX52JgYZLdJ1OdJEnScIaeSduYPYAbR9bX9G33kuTEJCuSrFi/fv3EipMkSZorrYe0jGmr+zRUnV5VS6tq6eLFiydQliRJ0txqPaStAfYaWd8TWDtQLZIkSROzYOgCNmIZcFKSDwFPAb5XVesGrkmSNM985KL3D13CoP7nIS8euoR5adCQluSDwNOBRUnWAG8CtgeoqncDy4GjgNXAD4EThqlUkiRpsgYNaVX1oo3cX8ArJ1SOJElSM1o/J02SJGleMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1aNCQluSIJF9NsjrJyWPuf1mS9UlW9reXD1GnJEnSpC0Y6oGTbAecBjwHWANcmmRZVV0zreuHq+qkiRcoSZI0oCFn0g4CVlfV9VV1J/Ah4JgB65EkSWrGYDNpwB7AjSPra4CnjOn3/CSHAV8DfquqbhzTR5K0AW/82KlDlzCoNz//VUOXIN1vQ86kZUxbTVv/J2BJVT0B+DRw1tgdJScmWZFkxfr167dwmZIkSZM3ZEhbA+w1sr4nsHa0Q1V9u6ru6FfPAJ40bkdVdXpVLa2qpYsXL56TYiVJkiZpyJB2KbBfkkcl2QE4Dlg22iHJ7iOrRwOrJlifJEnSYAY7J62q7kpyEnAusB1wZlVdneTNwIqqWga8KsnRwF3ALcDLhqpXkiRpkoa8cICqWg4sn9b2xpHl1wOvn3RdkiRJQ/MbByRJkhpkSJMkSWqQIU2SJKlBhjRJkqQGGdIkSZIaZEiTJElq0KxCWpIHJ/n9JGf06/sled7cliZJkjR/zXYm7X3AHcAh/foa4I/npCJJkiTNOqTtW1VvBX4EUFW3M/4L0iVJkrQFzDak3ZnkQUABJNmXbmZNkiRJc2C2Xwv1JuBfgL2SfAA4FL9HU5Ikac7MKqRV1XlJLgcOpjvM+eqqunlOK5MkSZrH7s8XrB8KHDay/s9buBZJkiT1ZvsRHKcArwau6W+vTvKnc1mYJEnSfDbbmbSjgAOq6m6AJGcBXwZeP1eFSZIkzWf353DnQuCWfvmhc1CLJG3Qi98+fyfw3//b/p9Ymm9mG9L+BLg8yQV0Fw4chrNokiRJc2a2Ie0XgTOB7wDfBH63qv5jzqqSJEma52Yb0t4HPBU4GtgHWJnkwqr6izmrTJIkaR6b7eeknZ/kc8CTgWcAvw48DjCkSZIkzYFZhbQknwEeAlwEfB54clXdNJeFSZIkzWez/e7OK4E7gccDTwAe33+XpyRJkubAbA93/hZAkp2AE+jOUdsN2HHuSpMkSZq/Znu48yTgacCTgBvorvT8/BzWJUmSNK/N9urOBwHvAC6rqrvmsB5JkiQx+8Odfz7XhUiSJOkes71wQJIkSRNkSJMkSWqQIU2SJKlBhjRJkqQGGdIkSZIaZEiTJElqkCFNkiSpQYY0SZKkBhnSJEmSGmRIkyRJapAhTZIkqUGGNEmSpAYZ0iRJkho0aEhLckSSryZZneTkMffvmOTD/f2XJFky+SolSZImb7CQlmQ74DTgSGB/4EVJ9p/W7deA71TVo4F3An822SolSZKGMeRM2kHA6qq6vqruBD4EHDOtzzHAWf3yR4FnJckEa5QkSRpEqmqYB06OBY6oqpf36y8BnlJVJ430uarvs6Zfv67vc/O0fZ0InAiw9957P+mGG26Y8XGfsO+hW/qpbFWuvO6Lm7X9M577v7dQJVunz557xmZt/4uv/P0tVMnW6ZzT/mjoEiSpKUkuq6ql4+4bciZt3IzY9MQ4mz5U1elVtbSqli5evHiLFCdJkjSkIUPaGmCvkfU9gbUz9UmyAHgocMtEqpMkSRrQkCHtUmC/JI9KsgNwHLBsWp9lwPH98rHA+TXU8VlJkqQJWjDUA1fVXUlOAs4FtgPOrKqrk7wZWFFVy4D3An+bZDXdDNpxQ9UrSZI0SYOFNICqWg4sn9b2xpHl/wReMOm6JEmShuY3DkiSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktSgBUMXIM0n55z2R0OXIEnaSjiTJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDRokpCV5WJLzklzb/9x1hn4/TrKyvy2bdJ2SJElDGWom7WTgM1W1H/CZfn2c26vqgP529OTKkyRJGtZQIe0Y4Kx++SzglwaqQ5IkqUlDhbRHVNU6gP7nw2fo98AkK5JcnGTGIJfkxL7fivXr189FvZIkSRO1YK52nOTTwG5j7nrD/djN3lW1Nsk+wPlJvlJV103vVFWnA6cDLF26tDapYEmSpIbMWUirqmfPdF+SbyXZvarWJdkduGmGfaztf16f5ALgicB9QpokSdK2ZqjDncuA4/vl44F/nN4hya5JduyXFwGHAtdMrEJJkqQBDRXSTgGek+Ra4Dn9OkmWJnlP3+exwIokVwCfBU6pKkOaJEmaF+bscOeGVNW3gWeNaV8BvLxf/lfgv024NEmSpCb4jQOSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDRrk6k5tvT577hlDlyBJ0rzgTJokSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1KBBQlqSFyS5OsndSZZuoN8RSb6aZHWSkydZoyRJ0pCGmkm7CvgfwIUzdUiyHXAacCSwP/CiJPtPpjxJkqRhLRjiQatqFUCSDXU7CFhdVdf3fT8EHANcM+cFSpIkDazlc9L2AG4cWV/Tt0mSJG3z5mwmLcmngd3G3PWGqvrH2exiTFvN8FgnAicC7L333rOuUZIkqVVzFtKq6tmbuYs1wF4j63sCa2d4rNOB0wGWLl06NshJkiRtTVo+3HkpsF+SRyXZATgOWDZwTZIkSRMx1Edw/HKSNcAhwDlJzu3bfzrJcoCqugs4CTgXWAV8pKquHqJeSZKkSRvq6s6PAx8f074WOGpkfTmwfIKlSZIkNaHlw52SJEnzliFNkiSpQYY0SZKkBhnSJEmSGmRIkyRJapAhTZIkqUGGNEmSpAYZ0iRJkhpkSJMkSWqQIU2SJKlBhjRJkqQGGdIkSZIaZEiTJElqkCFNkiSpQYY0SZKkBhnSJEmSGmRIkyRJapAhTZIkqUGGNEmSpAYZ0iRJkhq0YOgCJu3K6744dAmSJEkb5UyaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXIkCZJktQgQ5okSVKDDGmSJEkNMqRJkiQ1yJAmSZLUIEOaJElSgwxpkiRJDUpVDV3DFpVkPXDD0HVswCLg5qGL2Io5fpvH8dt0jt3mcfw2j+O3eVoev0dW1eJxd2xzIa11SVZU1dKh69haOX6bx/HbdI7d5nH8No/jt3m21vHzcKckSVKDDGmSJEkNMqRN3ulDF7CVc/w2j+O36Ry7zeP4bR7Hb/NslePnOWmSJEkNciZNkiSpQYa0zZTOqUlWJ7kyyYEz9HtSkq/0/U5Nkr79YUnOS3Jt/3PXvv1nk1yU5I4kr53kcxpakgcm+VKSK5JcneQPx/TZMcmH+/G8JMmSyVfajiRnJrkpyVUjbS/ox+/uJDNe1ZTkiCRf7cfy5MlU3I4keyX5bJJV/Xi9um//8yT/1v9efzzJwhm2n+/jN/b3tf/b+JYkX+vH9lUzbH98//fv2iTHT7b6NiT5Rv/+sDLJir7N198sJFmY5KP9WK1Kckjf/pv9uFyd5K0zbNv+2FWVt824AUcBnwQCHAxcMkO/LwGH9P0+CRzZt78VOLlfPhn4s3754cCTgbcArx36eU54TAPs1C9vD1wCHDytzyuAd/fLxwEfHrrugcfsMOBA4KqRtscCjwEuAJbOsN12wHXAPsAOwBXA/kM/nwmP3e7Agf3yzsDXgP2Bw4EFffufTf1uOn73GYOxv6/ACcDZwAP6+x4+ZtuHAdf3P3ftl3cd+jkNMIbfABZNa/P1N7uxOwt4eb+8A7AQeAbwaWDHvn3ca2+rGDtn0jbfMcDZ1bkYWJhk99EO/fouVXVRda+Os4FfGtn+rH75rKn2qrqpqi4FfjSJJ9GSfixv61e372/TT54cHbePAs+amp2cj6rqQuCWaW2rquqrG9n0IGB1VV1fVXcCH6Ib23mjqtZV1eX98q3AKmCPqvpUVd3Vd7sY2HPM5o7fzL+vvwG8uaru7vvdNGbz5wLnVdUtVfUd4DzgiAmU3TxffxuXZBe6/6C+F6Cq7qyq79K99k6pqjv69nGvva1i7Axpm28P4MaR9TV92/Q+a2bo84iqWgfdmwXdDNq8l2S7JCuBm+j+iF8yrctPxr3/Q/Y94KcmW+U2YTav33mjP2z+RLrZoFG/SjcDPp3jx4y/r/sCL0yyIsknk+w3ZlPHr1PAp5JcluTEMff7+htvH2A98L4kX07yniQPAX4GeFp/Ksznkjx5zLZbxdgZ0jbfuNmb6bM+s+mjEVX146o6gO5/jwclefy0Lo7pluE49pLsBHwMeE1VfX+k/Q3AXcAHxm02pm3ejd8Mv687Av9Z3ae8nwGcOWZTx69zaFUdCBwJvDLJYVN3+PrboAV0p3n8VVU9EfgB3WlDC+gOnx8MvA74yJgjLVvF2BnSNkGSV/YneK4E1gJ7jdy9Z982ag33nqoe7fOtqcOj/c9x07LzVj91fQH3PQSyhn7ckywAHsq0w32alZ+MY2/c63ebl2R7uoD2gar6h5H244HnAb/Sn6owneM3Ytrv6xq6MQX4OPCEMZs4fkBVre1/3kQ3VgeBr79ZWAOsGTnS8lG60LYG+If+UPyXgLvpvrtz+rbNj50hbRNU1WlVdUD/P8dPAC/tr2Q6GPje1OHLkf7rgFuTHNyn+ZcC/9jfvQyYuqLp+JH2eSvJ4qkrmZI8CHg28G/Tuo2O27HA+TP8EdOGXQrsl+RRSXaguwhj2cA1TVT/O/leYFVVvWOk/Qjgd4Gjq+qHM2zu+M38+/oJ4Jl9t1+guyBjunOBw5Psmu7K9sP7tnkjyUOS7Dy1TDcGV/n627iq+g/gxiSP6ZueBVzDyGsvyc/QXRgw/cvVt46xG/rKha39RjdlehrdVSJfYeQqOmDlyPJS4Kq+37u454OEfwr4DHBt//NhfftudEn/+8B3++Vdhn6+ExrTJwBfBq7sx+yNffub6f5gATwQ+HtgNd2Vs/sMXffAY/ZBYB3dhSZrgF8DfrlfvgP4FnBu3/engeUj2x5F9wZ6HfCGoZ/LAGP3VLrDHFcCK/vbUf1r68aRtqmriR2/e4/fTL+vC4Fz+r+LFwE/17cvBd4zsv2v9mO9Gjhh6OczwPjtQ3dl4RXA1VOvIV9/sx6/A4AV/evvE3SHOXcA3t+/Hi8Hnrm1jp3fOCBJktQgD3dKkiQ1yJAmSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJmleSLIwySuGrkOSZsuQJmm+WAjMaUjrv/1CkrYIQ5qk+eIUYN/+K93+PMnrklya5MokfwjdF6wnWZXkjCRXJ/lU/yn6JLkgydJ+eVGSb/TLL0vy90n+CfhU33affUvS/WVIkzRfnAxcV93XuZ0H7Ef3HYkHAE8a+VLr/YDTqupxdN/28fxZ7PsQ4PiqemaSwzewb0maNafmJc1Hh/e3L/frO9EFq28CX6+qlX37ZcCSWezvvKq6ZSP7vnDzy5Y0nxjSJM1HAf60qv76Xo3JErrvOp3yY+BB/fJd3HP04YHT9veDje1bku4vD3dKmi9uBXbul88FfjXJTgBJ9kjy8I1s/w3gSf3ysRvotyn7lqT7cCZN0rxQVd9O8sUkVwGfBP4OuCgJwG3Ai+lmzmbyNuAjSV4CnL+Bx/lUkseO2fdNW+SJSJo3UlVD1yBJkqRpPNwpSZLUIEOaJElSgwxpkiRJDTKkSZIkNciQJkmS1CBDmiRJUoMMaZIkSQ0ypEmSJDXovwCcHFTb/KuYQwAAAABJRU5ErkJggg==\n", 647 | "text/plain": [ 648 | "
" 649 | ] 650 | }, 651 | "metadata": { 652 | "needs_background": "light" 653 | }, 654 | "output_type": "display_data" 655 | } 656 | ], 657 | "source": [ 658 | "iv.draw_woe(feats_dict['tenure'])" 659 | ] 660 | }, 661 | { 662 | "cell_type": "code", 663 | "execution_count": 30, 664 | "metadata": {}, 665 | "outputs": [ 666 | { 667 | "data": { 668 | "image/png": "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\n", 669 | "text/plain": [ 670 | "
" 671 | ] 672 | }, 673 | "metadata": { 674 | "needs_background": "light" 675 | }, 676 | "output_type": "display_data" 677 | } 678 | ], 679 | "source": [ 680 | "df_tenure = iv.group_by_feature(feats_dict['tenure'])\n", 681 | "df_tenure['total'] = 1\n", 682 | "df_tenure['good_share'] = df_tenure['good'] / df_tenure['count']\n", 683 | "\n", 684 | "fig, ax = plt.subplots(figsize=(10,6))\n", 685 | "sns.barplot(x='tenure', y='total', data=df_tenure, color='#a9c6a3')\n", 686 | "sns.barplot(x='tenure', y='good_share', data=df_tenure, color='#4a6a7c')\n", 687 | "ax.set_title(\"Share of 'goods' in total\")\n", 688 | "plt.show()" 689 | ] 690 | }, 691 | { 692 | "cell_type": "markdown", 693 | "metadata": {}, 694 | "source": [ 695 | "### Reference\n", 696 | "\n", 697 | "1. https://en.wikipedia.org/wiki/Chi-squared_test\n", 698 | "2. https://en.wikipedia.org/wiki/Cram%C3%A9r%27s_V" 699 | ] 700 | } 701 | ], 702 | "metadata": { 703 | "kernelspec": { 704 | "display_name": "master", 705 | "language": "python", 706 | "name": "master" 707 | }, 708 | "language_info": { 709 | "codemirror_mode": { 710 | "name": "ipython", 711 | "version": 3 712 | }, 713 | "file_extension": ".py", 714 | "mimetype": "text/x-python", 715 | "name": "python", 716 | "nbconvert_exporter": "python", 717 | "pygments_lexer": "ipython3", 718 | "version": "3.7.5" 719 | } 720 | }, 721 | "nbformat": 4, 722 | "nbformat_minor": 2 723 | } 724 | -------------------------------------------------------------------------------- /telco_dataset_eda.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd\n", 10 | "from pandas.api.types import is_numeric_dtype\n", 11 | "import matplotlib.pyplot as plt\n", 12 | "from matplotlib.colors import ListedColormap\n", 13 | "import seaborn as sns\n", 14 | "import math" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 13, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "pd.options.display.float_format = '{:,.2f}'.format\n", 24 | "sns.set_style(\"whitegrid\")" 25 | ] 26 | }, 27 | { 28 | "cell_type": "code", 29 | "execution_count": 3, 30 | "metadata": {}, 31 | "outputs": [], 32 | "source": [ 33 | "df = pd.read_csv('data/telco_churn.csv', na_values=[' '])" 34 | ] 35 | }, 36 | { 37 | "cell_type": "code", 38 | "execution_count": 4, 39 | "metadata": {}, 40 | "outputs": [], 41 | "source": [ 42 | "df.columns = [c[0].lower() + c[1:] for c in df.columns]\n", 43 | "df['label'] = df['churn'].map({'Yes': 0, 'No': 1})\n", 44 | "df['seniorCitizen'] = df['seniorCitizen'].map({1: 'Yes', 0: 'No'})\n", 45 | "df.drop(['customerID', 'churn'], axis=1, inplace=True)" 46 | ] 47 | }, 48 | { 49 | "cell_type": "code", 50 | "execution_count": 5, 51 | "metadata": {}, 52 | "outputs": [ 53 | { 54 | "data": { 55 | "text/html": [ 56 | "
\n", 57 | "\n", 70 | "\n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | "
genderseniorCitizenpartnerdependentstenurephoneServicemultipleLinesinternetServiceonlineSecurityonlineBackupdeviceProtectiontechSupportstreamingTVstreamingMoviescontractpaperlessBillingpaymentMethodmonthlyChargestotalChargeslabel
5075FemaleNoYesYes42YesNoFiber opticNoNoYesNoYesYesMonth-to-monthYesElectronic check92.153875.401
6029MaleNoNoNo4YesNoFiber opticYesYesNoYesNoYesMonth-to-monthYesMailed check94.90360.551
6228MaleNoNoYes70YesYesDSLYesYesNoYesNoNoOne yearNoBank transfer (automatic)64.954551.501
19FemaleNoNoNo21YesNoFiber opticNoYesYesNoNoYesMonth-to-monthYesElectronic check90.051862.901
3220MaleNoYesNo70YesYesDSLYesNoYesYesNoYesTwo yearNoCredit card (automatic)77.305498.201
\n", 214 | "
" 215 | ], 216 | "text/plain": [ 217 | " gender seniorCitizen partner dependents tenure phoneService \\\n", 218 | "5075 Female No Yes Yes 42 Yes \n", 219 | "6029 Male No No No 4 Yes \n", 220 | "6228 Male No No Yes 70 Yes \n", 221 | "19 Female No No No 21 Yes \n", 222 | "3220 Male No Yes No 70 Yes \n", 223 | "\n", 224 | " multipleLines internetService onlineSecurity onlineBackup \\\n", 225 | "5075 No Fiber optic No No \n", 226 | "6029 No Fiber optic Yes Yes \n", 227 | "6228 Yes DSL Yes Yes \n", 228 | "19 No Fiber optic No Yes \n", 229 | "3220 Yes DSL Yes No \n", 230 | "\n", 231 | " deviceProtection techSupport streamingTV streamingMovies contract \\\n", 232 | "5075 Yes No Yes Yes Month-to-month \n", 233 | "6029 No Yes No Yes Month-to-month \n", 234 | "6228 No Yes No No One year \n", 235 | "19 Yes No No Yes Month-to-month \n", 236 | "3220 Yes Yes No Yes Two year \n", 237 | "\n", 238 | " paperlessBilling paymentMethod monthlyCharges \\\n", 239 | "5075 Yes Electronic check 92.15 \n", 240 | "6029 Yes Mailed check 94.90 \n", 241 | "6228 No Bank transfer (automatic) 64.95 \n", 242 | "19 Yes Electronic check 90.05 \n", 243 | "3220 No Credit card (automatic) 77.30 \n", 244 | "\n", 245 | " totalCharges label \n", 246 | "5075 3875.40 1 \n", 247 | "6029 360.55 1 \n", 248 | "6228 4551.50 1 \n", 249 | "19 1862.90 1 \n", 250 | "3220 5498.20 1 " 251 | ] 252 | }, 253 | "execution_count": 5, 254 | "metadata": {}, 255 | "output_type": "execute_result" 256 | } 257 | ], 258 | "source": [ 259 | "df.sample(5)" 260 | ] 261 | }, 262 | { 263 | "cell_type": "code", 264 | "execution_count": 7, 265 | "metadata": {}, 266 | "outputs": [], 267 | "source": [ 268 | "def eda_categorical(data, variable, ax=None):\n", 269 | " variable_df = data[variable].value_counts(normalize=True).reset_index()\n", 270 | " n_colors = len(variable_df)\n", 271 | " variable_df.set_index('index').T.plot(kind='barh',\n", 272 | " stacked=True,\n", 273 | " colormap=ListedColormap(sns.color_palette(\"Set2\", n_colors)),\n", 274 | " width=0.15, ax=ax)\n", 275 | "\n", 276 | "def multiple_eda_categorical(data, list_categorical):\n", 277 | " n_rows = math.ceil(len(list_categorical)/2)\n", 278 | " fig = plt.figure(figsize=(12,n_rows*3))\n", 279 | "\n", 280 | " for i, variable in enumerate(list_categorical):\n", 281 | " ax = fig.add_subplot(n_rows,2,i+1)\n", 282 | " eda_categorical(data, variable, ax=ax)\n", 283 | " \n", 284 | " plt.tight_layout()\n", 285 | " plt.show()\n", 286 | "\n", 287 | "def multiple_eda_continuous(data, list_continuous):\n", 288 | " n_rows = math.ceil(len(list_continuous)/3)\n", 289 | " fig = plt.figure(figsize=(12,n_rows*5))\n", 290 | " palette = sns.color_palette('Set2', 3)\n", 291 | "\n", 292 | " for i, variable in enumerate(list_continuous):\n", 293 | " ax = fig.add_subplot(n_rows,3,i+1)\n", 294 | " sns.boxplot(x=variable, data=data, orient='v', palette=[palette[i]], ax=ax)\n", 295 | " ax.set_ylabel('')\n", 296 | " ax.set_title(variable)\n", 297 | "\n", 298 | " plt.tight_layout()\n", 299 | " plt.show()" 300 | ] 301 | }, 302 | { 303 | "cell_type": "code", 304 | "execution_count": 6, 305 | "metadata": {}, 306 | "outputs": [], 307 | "source": [ 308 | "continuous, categorical = [], []\n", 309 | "black_list = ['onlineSecurity', 'techSupport', 'onlineBackup', 'streamingTV', 'streamingMovies', 'deviceProtection']\n", 310 | "\n", 311 | "for col in [c for c in df.columns if c not in black_list and c != 'label']:\n", 312 | " if is_numeric_dtype(df[col]):\n", 313 | " continuous.append(col)\n", 314 | " else:\n", 315 | " categorical.append(col)" 316 | ] 317 | }, 318 | { 319 | "cell_type": "markdown", 320 | "metadata": {}, 321 | "source": [ 322 | "## Exploratory Analysis" 323 | ] 324 | }, 325 | { 326 | "cell_type": "code", 327 | "execution_count": 18, 328 | "metadata": {}, 329 | "outputs": [ 330 | { 331 | "name": "stdout", 332 | "output_type": "stream", 333 | "text": [ 334 | "Dataset contains 7043 records\n", 335 | "Number of customers who churned: 1869 (26.54%)\n" 336 | ] 337 | } 338 | ], 339 | "source": [ 340 | "n = len(df)\n", 341 | "n_not_churn = sum(df['label'])\n", 342 | "n_churn = n - n_not_churn\n", 343 | "\n", 344 | "print('Dataset contains %d records' % (n))\n", 345 | "print('Number of customers who churned: %d (%0.2f%%)' % (n_churn, n_churn*100/n))" 346 | ] 347 | }, 348 | { 349 | "cell_type": "code", 350 | "execution_count": 8, 351 | "metadata": {}, 352 | "outputs": [ 353 | { 354 | "data": { 355 | "image/png": "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0sSJE5Wamiqr1aoXX3xR3bp1U1hYmJo0aaLDhw8rMzNTf/7zn+Xt7a34+Hh98cUXslgs6tatmwYNGiRvb299/PHHatmypR566CGFhYXJMAxJ0ubNmxUXFycHBwe1atVKERERmj9/vvbv368rV66oa9euunTpkkaOHKmcnBw9++yzWrRokcaPH6+1a9dq27Zttr8a3n///Zo6dar27t2rmJgYOTo6qn79+nr77bfl7OxsxrIBAOwkKSlJ27ZtU1ZWltLT0zVo0CBt3bpVhw8f1ptvvqkpU6Zox44dkqTw8HD169fPtu26deuUnp6u8PBwDR48WImJiYqJiVHnzp3VokULnThxQg0bNtSMGTMK7HPu3Lnas2ePDMPQkCFD1LVr1xvWtmvXLtuYTzzxhFq2bKljx46pevXqmj9/vvLz8zVlyhT98ssvys/P15gxY9SmTRvFxMRo586dys/P19NPP60hQ4aU2PoBAG7OlIAlSVeuXNHy5ct17tw59e7dW1arVT179lRwcLAiIyO1Y8cOnTt3Tl5eXpo9e7YyMzMVGhqqtm3bSpKaN2+uqKgoxcTEaOPGjerUqZM2bdqk1atXy2KxaMiQIWrfvr06dOignJwcffzxx5owYYIaNWqkSZMmqXbt2po/f74++eQTubu7a9y4cbbm6O/vr0mTJunChQsaMGCARowYoa1bt6pjx462sJSXl6dp06Zp3bp1ql69uhYsWKBTp05p8uTJWr16tapXr6733ntP69evV58+fcxaNgAol5KTk+1dwm1dvnxZsbGx2rhxo+Li4rR27Vrt2rVLH3300S236927txYtWqSYmBh9//33tsdPnz6t0aNH695779Xo0aO1ZcsW23N///vflZaWpsTERGVnZ6tPnz5q167dbWtMTU3VihUrVLduXfXr108//PCDDh48KC8vL82cOVPnz5/XwIEDtXHjRn366adauXKlateuraSkpKIvDABUICXRr0wLWK1bt5aDg4Nq1Kihe+65R0eOHFGzZs0kSTVq1FBWVpaOHDmiRx55RJLk4eGhgIAApaamSrp2xEiS6tSpo99++00pKSk6efKk7S9wFy5c0IkTJ3ThwgU9/PDDeuKJJ2S1WvXZZ59pwoQJio6O1rlz5zR8+HBJ1xrn72P7+flJkqpUqaLAwEB99913Wr9+vcaPH2+r//z587rnnntU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NWvWVHZ29nW1/n7U7fdai4uABQDl0H/+8x+dOXNGtWrV0r59+9SzZ0+lp6fr2WefVffu3XX27FmtW7dOkuTgcP0FZb28vJSZmWkbY/fu3brvvvskScnJybJarcrJydHPP/+se++9Vzt27FB+fn6BMQICAvTDDz/okUce0eeff64LFy4UOOoGALg71K9fX1euXFF8fLzGjh2r1NRUWSwWHTlyRFeuXFGlSpW0e/du+fn5Sfr/UPPfLBZLgT7wx9eEh4df93rDMOTv76/ly5crLy9Pjo6O2rNnj55//nkNHz7c9tq0tLQb7vO/1apVSz/99JOaNGmiPXv22HrWjbZzcHC4Za3FRcACgGLKzbfe0dWaCjOes4NjscaoWrWqpk+frtOnTysoKEiPPfaYmjdvrqioKK1du1aZmZkaOXLkTbe3WCyaPn26Ro0aJYvFoipVquh//ud/dPjwYeXl5enll19WRkaGXnvtNVWrVk3NmjXTu+++q4CAANsYb775pt566y0tWrRIbm5umj17drHmBADlmb17Sbdu3fTZZ5/Jz89Pqamp8vLy0jPPPKNBgwbJwcFBvr6+ioiI0MaNG28azAYRAAAgAElEQVS4/Y36wK0EBQXpzTffVGxsrLp27ar+/fsrPz9frVq1KtLFJ6ZPn65p06bJMAw5Ojpq5syZN32tr6+vUlJStHLlykLv505YDMMwSmTkCmz//v2202IqouTkZLtdyexuwPzL//xvN8erV68W+15Yd6v/vpDGzRRm/jday4rwHrob0Kt4n1X0NbD3/O29//Lcq+5USfUrbjQMAAAAACbhFEEAwB1r06aN2rRpY+8yAAC4a3EECwAAAABMQsACAAAAAJMQsAAAAADAJAQsACgmIy+3wM/FvSrTH8cDAJR/Zn/200vsh4tcAEAxWZycZZ031LTxHMcuu+1rdu3apTFjxqhBgwYyDEN5eXkaNGiQunXrpvXr12v9+vVydHSUYRgaNmyY2rdvr/nz56tGjRrq37+/abUCAMxR2r1k7ty5OnTokNLT05WVlaX69evLy8tL77//vmk1VFQELAAoo9q2bWu7H9Xly5cVFhamGjVqaOHChdq4caNcXFx0+vRp9e7dW3/729/sWywA4K7yxhtvyN3dXUlJSTp69KgiIiLsXVK5wSmCAFAOVK5cWX379tU333wjq9WqhIQEnThx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AAAXpVevXtqwYYMmTJigFStWyGKxKDExUTNmzFCbNm20fPlyvf322woLC5Ovr6/mzp2r/fv3Ky8vz9WlA8AVsWXLFkVHRzu/79mzpx5++GHn9wsWLFC3bt00bNgwZWRk6LnnntP8+fP11ltv6aOPPpKHh4defPFFdenSRSEhIUpKSpLNZlNWVpZWr14tDw8PRUREaPr06QoJCdG///1vvfjiixo/frwyMjK0aNEieXt7Kzw8XFlZWc79bty4UdnZ2frwww919OhRffjhh2UC1htvvKFevXpp6NCh+u6777Rjxw5JUmBgoKZPn67U1FS9/fbb6tSpk5KTk7V69Wp5e3vr2Wef1TfffKMvv/yy3PUPHTqk1atXa+7cuWrZsmU1z77rEbAAABft73//uwoLC52XrBw4cECTJ0+WJNntdrVu3Vo9evRQRkaGHn/8cbm7u+uxxx5zZckAcMVUdong3r17tWXLFn366aeSpJycHB09elQ33HCDvLy8JEnx8fHnrde8eXN5eHhIkjIzMxUSEiJJ6tKli+bOnStJCgoKUv369SVJTZo0kd1ud65/6NAhhYaGSpICAgI0duzYMts/dOiQ7rvvPknSX/7yF0l/vofqpptucq5TWFioI0eO6PTp02Xej3v06NELrr9p0ya5u7vLzc2tCrNX8xGwAACXrVWrVpo5c6auvfZaffvtt8rJyVFqaqquueYaLV68WGlpaXrppZe0dOlSV5cKAC4XHByse+65RwMGDNCpU6eUkpKioKAgHTx4UEVFRfLw8NBTTz2lhIQEWSwWGYYhSbJa/+8G4Ndcc412796t9u3ba9u2bc4zQxaLpcL9fvbZZ5L+vExx9OjRWrRokXN569attXPnTuc2//d//1deXl7nbbN58+Zq1qyZFi9eLJvNpjVr1igkJEQHDx4sd/0RI0bo+uuv1/jx47Vs2bJaH7QIWABQQxWXllTpzn8Xsz2b9dKaXlJSkuLi4lRSUqLS0lK98MILatiwocaOHat3331XVqtVTzzxhGm1AkBVueJY+d+XCErSW2+95fw6JiZGCQkJWrVqlfLy8jR69Gj5+/vrkUce0f333y+LxaI777xTgYGBCgsL0/jx4zV16tQy25s2bZqmTp0qwzDk5uamGTNmVFp779699d1332no0KEqLi7Wk08+WWZ5TEyM4uPj9dFHH0mSZsyY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AGASAhYAAABqLcNRWu7jl3oHvQttDziHm1wAAACg1rK4W3Vi9temba/ps/+v0ufs27dPs2fPVkFBgc6ePauePXvqySefrPCDcstjt9vVt29fffHFF5o+fboeeugh1atXT5s3b9aAAQMudQgXNGfOHAUHBysiIqLM4xkZGVq9erXzA3mratu2bfL19VX79u3NLFN2u10fffSRBg8erDVr1sjPz0+9e/c+73mFhYWaNGmSXnzxxYue+8vBGSwAAADAJDk5OYqNjVV8fLyWLl2qVatWae/evVq5cuVlbTchIUHXXnut9uzZoy+++MKkaqtm5syZeuihhy56vdWrV1fpw5QvVlZWllJSUiRJERER5YYrSfLy8lJYWJjWrVtneg0V4QwWAAAAYJKNGzeqa9euatmypSTJzc1NM2fOlM1mU2pqqubMmSObzabIyEhde+21mjdvntzc3NSiRQtNmTJFRUVFGjdunHJychQUFOTcbnR0tJKSkrRgwQLt3r1bH3zwgaKiopzLv/zyS82fP1+SdOONN2ry5Mn6/PPP9f777zuf88orr2jfvn2aM2eO3NzcNGTIEHl7e+uNN96Qv7+/iouLFRwcXGY8Bw8elGEY8vf3lyTNnTtXP//8s/Lz89W6dWu98MILSk5OVkBAgIYOHaoDBw4oKSlJcXFx2rx5s3bt2qU2bdpo+/btevfdd+Xh4aGWLVtqypQpWr9+vb788ksVFhYqKytLDzzwgDZu3Kh9+/Zp/PjxCg8P17Jly/T555/L4XDI19dXycnJWrBggfbv36/58+fLMAwFBAQoKipK06ZN044dO1RcXKwnn3xS4eHh6tu3rx5++GENHDiwun7k5yFgAQAAACbJzMxUixYtyjzm4+Pj/NputyslJUWGYahPnz5avny5GjdurJdffllr165VUVGR2rZtq7Fjx+qnn35SampqmW3FxMRo5cqVZcKVw+HQ1KlTlZKSosaNG2v+/Pk6ceKEMjIytHDhQnl7e+v555/X119/rcDAQNntdn3wwQfy9vZWeHi4UlJS1LBhQ40aNeq88Wzbtk3t2rWTJOXl5alBgwZ65513VFpaqv79++vkyZPlzsPNN9+s22+/Xf369ZO3t7eSk5O1du1a1a9fXzNmzNAHH3ygevXqKT8/X4sXL9Ynn3yiJUuWaNWqVUpNTdV7772nXr166cyZM1qy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\n", 356 | "text/plain": [ 357 | "
" 358 | ] 359 | }, 360 | "metadata": {}, 361 | "output_type": "display_data" 362 | } 363 | ], 364 | "source": [ 365 | "multiple_eda_categorical(df, categorical)" 366 | ] 367 | }, 368 | { 369 | "cell_type": "code", 370 | "execution_count": 9, 371 | "metadata": {}, 372 | "outputs": [ 373 | { 374 | "data": { 375 | "image/png": "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34EDBzRo0CDdd999io2NVVFRkRoaGlocO3r0aG3fvl0ul0u1tbV66623ZLFYFBwcfNk5c+fOnZo9e7ZuueUWpaamavLkyfr000+/1WsG0Dp/f3/9x3/8hwICAvTOO+9I+rqMvP3227rtttvcY+rr61VeXq6amhqlpaXppz/9qUpKSlRXVyeXy9VknUlJSdq/f7927NjhLkCffvqpVq9erQEDBrSaZ9euXZoyZYqmT5+uyMhIvffeey3OK8HBwRo6dKjefPNNSdKxY8e0d+9eWSwWDRkyROXl5Tpw4IAkqaysTImJiTp9+rSef/55rV27VmPHjtWTTz6pfv366a9//euV/SXCFOzBQovGjx+vlJQU5efna+XKlZo0aZLq6uo0ceJE3XnnnU22wFzqzjvv1Icffqhx48bp2muvVWxs7GW3VD/55JNaunSpJk2aJKfTqdtuu00PPPCAp14WAA8aNmyY/Pz8dO+998rlcik8PFzr16937+G5nJ/+9KfKy8trtre7Nd///vc1aNAg9e3bV926dXMvX716tV544QVNnTpV/v7+crlcmjx5su6///5W1zdx4kS98847mjBhglwul8aMGaMLFy6opqam2diHHnpITz/9tCZNmqSQkBB9//vfd++de/7555WTk9NszmxoaFBxcbEmTpwoq9Wqa665Rjk5Oe1+vQDaNn78eM2ePVtr167VM888o/z8fDU0NGjevHnuQ+4av9+sWrVKP/nJTzRhwgR1795dAwYMUL9+/VReXt5kb31YWJh7D3jjfNazZ08tXbq0zSsIzpkzR1lZWe7TIIYMGaLPP/+8xbHLli3Tk08+qc2bN+vaa69VRESEevToofDwcK1evVrLly+Xw+GQYRhavny5IiIidO+99yojI0MTJ05U9+7ddcMNN+iOO+4w6W8TV8JitOfAUgAAfEhlZaWmTZumTZs26brrruvQ5/7973+v4OBgjR49Wi6XS6mpqRo5cqSSk5M7NAeAq8dLL72kcePGqW/fvqqurtadd96pjRs3mvITFuh47MECAHQqW7duVV5enlJTUzu8XElfX3gjKyvLvddt2LBhmj59eofnAHD1+NGPfqT58+fLz89PDQ0N+sUvfkG56sTYgwUAAAAAJuEiFwAAAABgEgoWAAAAAJikQ87BOnjwoAIDAzviqQB0MIfDoSFDhng7xmUx/wBX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\n", 376 | "text/plain": [ 377 | "
" 378 | ] 379 | }, 380 | "metadata": {}, 381 | "output_type": "display_data" 382 | } 383 | ], 384 | "source": [ 385 | "multiple_eda_continuous(df, continuous)" 386 | ] 387 | }, 388 | { 389 | "cell_type": "code", 390 | "execution_count": null, 391 | "metadata": {}, 392 | "outputs": [], 393 | "source": [] 394 | } 395 | ], 396 | "metadata": { 397 | "kernelspec": { 398 | "display_name": "Python 3", 399 | "language": "python", 400 | "name": "python3" 401 | }, 402 | "language_info": { 403 | "codemirror_mode": { 404 | "name": "ipython", 405 | "version": 3 406 | }, 407 | "file_extension": ".py", 408 | "mimetype": "text/x-python", 409 | "name": "python", 410 | "nbconvert_exporter": "python", 411 | "pygments_lexer": "ipython3", 412 | "version": "3.7.4" 413 | } 414 | }, 415 | "nbformat": 4, 416 | "nbformat_minor": 2 417 | } 418 | --------------------------------------------------------------------------------