{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "
\n", "\n", "# Aprendizaje Profundo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
Diplomado en Inteligencia Artificial y Aprendizaje Profundo
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
Modelo de clasificación para detección de fraude en tarjetas de crédito
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", " \n", "
\n", "
\n", "Lotus Head from Johannesburg, Gauteng, South Africa, CC BY-SA 3.0, via Wikimedia Commons" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Profesores" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Alvaro Montenegro, PhD, ammontenegrod@unal.edu.co\n", "1. Camilo José Torres Jiménez, Msc, cjtorresj@unal.edu.co\n", "1. Daniel Montenegro, Msc, dextronomo@gmail.com " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Asesora Medios y Marketing digital" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Maria del Pilar Montenegro, pmontenegro88@gmail.com\n", "5. Jessica López Mejía, jelopezme@unal.edu.co\n", "6. Venus Puertas, vpuertasg@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jefe Jurídica" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "7. Paula Andrea Guzmán, guzmancruz.paula@gmail.com" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Coordinador Jurídico" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "8. David Fuentes, fuentesd065@gmail.com" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Desarrolladores Principales" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "9. Dairo Moreno, damoralesj@unal.edu.co\n", "10. Joan Castro, jocastroc@unal.edu.co\n", "11. Bryan Riveros, briveros@unal.edu.co\n", "12. Rosmer Vargas, rovargasc@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Expertos en Bases de Datos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "13. Giovvani Barrera, udgiovanni@gmail.com\n", "14. Camilo Chitivo, cchitivo@unal.edu.co" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Contenido " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Introducción](#Introducción)\n", "* [Importa módulos](#Importa-módulos)\n", "* [Los datos](#Los-datos)\n", "* [Lee los datos](#Lee-los-datos)\n", "* [Lectura de datos](#Lectura-de-datos)\n", "* [Preprocesamiento](#Preprocesamiento)\n", "* [Analiza el desbalance en los targets](#Analiza-el-desbalance-en-los-targets)\n", "* [Crea el modelo](#Crea-el-modelo)\n", "* [Define métricas y compila](#Define-métricas-y-compila)\n", "* [Entrena](#Entrena)\n", "* [Predicciones](#Predicciones)\n", "* [Resultados](#Resultados)\n", "* [Evaluación del modelo](#Evaluación-del-modelo)\n", "* [Conclusiones](#Conclusiones)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introducción " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En esta lección hacemos ejemplo de clasificación para detectar fraude en el uso de trajeta de crédito. El ejemplo es adaptado de [fchollet](https://github.com/keras-team/keras-io/blob/master/examples/structured_data/imbalanced_classification.py). Los datos están disponible en [Kaggle Credit Card Fraud Detection](https://www.kaggle.com/mlg-ulb/creditcardfraud/).\n", "\n", "El propósito del ejemplo es ilustrar el caso de datos categóricos altamente desbalanceados. Un problema muy común en la práctica. Usaremos varias métricas para evaluar el modelo.\n", "\n", "La técnica se puede extender a la detección de datos anómalos en grades conjuntos de datos." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Importa módulos " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.12.0\n" ] } ], "source": [ "from __future__ import absolute_import, division, print_function, unicode_literals\n", "#\n", "#import csv\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import tensorflow as tf\n", "#\n", "\n", "from tensorflow.keras.models import Model\n", "#\n", "from tensorflow.keras.layers import Dense, Input, Activation, Dropout\n", "#\n", "from tensorflow.keras.utils import plot_model\n", "#\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.metrics import confusion_matrix\n", "\n", "#\n", "from tensorflow.keras. metrics import FalseNegatives, FalsePositives, TrueNegatives\n", "from tensorflow.keras. metrics import TruePositives, Precision, Recall\n", "#\n", "from tensorflow.keras.optimizers import Adam\n", "#\n", "from tensorflow.keras import callbacks\n", "#\n", "from sklearn.metrics import roc_curve, auc\n", "from sklearn.metrics import roc_auc_score\n", "print(tf.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Los datos " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Excepto por la transacción y el monto, no sabemos cuáles son las otras columnas (por razones de privacidad). Lo único que sabemos es que esas columnas que se desconocen ya se han escalado. Son 284.807 registros y 31 variables.\n", "\n", "- *El monto de la transacción* es relativamente pequeño. La media de todas las transacciones realizadas es de aproximadamente USD 88.\n", "\n", "- *No hay valores faltantes*\n", "\n", "- *La mayoría de las transacciones fueron no fraudulentas* (99,82%) del tiempo, mientras que las transacciones fraudulentas ocurren (0,18%) del tiempo en el marco de datos.\n", "\n", "- *Transformación PCA*: La descripción de los datos dice que todas las características pasaron por una transformación PCA (técnica de reducción de dimensionalidad) (excepto por tiempo y cantidad).\n", "\n", "- *Escalado*: tenga en cuenta que para implementar una transformación de PCA es necesario escalar previamente las variables (features). (En este caso, todas las variables del grupo V se han escalado o al menos eso es lo que suponemos que hicieron las personas que desarrollan el conjunto de datos)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lee los datos " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "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", " \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
..................................................................
284802172786.0-11.88111810.071785-9.834783-2.066656-5.364473-2.606837-4.9182157.3053341.914428...0.2134540.1118641.014480-0.5093481.4368070.2500340.9436510.8237310.770
284803172787.0-0.732789-0.0550802.035030-0.7385890.8682291.0584150.0243300.2948690.584800...0.2142050.9243840.012463-1.016226-0.606624-0.3952550.068472-0.05352724.790
284804172788.01.919565-0.301254-3.249640-0.5578282.6305153.031260-0.2968270.7084170.432454...0.2320450.578229-0.0375010.6401340.265745-0.0873710.004455-0.02656167.880
284805172788.0-0.2404400.5304830.7025100.689799-0.3779610.623708-0.6861800.6791450.392087...0.2652450.800049-0.1632980.123205-0.5691590.5466680.1088210.10453310.000
284806172792.0-0.533413-0.1897330.703337-0.506271-0.012546-0.6496171.577006-0.4146500.486180...0.2610570.6430780.3767770.008797-0.473649-0.818267-0.0024150.013649217.000
\n", "

284807 rows × 31 columns

\n", "
" ], "text/plain": [ " Time V1 V2 V3 V4 V5 \\\n", "0 0.0 -1.359807 -0.072781 2.536347 1.378155 -0.338321 \n", "1 0.0 1.191857 0.266151 0.166480 0.448154 0.060018 \n", "2 1.0 -1.358354 -1.340163 1.773209 0.379780 -0.503198 \n", "3 1.0 -0.966272 -0.185226 1.792993 -0.863291 -0.010309 \n", "4 2.0 -1.158233 0.877737 1.548718 0.403034 -0.407193 \n", "... ... ... ... ... ... ... \n", "284802 172786.0 -11.881118 10.071785 -9.834783 -2.066656 -5.364473 \n", "284803 172787.0 -0.732789 -0.055080 2.035030 -0.738589 0.868229 \n", "284804 172788.0 1.919565 -0.301254 -3.249640 -0.557828 2.630515 \n", "284805 172788.0 -0.240440 0.530483 0.702510 0.689799 -0.377961 \n", "284806 172792.0 -0.533413 -0.189733 0.703337 -0.506271 -0.012546 \n", "\n", " V6 V7 V8 V9 ... V21 V22 \\\n", "0 0.462388 0.239599 0.098698 0.363787 ... -0.018307 0.277838 \n", "1 -0.082361 -0.078803 0.085102 -0.255425 ... -0.225775 -0.638672 \n", "2 1.800499 0.791461 0.247676 -1.514654 ... 0.247998 0.771679 \n", "3 1.247203 0.237609 0.377436 -1.387024 ... -0.108300 0.005274 \n", "4 0.095921 0.592941 -0.270533 0.817739 ... -0.009431 0.798278 \n", "... ... ... ... ... ... ... ... \n", "284802 -2.606837 -4.918215 7.305334 1.914428 ... 0.213454 0.111864 \n", "284803 1.058415 0.024330 0.294869 0.584800 ... 0.214205 0.924384 \n", "284804 3.031260 -0.296827 0.708417 0.432454 ... 0.232045 0.578229 \n", "284805 0.623708 -0.686180 0.679145 0.392087 ... 0.265245 0.800049 \n", "284806 -0.649617 1.577006 -0.414650 0.486180 ... 0.261057 0.643078 \n", "\n", " V23 V24 V25 V26 V27 V28 Amount \\\n", "0 -0.110474 0.066928 0.128539 -0.189115 0.133558 -0.021053 149.62 \n", "1 0.101288 -0.339846 0.167170 0.125895 -0.008983 0.014724 2.69 \n", "2 0.909412 -0.689281 -0.327642 -0.139097 -0.055353 -0.059752 378.66 \n", "3 -0.190321 -1.175575 0.647376 -0.221929 0.062723 0.061458 123.50 \n", "4 -0.137458 0.141267 -0.206010 0.502292 0.219422 0.215153 69.99 \n", "... ... ... ... ... ... ... ... \n", "284802 1.014480 -0.509348 1.436807 0.250034 0.943651 0.823731 0.77 \n", "284803 0.012463 -1.016226 -0.606624 -0.395255 0.068472 -0.053527 24.79 \n", "284804 -0.037501 0.640134 0.265745 -0.087371 0.004455 -0.026561 67.88 \n", "284805 -0.163298 0.123205 -0.569159 0.546668 0.108821 0.104533 10.00 \n", "284806 0.376777 0.008797 -0.473649 -0.818267 -0.002415 0.013649 217.00 \n", "\n", " Class \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 \n", "... ... \n", "284802 0 \n", "284803 0 \n", "284804 0 \n", "284805 0 \n", "284806 0 \n", "\n", "[284807 rows x 31 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fname = '../Datos/fraude/creditcard.csv'\n", "training = pd.read_csv(fname)\n", "training" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preprocesamiento " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Construye tensores para entrada y salida" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tamaño de los targets: (284807,)\n", "tamaño de los features: (284807, 30)\n" ] } ], "source": [ "# Separa features y targets\n", "targets = training.pop('Class')\n", "targets = np.array(targets, dtype = 'uint8')\n", "targets.reshape((targets.shape[0],1))\n", "#\n", "features = np.array(training,dtype = 'float32')\n", "#\n", "print(\"tamaño de los targets: \",targets.shape)\n", "print(\"tamaño de los features: \",features.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prepara datos de entrenamiento y de validación" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of training samples: 227846\n", "Number of validation samples: 56961\n" ] } ], "source": [ "#\n", "num_val_samples = int(len(features) * 0.2)\n", "train_features = features[:-num_val_samples]\n", "train_targets = targets[:-num_val_samples]\n", "val_features = features[-num_val_samples:]\n", "val_targets = targets[-num_val_samples:]\n", "\n", "print(\"Number of training samples:\", len(train_features))\n", "print(\"Number of validation samples:\", len(val_features))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Normaliza los datos" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# crea el objeto StandardScaler\n", "scaler = StandardScaler()\n", "\n", "# Ajusta los parámetros del scaler\n", "scaler.fit(train_features)\n", "\n", "# escala training y test\n", "train_features = scaler.transform(train_features)\n", "val_features = scaler.transform(val_features)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analiza el desbalance en los targets" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of positive samples in training data: 417 (0.18% of total)\n" ] } ], "source": [ "# Cuenta las frecuencias de los datos\n", "counts = np.bincount(train_targets)\n", "print(\n", " \"Number of positive samples in training data: {} ({:.2f}% of total)\".format(\n", " counts[1], 100 * float(counts[1]) / len(train_targets)\n", " )\n", ")\n", "\n", "# Crea los pesos para el entrenamiento. Más peso a los menos frecuentes (1)\n", "weight_for_0 = 1.0 / counts[0]\n", "weight_for_1 = 1.0 / counts[1]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.002398081534772182\n", "4.396976638863118e-06\n" ] } ], "source": [ "print(weight_for_1)\n", "print(weight_for_0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Crea el modelo " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "inputs = Input(shape=(train_features.shape[1],),name='capa_entrada')\n", "\n", "# vamos construyendo capa por capa\n", "x = Activation('relu')(inputs)\n", "x = Dense(256, activation='relu',name='primera_capa_oculta')(x)\n", "x = Dropout(0.3)(x)\n", "x = Dense(256, activation='relu',name='segunda_capa_oculta')(x)\n", "x = Dropout(0.3)(x)\n", "outputs = Dense(1, activation='sigmoid', name='capa_salida')(x)\n", "\n", "# Creamos ahora el modelo\n", "model = Model(inputs=inputs, outputs=outputs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dropout" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Usamos el regularizador Dropout. [Dropout paper](https://jmlr.org/papers/v15/srivastava14a.html). Este regularizador deja por fuera del entrenamiento en cada epoch un porcentaje de las neuronas de la capa, escogidas de forma aleatoria en cada epoch. Por ejemplo *Dropout(0.1)* deja el 10% de las neuronas por fuera del entrenamiento en cada epoch. En el artículo muestran que en muchos casos este regularizador funciona mejor que los clásicos L1 y L2." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summary" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "capa_entrada (InputLayer) [(None, 30)] 0 \n", "_________________________________________________________________\n", "activation (Activation) (None, 30) 0 \n", "_________________________________________________________________\n", "primera_capa_oculta (Dense) (None, 256) 7936 \n", "_________________________________________________________________\n", "dropout (Dropout) (None, 256) 0 \n", "_________________________________________________________________\n", "segunda_capa_oculta (Dense) (None, 256) 65792 \n", "_________________________________________________________________\n", "dropout_1 (Dropout) (None, 256) 0 \n", "_________________________________________________________________\n", "capa_salida (Dense) (None, 1) 257 \n", "=================================================================\n", "Total params: 73,985\n", "Trainable params: 73,985\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.summary()\n", "plot_model(model, to_file='../Imagenes/fraude_model.png', \n", " show_shapes=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define métricas y compila " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- **accuracy_score**: En la clasificación con múltiples etiquetas, esta función calcula la exactitud del subconjunto: el conjunto de etiquetas predichas para una muestra que coincide exactamente con el conjunto de etiquetas correspondiente en y_true.\n", "- **precision_score**: es la razón $\\frac{tp }{tp + fp}$ en donde $tp$ es el número de positivos verdadero y $fp$ el número de falsos positivos. El mejor valor es 1 y el peor valor es 0.\n", "- **recall_score**: es la relación $\\frac{tp }{tp + fn}$ donde $tp$ es el número de verdaderos positivos y $fn$ el número de falsos negativos. El recuerdo es intuitivamente la capacidad del clasificador para encontrar todas las muestras positivas. El mejor valor es 1 y el peor valor es 0." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# métricas\n", "metrics = [\n", " FalseNegatives(name=\"fn\"),\n", " FalsePositives(name=\"fp\"),\n", " TrueNegatives(name=\"tn\"),\n", " TruePositives(name=\"tp\"),\n", " Precision(name=\"precision\"),\n", " Recall(name=\"recall\"),\n", "]\n", "\n", "model.compile(optimizer=Adam(1e-2), loss=\"binary_crossentropy\", metrics=metrics)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Entrena " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tiene en cuenta los pesos de las transacciones" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/30\n", "112/112 - 18s - loss: 2.5566e-06 - fn: 47.0000 - fp: 29882.0000 - tn: 197547.0000 - tp: 370.0000 - precision: 0.0122 - recall: 0.8873 - val_loss: 0.0420 - val_fn: 16.0000 - val_fp: 265.0000 - val_tn: 56621.0000 - val_tp: 59.0000 - val_precision: 0.1821 - val_recall: 0.7867\n", "Epoch 2/30\n", "112/112 - 8s - loss: 1.6997e-06 - fn: 41.0000 - fp: 8006.0000 - tn: 219423.0000 - tp: 376.0000 - precision: 0.0449 - recall: 0.9017 - val_loss: 0.1765 - val_fn: 7.0000 - val_fp: 2572.0000 - val_tn: 54314.0000 - val_tp: 68.0000 - val_precision: 0.0258 - val_recall: 0.9067\n", "Epoch 3/30\n", "112/112 - 8s - loss: 1.6099e-06 - fn: 41.0000 - fp: 8878.0000 - tn: 218551.0000 - tp: 376.0000 - precision: 0.0406 - recall: 0.9017 - val_loss: 0.0939 - val_fn: 10.0000 - val_fp: 1488.0000 - val_tn: 55398.0000 - val_tp: 65.0000 - val_precision: 0.0419 - val_recall: 0.8667\n", "Epoch 4/30\n", "112/112 - 8s - loss: 1.4978e-06 - fn: 43.0000 - fp: 7235.0000 - tn: 220194.0000 - tp: 374.0000 - precision: 0.0492 - recall: 0.8969 - val_loss: 0.0420 - val_fn: 13.0000 - val_fp: 279.0000 - val_tn: 56607.0000 - val_tp: 62.0000 - val_precision: 0.1818 - val_recall: 0.8267\n", "Epoch 5/30\n", "112/112 - 10s - loss: 1.5247e-06 - fn: 37.0000 - fp: 7839.0000 - tn: 219590.0000 - tp: 380.0000 - precision: 0.0462 - recall: 0.9113 - val_loss: 0.1506 - val_fn: 9.0000 - val_fp: 2079.0000 - val_tn: 54807.0000 - val_tp: 66.0000 - val_precision: 0.0308 - val_recall: 0.8800\n", "Epoch 6/30\n", "112/112 - 8s - loss: 1.3110e-06 - fn: 35.0000 - fp: 5885.0000 - tn: 221544.0000 - tp: 382.0000 - precision: 0.0610 - recall: 0.9161 - val_loss: 0.0408 - val_fn: 12.0000 - val_fp: 512.0000 - val_tn: 56374.0000 - val_tp: 63.0000 - val_precision: 0.1096 - val_recall: 0.8400\n", "Epoch 7/30\n", "112/112 - 8s - loss: 1.4277e-06 - fn: 27.0000 - fp: 8756.0000 - tn: 218673.0000 - tp: 390.0000 - precision: 0.0426 - recall: 0.9353 - val_loss: 0.0642 - val_fn: 12.0000 - val_fp: 801.0000 - val_tn: 56085.0000 - val_tp: 63.0000 - val_precision: 0.0729 - val_recall: 0.8400\n", "Epoch 8/30\n", "112/112 - 8s - loss: 1.2510e-06 - fn: 33.0000 - fp: 6961.0000 - tn: 220468.0000 - tp: 384.0000 - precision: 0.0523 - recall: 0.9209 - val_loss: 0.0816 - val_fn: 9.0000 - val_fp: 1471.0000 - val_tn: 55415.0000 - val_tp: 66.0000 - val_precision: 0.0429 - val_recall: 0.8800\n", "Epoch 9/30\n", "112/112 - 8s - loss: 1.0318e-06 - fn: 23.0000 - fp: 6368.0000 - tn: 221061.0000 - tp: 394.0000 - precision: 0.0583 - recall: 0.9448 - val_loss: 0.0197 - val_fn: 13.0000 - val_fp: 270.0000 - val_tn: 56616.0000 - val_tp: 62.0000 - val_precision: 0.1867 - val_recall: 0.8267\n", "Epoch 10/30\n", "112/112 - 9s - loss: 1.0231e-06 - fn: 28.0000 - fp: 6636.0000 - tn: 220793.0000 - tp: 389.0000 - precision: 0.0554 - recall: 0.9329 - val_loss: 0.0340 - val_fn: 11.0000 - val_fp: 590.0000 - val_tn: 56296.0000 - val_tp: 64.0000 - val_precision: 0.0979 - val_recall: 0.8533\n", "Epoch 11/30\n", "112/112 - 9s - loss: 8.7733e-07 - fn: 19.0000 - fp: 5936.0000 - tn: 221493.0000 - tp: 398.0000 - precision: 0.0628 - recall: 0.9544 - val_loss: 0.0548 - val_fn: 11.0000 - val_fp: 1061.0000 - val_tn: 55825.0000 - val_tp: 64.0000 - val_precision: 0.0569 - val_recall: 0.8533\n", "Epoch 12/30\n", "112/112 - 8s - loss: 1.1749e-06 - fn: 27.0000 - fp: 9181.0000 - tn: 218248.0000 - tp: 390.0000 - precision: 0.0407 - recall: 0.9353 - val_loss: 0.1353 - val_fn: 8.0000 - val_fp: 2772.0000 - val_tn: 54114.0000 - val_tp: 67.0000 - val_precision: 0.0236 - val_recall: 0.8933\n", "Epoch 13/30\n", "112/112 - 8s - loss: 9.0946e-07 - fn: 23.0000 - fp: 5973.0000 - tn: 221456.0000 - tp: 394.0000 - precision: 0.0619 - recall: 0.9448 - val_loss: 0.0173 - val_fn: 12.0000 - val_fp: 281.0000 - val_tn: 56605.0000 - val_tp: 63.0000 - val_precision: 0.1831 - val_recall: 0.8400\n", "Epoch 14/30\n", "112/112 - 8s - loss: 8.7442e-07 - fn: 17.0000 - fp: 5818.0000 - tn: 221611.0000 - tp: 400.0000 - precision: 0.0643 - recall: 0.9592 - val_loss: 0.1959 - val_fn: 7.0000 - val_fp: 3019.0000 - val_tn: 53867.0000 - val_tp: 68.0000 - val_precision: 0.0220 - val_recall: 0.9067\n", "Epoch 15/30\n", "112/112 - 8s - loss: 9.7855e-07 - fn: 24.0000 - fp: 8253.0000 - tn: 219176.0000 - tp: 393.0000 - precision: 0.0455 - recall: 0.9424 - val_loss: 0.0145 - val_fn: 12.0000 - val_fp: 217.0000 - val_tn: 56669.0000 - val_tp: 63.0000 - val_precision: 0.2250 - val_recall: 0.8400\n", "Epoch 16/30\n", "112/112 - 8s - loss: 8.3831e-07 - fn: 18.0000 - fp: 6456.0000 - tn: 220973.0000 - tp: 399.0000 - precision: 0.0582 - recall: 0.9568 - val_loss: 0.0388 - val_fn: 11.0000 - val_fp: 763.0000 - val_tn: 56123.0000 - val_tp: 64.0000 - val_precision: 0.0774 - val_recall: 0.8533\n", "Epoch 17/30\n", "112/112 - 8s - loss: 6.8649e-07 - fn: 16.0000 - fp: 5881.0000 - tn: 221548.0000 - tp: 401.0000 - precision: 0.0638 - recall: 0.9616 - val_loss: 0.0558 - val_fn: 10.0000 - val_fp: 1355.0000 - val_tn: 55531.0000 - val_tp: 65.0000 - val_precision: 0.0458 - val_recall: 0.8667\n", "Epoch 18/30\n", "112/112 - 8s - loss: 6.7273e-07 - fn: 14.0000 - fp: 6044.0000 - tn: 221385.0000 - tp: 403.0000 - precision: 0.0625 - recall: 0.9664 - val_loss: 0.0501 - val_fn: 10.0000 - val_fp: 1023.0000 - val_tn: 55863.0000 - val_tp: 65.0000 - val_precision: 0.0597 - val_recall: 0.8667\n", "Epoch 19/30\n", "112/112 - 9s - loss: 6.2794e-07 - fn: 14.0000 - fp: 6144.0000 - tn: 221285.0000 - tp: 403.0000 - precision: 0.0616 - recall: 0.9664 - val_loss: 0.0510 - val_fn: 11.0000 - val_fp: 1209.0000 - val_tn: 55677.0000 - val_tp: 64.0000 - val_precision: 0.0503 - val_recall: 0.8533\n", "Epoch 20/30\n", "112/112 - 9s - loss: 5.8497e-07 - fn: 11.0000 - fp: 6114.0000 - tn: 221315.0000 - tp: 406.0000 - precision: 0.0623 - recall: 0.9736 - val_loss: 0.0133 - val_fn: 13.0000 - val_fp: 251.0000 - val_tn: 56635.0000 - val_tp: 62.0000 - val_precision: 0.1981 - val_recall: 0.8267\n", "Epoch 21/30\n", "112/112 - 9s - loss: 6.1607e-07 - fn: 13.0000 - fp: 6033.0000 - tn: 221396.0000 - tp: 404.0000 - precision: 0.0628 - recall: 0.9688 - val_loss: 0.0564 - val_fn: 10.0000 - val_fp: 1372.0000 - val_tn: 55514.0000 - val_tp: 65.0000 - val_precision: 0.0452 - val_recall: 0.8667\n", "Epoch 22/30\n", "112/112 - 9s - loss: 6.0616e-07 - fn: 8.0000 - fp: 5761.0000 - tn: 221668.0000 - tp: 409.0000 - precision: 0.0663 - recall: 0.9808 - val_loss: 0.1833 - val_fn: 11.0000 - val_fp: 4029.0000 - val_tn: 52857.0000 - val_tp: 64.0000 - val_precision: 0.0156 - val_recall: 0.8533\n", "Epoch 23/30\n", "112/112 - 9s - loss: 6.2629e-07 - fn: 14.0000 - fp: 6845.0000 - tn: 220584.0000 - tp: 403.0000 - precision: 0.0556 - recall: 0.9664 - val_loss: 0.0181 - val_fn: 12.0000 - val_fp: 340.0000 - val_tn: 56546.0000 - val_tp: 63.0000 - val_precision: 0.1563 - val_recall: 0.8400\n", "Epoch 24/30\n", "112/112 - 8s - loss: 6.7303e-07 - fn: 12.0000 - fp: 7362.0000 - tn: 220067.0000 - tp: 405.0000 - precision: 0.0521 - recall: 0.9712 - val_loss: 0.0110 - val_fn: 12.0000 - val_fp: 197.0000 - val_tn: 56689.0000 - val_tp: 63.0000 - val_precision: 0.2423 - val_recall: 0.8400\n", "Epoch 25/30\n", "112/112 - 8s - loss: 5.3338e-07 - fn: 11.0000 - fp: 5530.0000 - tn: 221899.0000 - tp: 406.0000 - precision: 0.0684 - recall: 0.9736 - val_loss: 0.0619 - val_fn: 10.0000 - val_fp: 1571.0000 - val_tn: 55315.0000 - val_tp: 65.0000 - val_precision: 0.0397 - val_recall: 0.8667\n", "Epoch 26/30\n", "112/112 - 8s - loss: 4.9341e-07 - fn: 9.0000 - fp: 5615.0000 - tn: 221814.0000 - tp: 408.0000 - precision: 0.0677 - recall: 0.9784 - val_loss: 0.0215 - val_fn: 12.0000 - val_fp: 474.0000 - val_tn: 56412.0000 - val_tp: 63.0000 - val_precision: 0.1173 - val_recall: 0.8400\n", "Epoch 27/30\n", "112/112 - 9s - loss: 4.9612e-07 - fn: 9.0000 - fp: 5366.0000 - tn: 222063.0000 - tp: 408.0000 - precision: 0.0707 - recall: 0.9784 - val_loss: 0.0494 - val_fn: 10.0000 - val_fp: 1224.0000 - val_tn: 55662.0000 - val_tp: 65.0000 - val_precision: 0.0504 - val_recall: 0.8667\n", "Epoch 28/30\n", "112/112 - 9s - loss: 4.9080e-07 - fn: 7.0000 - fp: 5557.0000 - tn: 221872.0000 - tp: 410.0000 - precision: 0.0687 - recall: 0.9832 - val_loss: 0.1207 - val_fn: 9.0000 - val_fp: 2618.0000 - val_tn: 54268.0000 - val_tp: 66.0000 - val_precision: 0.0246 - val_recall: 0.8800\n", "Epoch 29/30\n", "112/112 - 9s - loss: 5.3789e-07 - fn: 10.0000 - fp: 5416.0000 - tn: 222013.0000 - tp: 407.0000 - precision: 0.0699 - recall: 0.9760 - val_loss: 0.0202 - val_fn: 12.0000 - val_fp: 455.0000 - val_tn: 56431.0000 - val_tp: 63.0000 - val_precision: 0.1216 - val_recall: 0.8400\n", "Epoch 30/30\n", "112/112 - 9s - loss: 4.6956e-07 - fn: 6.0000 - fp: 5282.0000 - tn: 222147.0000 - tp: 411.0000 - precision: 0.0722 - recall: 0.9856 - val_loss: 0.0276 - val_fn: 11.0000 - val_fp: 609.0000 - val_tn: 56277.0000 - val_tp: 64.0000 - val_precision: 0.0951 - val_recall: 0.8533\n" ] } ], "source": [ "callbacks = [callbacks.ModelCheckpoint(\"../Datos/fraude/fraud_model_at_epoch_{epoch}.h5\")]\n", "class_weight = {0: weight_for_0, 1: weight_for_1}\n", "\n", "history = model.fit(\n", " train_features,\n", " train_targets,\n", " batch_size=2048,\n", " epochs=30,\n", " verbose=2,\n", " callbacks=callbacks,\n", " validation_data=(val_features, val_targets),\n", " class_weight=class_weight,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Predicciones " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0., 0., 0., ..., 0., 0., 0.], dtype=float32)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# predict the training set\n", "y_pred_train = model.predict(train_features)\n", "y_pred_train[y_pred_train > 0.5] = 1\n", "y_pred_train[y_pred_train <= 0.5] = 0\n", "y_pred_train.reshape((y_pred_train.shape[0]))\n", "# Predicting the validation set\n", "y_pred_val = model.predict(val_features)\n", "y_pred_val[y_pred_val > 0.5] = 1\n", "y_pred_val[y_pred_val <= 0.5] = 0\n", "y_pred_val.reshape((y_pred_val.shape[0]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Resultados " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calcula métricas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "#\n", "# elimina dimensiones sobrantes\n", "val_targets = np.squeeze(val_targets)\n", "y_pred_val = np.squeeze(y_pred_val)\n", "train_targets = np.squeeze(train_targets)\n", "y_pred_train = np.squeeze(y_pred_train)\n", "#\n", "# falsos negativos validación\n", "fn_val = FalseNegatives()\n", "fn_val.update_state(val_targets, y_pred_val)\n", "fn_val = fn_val.result().numpy()\n", "#\n", "# falsos negativos entrenamiento\n", "fn_train = FalseNegatives()\n", "fn_train.update_state(train_targets, y_pred_train)\n", "fn_train = fn_train.result().numpy()\n", "# \n", "# falsos positivos validación\n", "fp_val = FalsePositives()\n", "fp_val.update_state(val_targets, y_pred_val)\n", "fp_val = fp_val.result().numpy()\n", "#\n", "# falsos positivos entrenamiento\n", "fp_train = FalsePositives()\n", "fp_train.update_state(train_targets, y_pred_train)\n", "fp_train = fp_train.result().numpy()\n", "# \n", "# Precision validación\n", "pre_val = Precision()\n", "pre_val.update_state(val_targets, y_pred_val)\n", "pre_val = pre_val.result().numpy()\n", "#\n", "# falsos negativos entrenamiento\n", "pre_train = Precision()\n", "pre_train.update_state(train_targets, y_pred_train)\n", "pre_train = pre_train.result().numpy()\n", "# \n", "# recall validación\n", "re_val = Recall()\n", "re_val.update_state(val_targets, y_pred_val)\n", "re_val = re_val.result().numpy()\n", "#\n", "# recall entrenamiento\n", "re_train = Recall()\n", "re_train.update_state(train_targets, y_pred_train)\n", "re_train = re_train.result().numpy()\n", "# \n", "\n", "# diccionario\n", "metricas = {'Falsos_positivos_train':fp_train, 'Falsos_positivos_val':fp_val,\n", " '%Falsos_positivos': np.round((fp_train+fp_val)/ len(training)*100,4),\n", " 'Falsos_negativos_train':fn_train, 'Falsos_negativos_val':fn_val,\n", " '%Falsos_negativos': np.round((fn_train+fn_val)/ len(training)*100,4),\n", " 'Precision_train': pre_train, 'Precision_val': pre_val,\n", " 'Recall_train': re_train, 'Recall_val':re_val }" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'Falsos_positivos_train': 3466.0,\n", " 'Falsos_positivos_val': 609.0,\n", " '%Falsos_positivos': 1.4308,\n", " 'Falsos_negativos_train': 2.0,\n", " 'Falsos_negativos_val': 11.0,\n", " '%Falsos_negativos': 0.0046,\n", " 'Precision_train': 0.1069312,\n", " 'Precision_val': 0.09509658,\n", " 'Recall_train': 0.99520385,\n", " 'Recall_val': 0.85333335}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "metricas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evaluación del modelo " ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def plot_metric(history, metric):\n", " train_metrics = history.history[metric]\n", " val_metrics = history.history['val_'+ metric]\n", " epochs = range(1, len(train_metrics) + 1)\n", " plt.plot(epochs, train_metrics, 'bo--')\n", " plt.plot(epochs, val_metrics, 'ro-')\n", " plt.title('Entrenamiento y validación '+ metric)\n", " plt.xlabel(\"Epochs\")\n", " plt.ylabel(metric)\n", " plt.legend([\"train_\"+metric, 'val_'+metric])\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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Cv37YYTtG/cH7dcP+vb1rqo0KEc4ilgGgMU0Ck3IkXAijkMPPZTVq1fzzjvv0NjYyIABAxg+fDhXXnklc+fOpVOnTrz99tusWrWKYcOGRW73b3/7G1/60pcAq4Q7ZswY3njjDT7wgQ8we/ZsGhoa+PjHP8748eOZNGkSV111FV/72tc47bTT+OAHP5joXOKSZYwjn8TGqqgoIt2A04H7QotvBPbBXFkrgB/l21dVb1bVKao6ZfDgwXEOGw8/93THxAlFv3728BZHeahma3FkNCHHJz/5Se6//35+/etfc9ZZZ1FXV0djYyPPPfcc8+fPZ+jQoXnn4ShGocKz55xzDg899BB77LEH06ZN489//jP77bcfzz33HJMmTeLrX/863/3ud8s6n6hkKRwNwF6h96OAd2K2cTLwvKqucgtUdZWq7lTVXcAtmEusesyYAeed1/LeDyPsGDih6NPHC0cavPee5cZ07WrCkXbV7hkz7H85ZgyIpPY/Peuss7jnnnu4//77+eQnP0lzczNDhgyha9euPPnkkyzLZ+WU4Nhjj6UuCNq/8cYbvPXWW+y///4sXryYvffem8suu4zTTz+dF198kXfeeYeePXvymc98hquuuornn3++rPOJSpauqnnAeBEZhwW3zwLOidnG2eS4qURkuKquCN5+DHi53I6WTTCFI507w6JF0MWXAGv3NDebaHTu7F1VaeCsjb33hgULYPPm1hZCuaQ9IQcwceJENmzYwMiRIxk+fDgzZszgox/9KFOmTGHy5MkccMABsdu85JJLmDlzJpMmTaJLly786le/onv37vz617/mzjvvpGvXrgwbNoxvf/vbzJs3j6985St06tSJrl27cuONN6Z6fgVR1cwewCnAG8CbwNXBspnAzOD1MMwyWQ+sC173Ddb1BNYA/XLavAN4CXgReAgYXqofhx9+uGbKrFmqdo+kumRJtsfy1AYXXKA6apS9Pu001UMPrW5/2jrPPGP/n49+1J4bGkru8uqrr1agYx2HfJ8nUK95rqmZ3hqr6iPAIznLbgq9Xom5sPLtuwloNb+hqp6bcjfLp6mp5fXSpRaI87RvmptbquH26wevvlp8e09xnMUxfrw9r1sHI0dWrTue4nifShqsWQO9epmfdunSavfGUwnCwuFdVeWTTzjaIS+99BLnnrv7vW/37t155plnqtSjZHjh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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_metric(history, 'loss')" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_metric(history, 'recall')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusiones " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Al final del entrenamiento, de 56,961 transacciones de validación, se obtuvo:\n", "\n", "- Identificar correctamente a 66 de ellos como fraudulentos\n", "- Faltan 9 transacciones fraudulentas\n", "- A costa de marcar incorrectamente 441 transacciones legítimas\n", "\n", "En el mundo real, se le daría un peso aún mayor a la clase 1,\n", "para reflejar que los falsos negativos son más costosos que los falsos positivos.\n", "\n", "**La próxima vez que su tarjeta de crédito sea rechazada en una compra en línea, ¿será lo anterior la razón?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Ir al inicio](#Contenido)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.6" } }, "nbformat": 4, "nbformat_minor": 4 }