Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
{ "cells": [ { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>RowNumber</th>\n", " <th>CustomerId</th>\n", " <th>Surname</th>\n", " <th>CreditScore</th>\n", " <th>Geography</th>\n", " <th>Gender</th>\n", " <th>Age</th>\n", " <th>Tenure</th>\n", " <th>Balance</th>\n", " <th>NumOfProducts</th>\n", " <th>HasCrCard</th>\n", " <th>IsActiveMember</th>\n", " <th>EstimatedSalary</th>\n", " <th>Exited</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>1</td>\n", " <td>15634602</td>\n", " <td>Hargrave</td>\n", " <td>619</td>\n", " <td>France</td>\n", " <td>Female</td>\n", " <td>42</td>\n", " <td>2</td>\n", " <td>0.00</td>\n", " <td>1</td>\n", " <td>1</td>\n", " <td>1</td>\n", " <td>101348.88</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>2</td>\n", " <td>15647311</td>\n", " <td>Hill</td>\n", " <td>608</td>\n", " <td>Spain</td>\n", " <td>Female</td>\n", " <td>41</td>\n", " <td>1</td>\n", " <td>83807.86</td>\n", " <td>1</td>\n", " <td>0</td>\n", " <td>1</td>\n", " <td>112542.58</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>3</td>\n", " <td>15619304</td>\n", " <td>Onio</td>\n", " <td>502</td>\n", " <td>France</td>\n", " <td>Female</td>\n", " <td>42</td>\n", " <td>8</td>\n", " <td>159660.80</td>\n", " <td>3</td>\n", " <td>1</td>\n", " <td>0</td>\n", " <td>113931.57</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>4</td>\n", " <td>15701354</td>\n", " <td>Boni</td>\n", " <td>699</td>\n", " <td>France</td>\n", " <td>Female</td>\n", " <td>39</td>\n", " <td>1</td>\n", " <td>0.00</td>\n", " <td>2</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>93826.63</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>5</td>\n", " <td>15737888</td>\n", " <td>Mitchell</td>\n", " <td>850</td>\n", " <td>Spain</td>\n", " <td>Female</td>\n", " <td>43</td>\n", " <td>2</td>\n", " <td>125510.82</td>\n", " <td>1</td>\n", " <td>1</td>\n", " <td>1</td>\n", " <td>79084.10</td>\n", " <td>0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " RowNumber CustomerId Surname CreditScore Geography Gender Age \\\n", "0 1 15634602 Hargrave 619 France Female 42 \n", "1 2 15647311 Hill 608 Spain Female 41 \n", "2 3 15619304 Onio 502 France Female 42 \n", "3 4 15701354 Boni 699 France Female 39 \n", "4 5 15737888 Mitchell 850 Spain Female 43 \n", "\n", " Tenure Balance NumOfProducts HasCrCard IsActiveMember \\\n", "0 2 0.00 1 1 1 \n", "1 1 83807.86 1 0 1 \n", "2 8 159660.80 3 1 0 \n", "3 1 0.00 2 0 0 \n", "4 2 125510.82 1 1 1 \n", "\n", " EstimatedSalary Exited \n", "0 101348.88 1 \n", "1 112542.58 0 \n", "2 113931.57 1 \n", "3 93826.63 0 \n", "4 79084.10 0 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset = pd.read_csv('Churn_Modelling.csv')\n", "dataset.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[619, 'France', 'Female', ..., 1, 1, 101348.88],\n", " [608, 'Spain', 'Female', ..., 0, 1, 112542.58],\n", " [502, 'France', 'Female', ..., 1, 0, 113931.57],\n", " ...,\n", " [709, 'France', 'Female', ..., 0, 1, 42085.58],\n", " [772, 'Germany', 'Male', ..., 1, 0, 92888.52],\n", " [792, 'France', 'Female', ..., 1, 0, 38190.78]], dtype=object)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X = dataset.iloc[:, 3:13].values\n", "X" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 0, 1, ..., 1, 1, 0], dtype=int64)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = dataset.iloc[:, 13].values\n", "y" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import LabelEncoder\n", "labelencoder_X1 = LabelEncoder()\n", "X[:,1] = labelencoder_X1.fit_transform(X[:,1])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[619, 0, 'Female', ..., 1, 1, 101348.88],\n", " [608, 2, 'Female', ..., 0, 1, 112542.58],\n", " [502, 0, 'Female', ..., 1, 0, 113931.57],\n", " ...,\n", " [709, 0, 'Female', ..., 0, 1, 42085.58],\n", " [772, 1, 'Male', ..., 1, 0, 92888.52],\n", " [792, 0, 'Female', ..., 1, 0, 38190.78]], dtype=object)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "labelencoder_X2 = LabelEncoder()\n", "X[:,2] = labelencoder_X2.fit_transform(X[:,2])" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[619, 0, 0, ..., 1, 1, 101348.88],\n", " [608, 2, 0, ..., 0, 1, 112542.58],\n", " [502, 0, 0, ..., 1, 0, 113931.57],\n", " ...,\n", " [709, 0, 0, ..., 0, 1, 42085.58],\n", " [772, 1, 1, ..., 1, 0, 92888.52],\n", " [792, 0, 0, ..., 1, 0, 38190.78]], dtype=object)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1.0, 0.0, 0.0, ..., 1, 1, 101348.88],\n", " [0.0, 0.0, 1.0, ..., 0, 1, 112542.58],\n", " [1.0, 0.0, 0.0, ..., 1, 0, 113931.57],\n", " ...,\n", " [1.0, 0.0, 0.0, ..., 0, 1, 42085.58],\n", " [0.0, 1.0, 0.0, ..., 1, 0, 92888.52],\n", " [1.0, 0.0, 0.0, ..., 1, 0, 38190.78]], dtype=object)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.preprocessing import OneHotEncoder\n", "from sklearn.compose import ColumnTransformer\n", "\n", "transformer = ColumnTransformer(\n", " transformers=[\n", " (\"Churn_Modelling\", # Un nombre de la transformación\n", " OneHotEncoder(categories='auto'), # La clase a la que transformar\n", " [1] # Las columnas a transformar.\n", " )\n", " ], remainder='passthrough'\n", ")\n", "\n", "X = transformer.fit_transform(X)\n", "X" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "X = X[:, 1:]" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(X)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "X_train, X_test, Y_train, Y_test = train_test_split(X,y, test_size = 0.2, random_state = 0)\n", "\n", "from sklearn.preprocessing import StandardScaler\n", "sX = StandardScaler()\n", "X_train = sX.fit_transform(X_train)\n", "X_test = sX.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Using TensorFlow backend.\n", "C:\\Users\\artur\\.conda\\envs\\tensorflow\\lib\\site-packages\\ipykernel_launcher.py:11: UserWarning: Update your `Dropout` call to the Keras 2 API: `Dropout(rate=0.1)`\n", " # This is added back by InteractiveShellApp.init_path()\n", "C:\\Users\\artur\\.conda\\envs\\tensorflow\\lib\\site-packages\\ipykernel_launcher.py:15: UserWarning: Update your `Dropout` call to the Keras 2 API: `Dropout(rate=0.1)`\n", " from ipykernel import kernelapp as app\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/100\n", "8000/8000 [==============================] - 1s 183us/step - loss: 0.4939 - accuracy: 0.7950\n", "Epoch 2/100\n", "8000/8000 [==============================] - 1s 151us/step - loss: 0.4291 - accuracy: 0.8133\n", "Epoch 3/100\n", "8000/8000 [==============================] - 1s 156us/step - loss: 0.4253 - accuracy: 0.8191\n", "Epoch 4/100\n", "8000/8000 [==============================] - 1s 164us/step - loss: 0.4220 - accuracy: 0.8207\n", "Epoch 5/100\n", "8000/8000 [==============================] - 1s 183us/step - loss: 0.4170 - accuracy: 0.8214\n", "Epoch 6/100\n", "8000/8000 [==============================] - 1s 159us/step - loss: 0.4120 - accuracy: 0.8246\n", "Epoch 7/100\n", "8000/8000 [==============================] - 1s 160us/step - loss: 0.4070 - accuracy: 0.8231\n", "Epoch 8/100\n", "8000/8000 [==============================] - 1s 158us/step - loss: 0.4093 - accuracy: 0.8221\n", "Epoch 9/100\n", "8000/8000 [==============================] - 1s 157us/step - loss: 0.4061 - accuracy: 0.8201\n", "Epoch 10/100\n", "8000/8000 [==============================] - 1s 158us/step - loss: 0.3987 - accuracy: 0.8231\n", "Epoch 11/100\n", "8000/8000 [==============================] - 1s 159us/step - loss: 0.4030 - accuracy: 0.8232\n", "Epoch 12/100\n", "8000/8000 [==============================] - 1s 167us/step - loss: 0.4001 - accuracy: 0.8235\n", "Epoch 13/100\n", "8000/8000 [==============================] - 1s 157us/step - loss: 0.4014 - accuracy: 0.8274\n", "Epoch 14/100\n", "8000/8000 [==============================] - 1s 160us/step - loss: 0.3991 - accuracy: 0.8355\n", "Epoch 15/100\n", "8000/8000 [==============================] - 1s 155us/step - loss: 0.3947 - accuracy: 0.8325\n", "Epoch 16/100\n", "8000/8000 [==============================] - 1s 156us/step - loss: 0.3925 - accuracy: 0.8324\n", "Epoch 17/100\n", "8000/8000 [==============================] - 1s 161us/step - loss: 0.3934 - accuracy: 0.8322\n", "Epoch 18/100\n", "8000/8000 [==============================] - 1s 163us/step - loss: 0.3924 - accuracy: 0.8342\n", "Epoch 19/100\n", "8000/8000 [==============================] - 1s 154us/step - loss: 0.3938 - accuracy: 0.8335\n", "Epoch 20/100\n", "8000/8000 [==============================] - 1s 150us/step - loss: 0.3882 - accuracy: 0.8391\n", "Epoch 21/100\n", "8000/8000 [==============================] - 1s 153us/step - loss: 0.3927 - accuracy: 0.8345\n", "Epoch 22/100\n", "8000/8000 [==============================] - 1s 152us/step - loss: 0.3875 - accuracy: 0.8365\n", "Epoch 23/100\n", "8000/8000 [==============================] - 1s 149us/step - loss: 0.3940 - accuracy: 0.8340\n", "Epoch 24/100\n", "8000/8000 [==============================] - 1s 151us/step - loss: 0.3930 - accuracy: 0.8378\n", "Epoch 25/100\n", "8000/8000 [==============================] - 1s 161us/step - loss: 0.3869 - accuracy: 0.8356\n", "Epoch 26/100\n", "8000/8000 [==============================] - 1s 168us/step - loss: 0.3937 - accuracy: 0.8329\n", "Epoch 27/100\n", "8000/8000 [==============================] - 1s 165us/step - loss: 0.3918 - accuracy: 0.8364\n", "Epoch 28/100\n", "8000/8000 [==============================] - 1s 159us/step - loss: 0.3893 - accuracy: 0.8349\n", "Epoch 29/100\n", "8000/8000 [==============================] - 1s 156us/step - loss: 0.3895 - accuracy: 0.8342\n", "Epoch 30/100\n", "8000/8000 [==============================] - 1s 165us/step - loss: 0.3876 - accuracy: 0.8390\n", "Epoch 31/100\n", "8000/8000 [==============================] - 1s 160us/step - loss: 0.3890 - accuracy: 0.8370\n", "Epoch 32/100\n", "8000/8000 [==============================] - 1s 150us/step - loss: 0.3899 - accuracy: 0.8366\n", "Epoch 33/100\n", "8000/8000 [==============================] - 1s 159us/step - loss: 0.3888 - accuracy: 0.8372\n", "Epoch 34/100\n", "8000/8000 [==============================] - 1s 160us/step - loss: 0.3890 - accuracy: 0.8353\n", "Epoch 35/100\n", "8000/8000 [==============================] - 1s 166us/step - loss: 0.3920 - accuracy: 0.8361\n", "Epoch 36/100\n", "8000/8000 [==============================] - 1s 161us/step - loss: 0.3886 - accuracy: 0.8361\n", "Epoch 37/100\n", "8000/8000 [==============================] - 1s 156us/step - loss: 0.3903 - accuracy: 0.8354\n", "Epoch 38/100\n", "8000/8000 [==============================] - 1s 156us/step - loss: 0.3869 - accuracy: 0.8400\n", "Epoch 39/100\n", "8000/8000 [==============================] - 1s 152us/step - loss: 0.3912 - accuracy: 0.8346\n", "Epoch 40/100\n", "8000/8000 [==============================] - 1s 157us/step - loss: 0.3908 - accuracy: 0.8357\n", "Epoch 41/100\n", "8000/8000 [==============================] - 1s 164us/step - loss: 0.3855 - accuracy: 0.8372\n", "Epoch 42/100\n", "8000/8000 [==============================] - 1s 168us/step - loss: 0.3887 - accuracy: 0.8389\n", "Epoch 43/100\n", "8000/8000 [==============================] - 2s 190us/step - loss: 0.3869 - accuracy: 0.8401\n", "Epoch 44/100\n", "8000/8000 [==============================] - 1s 168us/step - loss: 0.3850 - accuracy: 0.8378\n", "Epoch 45/100\n", "8000/8000 [==============================] - 1s 161us/step - loss: 0.3891 - accuracy: 0.8379\n", "Epoch 46/100\n", "8000/8000 [==============================] - 1s 165us/step - loss: 0.3857 - accuracy: 0.8394\n", "Epoch 47/100\n", "8000/8000 [==============================] - 1s 149us/step - loss: 0.3868 - accuracy: 0.8355\n", "Epoch 48/100\n", "8000/8000 [==============================] - 1s 151us/step - loss: 0.3881 - accuracy: 0.8380\n", "Epoch 49/100\n", "8000/8000 [==============================] - 1s 151us/step - loss: 0.3827 - accuracy: 0.8370\n", "Epoch 50/100\n", "8000/8000 [==============================] - 1s 154us/step - loss: 0.3877 - accuracy: 0.8395\n", "Epoch 51/100\n", "8000/8000 [==============================] - 1s 154us/step - loss: 0.3913 - accuracy: 0.8360\n", "Epoch 52/100\n", "8000/8000 [==============================] - 1s 168us/step - loss: 0.3841 - accuracy: 0.8370\n", "Epoch 53/100\n", "8000/8000 [==============================] - 1s 160us/step - loss: 0.3862 - accuracy: 0.8371\n", "Epoch 54/100\n", "8000/8000 [==============================] - 1s 154us/step - loss: 0.3865 - accuracy: 0.8364\n", "Epoch 55/100\n", "8000/8000 [==============================] - 1s 186us/step - loss: 0.3903 - accuracy: 0.8382\n", "Epoch 56/100\n", "8000/8000 [==============================] - 1s 163us/step - loss: 0.3888 - accuracy: 0.8345\n", "Epoch 57/100\n", "8000/8000 [==============================] - 1s 157us/step - loss: 0.3855 - accuracy: 0.8374\n", "Epoch 58/100\n", "8000/8000 [==============================] - 1s 150us/step - loss: 0.3853 - accuracy: 0.8384\n", "Epoch 59/100\n", "8000/8000 [==============================] - 1s 151us/step - loss: 0.3898 - accuracy: 0.8344\n", "Epoch 60/100\n", "8000/8000 [==============================] - 1s 163us/step - loss: 0.3921 - accuracy: 0.8369\n", "Epoch 61/100\n", "8000/8000 [==============================] - 1s 163us/step - loss: 0.3840 - accuracy: 0.8430\n", "Epoch 62/100\n", "8000/8000 [==============================] - 1s 158us/step - loss: 0.3825 - accuracy: 0.8409\n", "Epoch 63/100\n", "8000/8000 [==============================] - 1s 150us/step - loss: 0.3850 - accuracy: 0.8414\n", "Epoch 64/100\n", "8000/8000 [==============================] - 1s 172us/step - loss: 0.3888 - accuracy: 0.8381\n", "Epoch 65/100\n", "8000/8000 [==============================] - 1s 175us/step - loss: 0.3869 - accuracy: 0.8375\n", "Epoch 66/100\n", "8000/8000 [==============================] - 1s 170us/step - loss: 0.3850 - accuracy: 0.8389\n", "Epoch 67/100\n", "8000/8000 [==============================] - 2s 218us/step - loss: 0.3860 - accuracy: 0.8372\n", "Epoch 68/100\n", "8000/8000 [==============================] - 1s 178us/step - loss: 0.3911 - accuracy: 0.8375\n", "Epoch 69/100\n", "8000/8000 [==============================] - 1s 156us/step - loss: 0.3853 - accuracy: 0.8370\n", "Epoch 70/100\n", "8000/8000 [==============================] - 1s 162us/step - loss: 0.3850 - accuracy: 0.8399\n", "Epoch 71/100\n", "8000/8000 [==============================] - 1s 169us/step - loss: 0.3860 - accuracy: 0.8397\n", "Epoch 72/100\n", "8000/8000 [==============================] - 1s 168us/step - loss: 0.3873 - accuracy: 0.8380\n", "Epoch 73/100\n", "8000/8000 [==============================] - 1s 166us/step - loss: 0.3823 - accuracy: 0.8428\n", "Epoch 74/100\n", "8000/8000 [==============================] - 1s 167us/step - loss: 0.3860 - accuracy: 0.8395\n", "Epoch 75/100\n", "8000/8000 [==============================] - 1s 156us/step - loss: 0.3854 - accuracy: 0.8355\n", "Epoch 76/100\n", "8000/8000 [==============================] - 1s 164us/step - loss: 0.3847 - accuracy: 0.8391\n", "Epoch 77/100\n", "8000/8000 [==============================] - 1s 171us/step - loss: 0.3873 - accuracy: 0.8353\n", "Epoch 78/100\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "8000/8000 [==============================] - 1s 155us/step - loss: 0.3868 - accuracy: 0.8405\n", "Epoch 79/100\n", "8000/8000 [==============================] - 1s 168us/step - loss: 0.3855 - accuracy: 0.8371\n", "Epoch 80/100\n", "8000/8000 [==============================] - 1s 165us/step - loss: 0.3903 - accuracy: 0.8360\n", "Epoch 81/100\n", "8000/8000 [==============================] - 1s 164us/step - loss: 0.3862 - accuracy: 0.8365\n", "Epoch 82/100\n", "8000/8000 [==============================] - 1s 167us/step - loss: 0.3892 - accuracy: 0.8391\n", "Epoch 83/100\n", "8000/8000 [==============================] - 1s 167us/step - loss: 0.3877 - accuracy: 0.8389\n", "Epoch 84/100\n", "8000/8000 [==============================] - 1s 157us/step - loss: 0.3857 - accuracy: 0.8369\n", "Epoch 85/100\n", "8000/8000 [==============================] - 1s 166us/step - loss: 0.3870 - accuracy: 0.8405\n", "Epoch 86/100\n", "8000/8000 [==============================] - 1s 158us/step - loss: 0.3859 - accuracy: 0.8394\n", "Epoch 87/100\n", "8000/8000 [==============================] - 1s 162us/step - loss: 0.3918 - accuracy: 0.8388\n", "Epoch 88/100\n", "8000/8000 [==============================] - 1s 159us/step - loss: 0.3864 - accuracy: 0.8346\n", "Epoch 89/100\n", "8000/8000 [==============================] - 1s 166us/step - loss: 0.3921 - accuracy: 0.8360\n", "Epoch 90/100\n", "8000/8000 [==============================] - 1s 166us/step - loss: 0.3856 - accuracy: 0.8405\n", "Epoch 91/100\n", "8000/8000 [==============================] - 1s 176us/step - loss: 0.3835 - accuracy: 0.8406\n", "Epoch 92/100\n", "8000/8000 [==============================] - 1s 175us/step - loss: 0.3874 - accuracy: 0.8380\n", "Epoch 93/100\n", "8000/8000 [==============================] - 1s 161us/step - loss: 0.3865 - accuracy: 0.8378\n", "Epoch 94/100\n", "8000/8000 [==============================] - 1s 151us/step - loss: 0.3893 - accuracy: 0.8382\n", "Epoch 95/100\n", "8000/8000 [==============================] - 1s 149us/step - loss: 0.3861 - accuracy: 0.8379\n", "Epoch 96/100\n", "8000/8000 [==============================] - 1s 153us/step - loss: 0.3899 - accuracy: 0.8380\n", "Epoch 97/100\n", "8000/8000 [==============================] - 1s 152us/step - loss: 0.3833 - accuracy: 0.8395\n", "Epoch 98/100\n", "8000/8000 [==============================] - 1s 152us/step - loss: 0.3823 - accuracy: 0.8386\n", "Epoch 99/100\n", "8000/8000 [==============================] - 1s 153us/step - loss: 0.3845 - accuracy: 0.8385\n", "Epoch 100/100\n", "8000/8000 [==============================] - 1s 151us/step - loss: 0.3898 - accuracy: 0.8349\n" ] }, { "data": { "text/plain": [ "<keras.callbacks.callbacks.History at 0x1bf32632e08>" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#construimos nuestra red neuronal\n", "import keras\n", "from keras.models import Sequential\n", "from keras.layers import Dense\n", "from keras.layers import Dropout\n", "\n", "clf = Sequential()\n", "\n", "#primera capa\n", "clf.add(Dense(units = 6,kernel_initializer = \"uniform\", activation = \"relu\", input_dim = 11))\n", "clf.add(Dropout(p=0.1))\n", "\n", "#segunda capa\n", "clf.add(Dense(units = 6,kernel_initializer = \"uniform\", activation = \"relu\"))\n", "clf.add(Dropout(p=0.1))\n", "\n", "#segunda capa\n", "clf.add(Dense(units = 1,kernel_initializer = \"uniform\", activation = \"sigmoid\"))\n", "\n", "#compilador de la RNA\n", "clf.compile(optimizer = \"adam\", loss = \"binary_crossentropy\", metrics = [\"accuracy\"])\n", "\n", "clf.fit(X_train, Y_train, batch_size = 10, epochs = 100)\n", "\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import itertools\n", "import matplotlib.pyplot as plt\n", "\n", "def plot_confusion_matrix(cm, classes,\n", " normalize=False,\n", " title='Confusion matrix',\n", " cmap=plt.cm.Blues):\n", " \"\"\"\n", " This function prints and plots the confusion matrix.\n", " Normalization can be applied by setting `normalize=True`.\n", " \"\"\"\n", " plt.imshow(cm, interpolation='nearest', cmap=cmap)\n", " plt.title(title)\n", " plt.colorbar()\n", " tick_marks = np.arange(len(classes))\n", " plt.xticks(tick_marks, classes, rotation=45)\n", " plt.yticks(tick_marks, classes)\n", "\n", " if normalize:\n", " cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n", " print(\"Normalized confusion matrix\")\n", " else:\n", " print('Confusion matrix, without normalization')\n", "\n", " print(cm)\n", "\n", " thresh = cm.max() / 2.\n", " for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n", " plt.text(j, i, cm[i, j],\n", " horizontalalignment=\"center\",\n", " color=\"white\" if cm[i, j] > thresh else \"black\")\n", "\n", " plt.tight_layout()\n", " plt.ylabel('True label')\n", " plt.xlabel('Predicted label')" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.2783052 ],\n", " [0.23257479],\n", " [0.13026379],\n", " ...,\n", " [0.24824134],\n", " [0.17281795],\n", " [0.22080016]], dtype=float32)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#predecir\n", "y_pred = clf.predict(X_test)\n", "y_pred" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[False],\n", " [False],\n", " [False],\n", " ...,\n", " [False],\n", " [False],\n", " [False]])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_pred = (y_pred>0.5)\n", "y_pred" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.856\n" ] } ], "source": [ "# Elaborar una matriz de confusión\n", "from sklearn.metrics import confusion_matrix\n", "cm = confusion_matrix(Y_test, y_pred)\n", "print((cm[0][0]+cm[1][1])/cm.sum())" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Confusion matrix, without normalization\n", "[[1539 56]\n", " [ 232 173]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_confusion_matrix(cm, ['Si deja el banco','No deja el banco'],title='Matriz de confusión')" ] }, { "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.7.9" } }, "nbformat": 4, "nbformat_minor": 4 }
Compartilhar