{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Imbalanced Learning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Artículo completo en www.aprendemachinelearning.com" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Manejo de clases desbalanceadas con la librería Python ImbLearn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "No olvides instalar con:

pip install -U imbalanced-learn" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:49.648431Z", "start_time": "2019-05-14T23:03:42.916007Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/sklearn/externals/six.py:31: DeprecationWarning: The module is deprecated in version 0.21 and will be removed in version 0.23 since we've dropped support for Python 2.7. Please rely on the official version of six (https://pypi.org/project/six/).\n", " \"(https://pypi.org/project/six/).\", DeprecationWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/sklearn/externals/joblib/__init__.py:15: DeprecationWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.23. Please import this functionality directly from joblib, which can be installed with: pip install joblib. If this warning is raised when loading pickled models, you may need to re-serialize those models with scikit-learn 0.21+.\n", " warnings.warn(msg, category=DeprecationWarning)\n" ] } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "from sklearn.metrics import confusion_matrix\n", "from sklearn.metrics import classification_report\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.decomposition import PCA\n", "from sklearn.tree import DecisionTreeClassifier\n", "\n", "from pylab import rcParams\n", "\n", "from imblearn.under_sampling import NearMiss\n", "from imblearn.over_sampling import RandomOverSampler\n", "from imblearn.combine import SMOTETomek\n", "from imblearn.ensemble import BalancedBaggingClassifier\n", "\n", "from collections import Counter\n", "\n", "#set up graphic style in this case I am using the color scheme from xkcd.com\n", "rcParams['figure.figsize'] = 14, 8.7 # Golden Mean\n", "LABELS = [\"Normal\",\"Fraud\"]\n", "#col_list = [\"cerulean\",\"scarlet\"]# https://xkcd.com/color/rgb/\n", "#sns.set(style='white', font_scale=1.75, palette=sns.xkcd_palette(col_list))\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dataset Credit Card Fraud Detection" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Descarga de Kaggle en https://www.kaggle.com/mlg-ulb/creditcardfraud/data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:55.243246Z", "start_time": "2019-05-14T23:03:49.651846Z" } }, "outputs": [ { "data": { "text/html": [ "

\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TimeV1V2V3V4V5V6V7V8V9...V21V22V23V24V25V26V27V28AmountClass
00.0-1.359807-0.0727812.5363471.378155-0.3383210.4623880.2395990.0986980.363787...-0.0183070.277838-0.1104740.0669280.128539-0.1891150.133558-0.021053149.620
10.01.1918570.2661510.1664800.4481540.060018-0.082361-0.0788030.085102-0.255425...-0.225775-0.6386720.101288-0.3398460.1671700.125895-0.0089830.0147242.690
21.0-1.358354-1.3401631.7732090.379780-0.5031981.8004990.7914610.247676-1.514654...0.2479980.7716790.909412-0.689281-0.327642-0.139097-0.055353-0.059752378.660
31.0-0.966272-0.1852261.792993-0.863291-0.0103091.2472030.2376090.377436-1.387024...-0.1083000.005274-0.190321-1.1755750.647376-0.2219290.0627230.061458123.500
42.0-1.1582330.8777371.5487180.403034-0.4071930.0959210.592941-0.2705330.817739...-0.0094310.798278-0.1374580.141267-0.2060100.5022920.2194220.21515369.990
\n", "

5 rows × 31 columns

\n", "
" ], "text/plain": [ " Time V1 V2 V3 V4 V5 V6 V7 \\\n", "0 0.0 -1.359807 -0.072781 2.536347 1.378155 -0.338321 0.462388 0.239599 \n", "1 0.0 1.191857 0.266151 0.166480 0.448154 0.060018 -0.082361 -0.078803 \n", "2 1.0 -1.358354 -1.340163 1.773209 0.379780 -0.503198 1.800499 0.791461 \n", "3 1.0 -0.966272 -0.185226 1.792993 -0.863291 -0.010309 1.247203 0.237609 \n", "4 2.0 -1.158233 0.877737 1.548718 0.403034 -0.407193 0.095921 0.592941 \n", "\n", " V8 V9 ... V21 V22 V23 V24 \\\n", "0 0.098698 0.363787 ... -0.018307 0.277838 -0.110474 0.066928 \n", "1 0.085102 -0.255425 ... -0.225775 -0.638672 0.101288 -0.339846 \n", "2 0.247676 -1.514654 ... 0.247998 0.771679 0.909412 -0.689281 \n", "3 0.377436 -1.387024 ... -0.108300 0.005274 -0.190321 -1.175575 \n", "4 -0.270533 0.817739 ... -0.009431 0.798278 -0.137458 0.141267 \n", "\n", " V25 V26 V27 V28 Amount Class \n", "0 0.128539 -0.189115 0.133558 -0.021053 149.62 0 \n", "1 0.167170 0.125895 -0.008983 0.014724 2.69 0 \n", "2 -0.327642 -0.139097 -0.055353 -0.059752 378.66 0 \n", "3 0.647376 -0.221929 0.062723 0.061458 123.50 0 \n", "4 -0.206010 0.502292 0.219422 0.215153 69.99 0 \n", "\n", "[5 rows x 31 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv(\"creditcard.csv\") # read in data downloaded to the local directory\n", "df.head(n=5) #just to check you imported the dataset properly4" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:55.257536Z", "start_time": "2019-05-14T23:03:55.246529Z" } }, "outputs": [ { "data": { "text/plain": [ "(284807, 31)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.shape #secondary check on the size of the dataframe" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:55.282798Z", "start_time": "2019-05-14T23:03:55.260837Z" } }, "outputs": [ { "data": { "text/plain": [ "0 284315\n", "1 492\n", "Name: Class, dtype: int64" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.value_counts(df['Class'], sort = True) #class comparison 0=Normal 1=Fraud" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:55.493706Z", "start_time": "2019-05-14T23:03:55.286436Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#if you don't have an intuitive sense of how imbalanced these two classes are, let's go visual\n", "count_classes = pd.value_counts(df['Class'], sort = True)\n", "count_classes.plot(kind = 'bar', rot=0)\n", "plt.xticks(range(2), LABELS)\n", "plt.title(\"Frequency by observation number\")\n", "plt.xlabel(\"Class\")\n", "plt.ylabel(\"Number of Observations\");" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:55.580502Z", "start_time": "2019-05-14T23:03:55.497973Z" } }, "outputs": [], "source": [ "normal_df = df[df.Class == 0] #save normal_df observations into a separate df\n", "fraud_df = df[df.Class == 1] #do the same for frauds" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:56.104227Z", "start_time": "2019-05-14T23:03:55.583067Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n", " warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#plot of high value transactions\n", "bins = np.linspace(200, 2500, 100)\n", "plt.hist(normal_df.Amount, bins, alpha=1, normed=True, label='Normal')\n", "plt.hist(fraud_df.Amount, bins, alpha=0.6, normed=True, label='Fraud')\n", "plt.legend(loc='upper right')\n", "plt.title(\"Amount by percentage of transactions (transactions \\$200+)\")\n", "plt.xlabel(\"Transaction amount (USD)\")\n", "plt.ylabel(\"Percentage of transactions (%)\");\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:56.417389Z", "start_time": "2019-05-14T23:03:56.107770Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n", " warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bins = np.linspace(0, 48, 48) #48 hours\n", "plt.hist((normal_df.Time/(60*60)), bins, alpha=1, normed=True, label='Normal')\n", "plt.hist((fraud_df.Time/(60*60)), bins, alpha=0.6, normed=True, label='Fraud')\n", "plt.legend(loc='upper right')\n", "plt.title(\"Percentage of transactions by hour\")\n", "plt.xlabel(\"Transaction time as measured from first transaction in the dataset (hours)\")\n", "plt.ylabel(\"Percentage of transactions (%)\");\n", "#plt.hist((df.Time/(60*60)),bins)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:58.767541Z", "start_time": "2019-05-14T23:03:56.421091Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter((normal_df.Time/(60*60)), normal_df.Amount, alpha=0.6, label='Normal')\n", "plt.scatter((fraud_df.Time/(60*60)), fraud_df.Amount, alpha=0.9, label='Fraud')\n", "plt.title(\"Amount of transaction by hour\")\n", "plt.xlabel(\"Transaction time as measured from first transaction in the dataset (hours)\")\n", "plt.ylabel('Amount (USD)')\n", "plt.legend(loc='upper right')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:03:58.950975Z", "start_time": "2019-05-14T23:03:58.771245Z" } }, "outputs": [], "source": [ "y = df['Class']\n", "X = df.drop('Class', axis=1)\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "ExecuteTime": { "end_time": "2019-05-15T18:39:31.113587Z", "start_time": "2019-05-15T18:39:21.051870Z" } }, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Number of observations per class')" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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YqztRUREZHYzsy1Es7v+Ktdlkfyjlj6RGcLM/ix0nagh+oX2QQV8IiIiIjJZCvpEZo6PEXVheZWoH/zHM28uIiIiIjI2de8UERERERHJY2rpExERERERyWMK+kRERERERPJYLNcFmKi6ujpfunRproshIiLT7Lnnnmt29/pcl2O2UP0oIjJ3ZFtHztqgb+nSpaxZsybXxRARkWlmZq/lugyziepHEZG5I9s6Ut07RURERERE8piCPhERERERkTymoE9ERERERCSPzdoxfSIis1F/fz+NjY309vbmuigzTklJCYsWLSIej+e6KCIiInlFQZ+IyAHU2NhIZWUlS5cuxcxyXZwZw91paWmhsbGRhoaGXBdHREQkr6h7p4jIAdTb28v8+fMV8I1gZsyfP18toCIiItNAQZ+IyAGmgC89vS4iIiLTQ0Ffltq7+3h+axuPr9/N81vbaO/uy3WRREQmxMy4+uqrh55/5Stf4brrrjugZfjwhz/Mvffee0CPKSIiMlcp6MtCMuDrSwxSU1ZEX2JQgZ+IzFrFxcXcd999NDc3T2j/RCIxxSUSERGR6aSJXLKwubmLsqIYZUXRy5X8u7m5i+OXFOWyaCKS59q7+9jc3EVHTz9VpXEa6sqpLpvc904sFuOKK67g61//OjfccMOwda+99hof+chHaGpqor6+nttuu40lS5bw4Q9/mNraWp5//nlOOOEEKisr2bx5Mzt27OCVV17ha1/7Gk8//TQPPfQQCxcu5MEHHyQej3P99dfz4IMP0tPTwymnnMJ3v/tddeMUERE5wNTSl4WOnn5K44XD0krjhXT09OeoRCIyF0xnL4Mrr7ySu+66iz179gxLv+qqq7jkkktYu3YtF110EX/zN38ztO6VV17hV7/6FV/96lcBePXVV/nFL37B/fffz4c+9CHe85738OKLL1JaWsovfvGLofyeffZZXnrpJXp6evj5z38+6bKLiIjI+KilLwtVpXF6+geGWvgAevoHqCrVvaREZPpMZy+DqqoqLrnkEm688UZKS0uH0p966inuu+8+AC6++GI+/elPD607//zzKSx84wews846i3g8zrHHHsvAwAArV64E4Nhjj2XLli0APPbYY/zzP/8z3d3dtLa2cvTRR3POOedMquxy4Lz9U3fmugiSx577l0tyXQSROWPMlj4zW2xmj5nZOjN72cz+NqRfZ2avm9kL4XF2yj6fM7ONZrbezM5MSV8Z0jaa2WdT0hvM7Bkz22BmPzazGdVnsqGunO6+BN19Cdx9aLmhrjzXRRORPDbdvQw++clPcsstt9DV1TXqNqldMcvLh3/nFRcXA1BQUEA8Hh/atqCggEQiQW9vL5/4xCe49957efHFF7n88st1SwYREZEcyKZ7ZwK42t2PBE4GrjSzo8K6r7v78vBYDRDWXQAcDawEvmNmhWZWCHwbOAs4CrgwJZ9/CnktA9qAy6bo/KZEdVkRxy+poShWQFt3H0WxAo5fUjPpcTUiIpkkexmkmspeBrW1tXzwgx/klltuGUo75ZRTuPvuuwG46667ePe73z3h/JMBXl1dHXv37tVsnSIiIjkyZtDn7jvc/XdhuRNYByzMsMu5wN3uvs/dNwMbgRPDY6O7b3L3PuBu4FyLfhp+L5C8GrgDOG+iJzRdkoHfqUcsUMAnIgfEgehlcPXVVw+bxfPGG2/ktttu47jjjuP73/8+3/jGNyacd3V1NZdffjnHHnss5513Hu94xzumosgiIiIyTubu2W9sthR4AjgG+Hvgw0AHsIaoNbDNzL4FPO3uPwj73AI8FLJY6e4fDekXAycB14XtDw/pi4GH3P2YTGVZsWKFr1mzJuuyi4jMBOvWrePII4/MevvpmL1zJkv3+pjZc+6+IkdFmnWmsn7UmD6ZThrTJzJ52daRWc/eaWYVwE+AT7p7B3AT8GZgObAD+Gpy0zS7+wTS05XhCjNbY2Zrmpqasi26iMispV4GIiIiMllZBX1mFicK+O5y9/sA3H2Xuw+4+yDwPaLumwCNwOKU3RcB2zOkNwPVZhYbkb4fd7/Z3Ve4+4r6+vpsii4iIiIiIjKnZTN7pwG3AOvc/Wsp6YekbPZnwEth+QHgAjMrNrMGYBnwW+BZYFmYqbOIaLKXBzzqX/oY8IGw/yrg/smdloiIiIiIiEB29+l7F3Ax8KKZvRDSriGafXM5UVfMLcDHANz9ZTO7B/gD0cyfV7r7AICZXQU8DBQCt7r7yyG/zwB3m9kXgeeJgkwRERERERGZpDGDPnd/kvTj7lZn2OcG4IY06avT7efum3ije6iIiIiIiIhMkawnchEREREREZHZR0GfiMgcU1hYyPLly4ceW7ZsmfJjbNmyhWOOyXjnHRERETlAshnTJyIieaS0tJQXXnhh1PWJRIJYTNWDiIhIvlBLn4jITNbdCo3PwsZfRX+7W6flMLfffjvnn38+55xzDmeccQZ79+7l9NNP54QTTuDYY4/l/vujSZVHtuB95Stf4brrrgPgueee421vexvvfOc7+fa3vz20zcDAAJ/61Kd4xzvewXHHHcd3v/vdaTkHERERSU8/5YqIzFTdrfD6GoiXQ2kt9PdEzxeugLLaCWfb09PD8uXLAWhoaOCnP/0pAE899RRr166ltraWRCLBT3/6U6qqqmhububkk0/mT//0TzPme+mll/LNb36TU089lU996lND6bfccgvz5s3j2WefZd++fbzrXe/ijDPOoKGhYcLnICIiItlT0CciMlO1vhoFfEVl0fPk39ZXJxX0jda9833vex+1tVG+7s4111zDE088QUFBAa+//jq7du0aNc89e/bQ3t7OqaeeCsDFF1/MQw89BMAvf/lL1q5dy7333ju07YYNGxT0iYiIHCAK+kREZqrePVELX6p4KfRMTxfP8vLyoeW77rqLpqYmnnvuOeLxOEuXLqW3t5dYLMbg4OAbReztBaIg0Szd3X2idd/85jc588wzp6XcIiIikpnG9ImIzFQl86Iunan6e6L0abZnzx4WLFhAPB7nscce47XXXgPgoIMOYvfu3bS0tLBv3z5+/vOfA1BdXc28efN48skngShoTDrzzDO56aab6O/vB+CVV16hq6tr2s9BREREImrpExGZqWrfHI3hg6iFr78H+rtgwZHTfuiLLrqIc845hxUrVrB8+XLe+ta3RsWIx/n85z/PSSedRENDw1A6wG233cZHPvIRysrKhrXqffSjH2XLli2ccMIJuDv19fX87Gc/m/ZzEBERkYi5e67LMCErVqzwNWvW5LoYIiLjsm7dOo48chxBW3drNIavd0/Uwlf75kmN55vp0r0+Zvacu6/IUZFmnamsH9/+qTunJB+RdJ77l0tyXQSRWS/bOlItfSIiM1lZbV4HeSIiIjL9NKZPREREREQkjynoExERERERyWMK+kREDrDZOpZ6uul1ERERmR4K+kREDqCSkhJaWloU4Izg7rS0tFBSUpLrooiIiOQdTeQiInIALVq0iMbGRpqamnJdlBmnpKSERYsW5boYIiIieUdBn4jIARSPx2loaMh1MURERGQOUfdOERGRDMxssZk9ZmbrzOxlM/vbkH6dmb1u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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Reduce dataset to 2 feature dimensions in order to visualize the data\n", "pca = PCA(n_components=2)\n", "pca.fit(X)\n", "X_reduced = pca.transform(X)\n", "\n", "fig, ax = plt.subplots(1, 2, figsize= (15,5))\n", "\n", "ax[0].scatter(X_reduced[y == 0, 0], X_reduced[y == 0, 1], label=\"Normal\", alpha=0.2)\n", "ax[0].scatter(X_reduced[y == 1, 0], X_reduced[y == 1, 1], label=\"Fraude\", alpha=0.2)\n", "ax[0].set_title('PCA of original dataset')\n", "ax[0].legend()\n", "\n", "ax[1] = sns.countplot(y)\n", "ax[1].set_title('Number of observations per class')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:05.444946Z", "start_time": "2019-05-14T23:04:05.440299Z" } }, "outputs": [], "source": [ "def run_model(X_train, X_test, y_train, y_test):\n", " clf_base = LogisticRegression(C=1.0,penalty='l2',random_state=1,solver=\"newton-cg\")\n", " clf_base.fit(X_train, y_train)\n", " return clf_base" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Modelo sin balancear" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:20.885597Z", "start_time": "2019-05-14T23:04:05.448189Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/scipy/optimize/linesearch.py:461: LineSearchWarning: The line search algorithm did not converge\n", " warn('The line search algorithm did not converge', LineSearchWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/scipy/optimize/linesearch.py:312: LineSearchWarning: The line search algorithm did not converge\n", " warn('The line search algorithm did not converge', LineSearchWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/scipy/optimize/linesearch.py:461: LineSearchWarning: The line search algorithm did not converge\n", " warn('The line search algorithm did not converge', LineSearchWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/scipy/optimize/linesearch.py:312: LineSearchWarning: The line search algorithm did not converge\n", " warn('The line search algorithm did not converge', LineSearchWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/scipy/optimize/linesearch.py:461: LineSearchWarning: The line search algorithm did not converge\n", " warn('The line search algorithm did not converge', LineSearchWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/scipy/optimize/linesearch.py:312: LineSearchWarning: The line search algorithm did not converge\n", " warn('The line search algorithm did not converge', LineSearchWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/sklearn/utils/optimize.py:203: ConvergenceWarning: newton-cg failed to converge. Increase the number of iterations.\n", " \"number of iterations.\", ConvergenceWarning)\n" ] } ], "source": [ "model = run_model(X_train, X_test, y_train, y_test)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:20.895907Z", "start_time": "2019-05-14T23:04:20.888843Z" } }, "outputs": [], "source": [ "def mostrar_resultados(y_test, pred_y):\n", " conf_matrix = confusion_matrix(y_test, pred_y)\n", " plt.figure(figsize=(8, 8))\n", " sns.heatmap(conf_matrix, xticklabels=LABELS, yticklabels=LABELS, annot=True, fmt=\"d\");\n", " plt.title(\"Confusion matrix\")\n", " plt.ylabel('True class')\n", " plt.xlabel('Predicted class')\n", " plt.show()\n", " print (classification_report(y_test, pred_y))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:21.356620Z", "start_time": "2019-05-14T23:04:20.900093Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 1.00 1.00 85295\n", " 1 0.85 0.66 0.74 148\n", "\n", " accuracy 1.00 85443\n", " macro avg 0.93 0.83 0.87 85443\n", "weighted avg 1.00 1.00 1.00 85443\n", "\n" ] } ], "source": [ "pred_y = model.predict(X_test)\n", "mostrar_resultados(y_test, pred_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1 Estrategia: Penalización" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:42.322624Z", "start_time": "2019-05-14T23:04:21.359881Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/sklearn/utils/optimize.py:203: ConvergenceWarning: newton-cg failed to converge. Increase the number of iterations.\n", " \"number of iterations.\", ConvergenceWarning)\n" ] } ], "source": [ "def run_model_balanced(X_train, X_test, y_train, y_test):\n", " clf = LogisticRegression(C=1.0,penalty='l2',random_state=1,solver=\"newton-cg\",class_weight=\"balanced\")\n", " clf.fit(X_train, y_train)\n", " return clf\n", "\n", "model = run_model_balanced(X_train, X_test, y_train, y_test)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:42.757817Z", "start_time": "2019-05-14T23:04:42.325881Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 0.98 0.99 85295\n", " 1 0.07 0.93 0.13 148\n", "\n", " accuracy 0.98 85443\n", " macro avg 0.53 0.95 0.56 85443\n", "weighted avg 1.00 0.98 0.99 85443\n", "\n" ] } ], "source": [ "pred_y = model.predict(X_test)\n", "mostrar_resultados(y_test, pred_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2 NearMiss subsampling del grupo mayoritario" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:53.621130Z", "start_time": "2019-05-14T23:04:42.761449Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distribution of class labels before resampling Counter({0: 199020, 1: 344})\n", "Distribution of class labels after resampling Counter({0: 688, 1: 344})\n" ] } ], "source": [ "us = NearMiss(ratio=0.5, n_neighbors=3, version=2, random_state=1)\n", "X_train_res, y_train_res = us.fit_sample(X_train, y_train)\n", "\n", "print (\"Distribution of class labels before resampling {}\".format(Counter(y_train)))\n", "print (\"Distribution of class labels after resampling {}\".format(Counter(y_train_res)))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:53.899048Z", "start_time": "2019-05-14T23:04:53.629703Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/sklearn/utils/optimize.py:203: ConvergenceWarning: newton-cg failed to converge. Increase the number of iterations.\n", " \"number of iterations.\", ConvergenceWarning)\n" ] } ], "source": [ "model = run_model(X_train_res, X_test, y_train_res, y_test)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:54.359016Z", "start_time": "2019-05-14T23:04:53.902615Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 0.84 0.92 85295\n", " 1 0.01 0.93 0.02 148\n", "\n", " accuracy 0.85 85443\n", " macro avg 0.51 0.89 0.47 85443\n", "weighted avg 1.00 0.85 0.91 85443\n", "\n" ] } ], "source": [ "pred_y = model.predict(X_test)\n", "mostrar_resultados(y_test, pred_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3 Random Oversampling" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:04:54.629840Z", "start_time": "2019-05-14T23:04:54.362403Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distribution of class labels before resampling Counter({0: 199020, 1: 344})\n", "Distribution of class labels after resampling Counter({0: 199020, 1: 99510})\n" ] } ], "source": [ "os = RandomOverSampler(ratio=0.5)\n", "X_train_res, y_train_res = os.fit_sample(X_train, y_train)\n", "\n", "print (\"Distribution of class labels before resampling {}\".format(Counter(y_train)))\n", "print (\"Distribution of class labels after resampling {}\".format(Counter(y_train_res)))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:05:23.238880Z", "start_time": "2019-05-14T23:04:54.633097Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/sklearn/utils/optimize.py:203: ConvergenceWarning: newton-cg failed to converge. Increase the number of iterations.\n", " \"number of iterations.\", ConvergenceWarning)\n" ] } ], "source": [ "model = run_model(X_train_res, X_test, y_train_res, y_test)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:05:23.630293Z", "start_time": "2019-05-14T23:05:23.242376Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 0.99 0.99 85295\n", " 1 0.14 0.89 0.24 148\n", "\n", " accuracy 0.99 85443\n", " macro avg 0.57 0.94 0.62 85443\n", "weighted avg 1.00 0.99 0.99 85443\n", "\n" ] } ], "source": [ "pred_y = model.predict(X_test)\n", "mostrar_resultados(y_test, pred_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4 Combinando Smote tomek" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:05:31.787106Z", "start_time": "2019-05-14T23:05:23.633252Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Distribution of class labels before resampling Counter({0: 199020, 1: 344})\n", "Distribution of class labels after resampling Counter({0: 198194, 1: 98684})\n" ] } ], "source": [ "os_us = SMOTETomek(ratio=0.5)\n", "X_train_res, y_train_res = os_us.fit_sample(X_train, y_train)\n", "\n", "print (\"Distribution of class labels before resampling {}\".format(Counter(y_train)))\n", "print (\"Distribution of class labels after resampling {}\".format(Counter(y_train_res)))" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:06:00.657539Z", "start_time": "2019-05-14T23:05:31.790028Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/scipy/optimize/linesearch.py:461: LineSearchWarning: The line search algorithm did not converge\n", " warn('The line search algorithm did not converge', LineSearchWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/scipy/optimize/linesearch.py:312: LineSearchWarning: The line search algorithm did not converge\n", " warn('The line search algorithm did not converge', LineSearchWarning)\n", "/Users/jbagnato/anaconda3/envs/python36/lib/python3.6/site-packages/sklearn/utils/optimize.py:203: ConvergenceWarning: newton-cg failed to converge. Increase the number of iterations.\n", " \"number of iterations.\", ConvergenceWarning)\n" ] } ], "source": [ "model = run_model(X_train_res, X_test, y_train_res, y_test)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:06:01.062907Z", "start_time": "2019-05-14T23:06:00.661145Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 1.00 1.00 85295\n", " 1 0.28 0.85 0.42 148\n", "\n", " accuracy 1.00 85443\n", " macro avg 0.64 0.92 0.71 85443\n", "weighted avg 1.00 1.00 1.00 85443\n", "\n" ] } ], "source": [ "pred_y = model.predict(X_test)\n", "mostrar_resultados(y_test, pred_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 5 Ensemble balanceado" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:06:03.825482Z", "start_time": "2019-05-14T23:06:01.066317Z" } }, "outputs": [ { "data": { "text/plain": [ "BalancedBaggingClassifier(base_estimator=DecisionTreeClassifier(class_weight=None,\n", " criterion='gini',\n", " max_depth=None,\n", " max_features=None,\n", " max_leaf_nodes=None,\n", " min_impurity_decrease=0.0,\n", " min_impurity_split=None,\n", " min_samples_leaf=1,\n", " min_samples_split=2,\n", " min_weight_fraction_leaf=0.0,\n", " presort=False,\n", " random_state=None,\n", " splitter='best'),\n", " bootstrap=True, bootstrap_features=False,\n", " max_features=1.0, max_samples=1.0, n_estimators=10,\n", " n_jobs=1, oob_score=False, random_state=0, ratio=None,\n", " replacement=False, sampling_strategy='auto',\n", " verbose=0, warm_start=False)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Create an object of the classifier.\n", "bbc = BalancedBaggingClassifier(base_estimator=DecisionTreeClassifier(),\n", " sampling_strategy='auto',\n", " replacement=False,\n", " random_state=0)\n", "\n", "#Train the classifier.\n", "bbc.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:06:04.389730Z", "start_time": "2019-05-14T23:06:03.828249Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 0.99 0.99 85295\n", " 1 0.09 0.88 0.17 148\n", "\n", " accuracy 0.99 85443\n", " macro avg 0.55 0.93 0.58 85443\n", "weighted avg 1.00 0.99 0.99 85443\n", "\n" ] } ], "source": [ "pred_y = bbc.predict(X_test)\n", "mostrar_resultados(y_test, pred_y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Resultados" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "ExecuteTime": { "end_time": "2019-05-14T23:10:42.373790Z", "start_time": "2019-05-14T23:10:42.356242Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
algorithmprecisionrecalloverall
1Penalizacion1.00.930.965
2NearMiss Subsampling1.00.930.965
3Random Oversampling1.00.890.945
5Ensemble1.00.880.940
4Smote Tomek1.00.850.925
0Regresion Logística1.00.660.830
\n", "
" ], "text/plain": [ " algorithm precision recall overall\n", "1 Penalizacion 1.0 0.93 0.965\n", "2 NearMiss Subsampling 1.0 0.93 0.965\n", "3 Random Oversampling 1.0 0.89 0.945\n", "5 Ensemble 1.0 0.88 0.940\n", "4 Smote Tomek 1.0 0.85 0.925\n", "0 Regresion Logística 1.0 0.66 0.830" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame({'algorithm' : ['Regresion Logística', 'Penalizacion', 'NearMiss Subsampling', \n", " 'Random Oversampling', 'Smote Tomek', 'Ensemble'],\n", " 'precision' : [1.0, 1.0, 1.0, 1.0, 1.0, 1.0],\n", " 'recall' : [0.66, 0.93, 0.93, 0.89, 0.85, 0.88]})\n", "\n", "df['overall'] = df.apply(lambda row: (row.precision + row.recall)/2, axis=1)\n", "\n", "df = df.sort_values(['overall'], ascending=False)\n", "df" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.7" } }, "nbformat": 4, "nbformat_minor": 2 }