class: middle, center, inverse, title-slide # ALGORITMOS DE APRENDIZAJE AUTOMÁTICO PARA PREDECIR LA MOROSIDAD EN EL OTORGAMIENTO DE CRÉDITO EN LAS INSTITUCIONES FINANCIERAS - PUNO ## Julio Cesar Carpio Ticona ### Puno - Perú ### 2018-08-11 --- # **CONTENIDO** ### **1. EL PROBLEMA** ### **2. REVISIÓN DE LA LITERATURA** ### **3. METODOLOGÍA** ### **4. PRUEBAS, RESULTADOS Y DISCUSIÓN** ### **5. CONCLUSIONES Y RECOMENDACIONES** --- class: inverse, middle, center # **EL PROBLEMA** --- # **PROBLEMA** -- - El otorgamiento de crédito es una de las principales operaciones de las Entidades Financieras, representa no sólo la fuente principal de ingresos, también puede representar la fuente de múltiples y significativos problemas. -- - Si existe créditos en retraso o de no pago estos son los causantes de insolvencia y descapitalización atentando contra la solidez y sostenimiento de la institución en el largo plazo. -- <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/creditos1.png"; style="width:700px;height:300px;float:middle;"> --- # **PROBLEMA** -- Cuando un crédito concedido no se recupera en tiempo y forma, el riesgo de morosidad tiende a incrementarse, incurriendo en mayores gastos para su recuperación (gasto de cobranza). La falta de recuperación de los créditos, es un problema serio que podría derivar en el cierre de la entidad financiera. -- <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/morosos.png"; style="width:750px;height:360px;float:left;"> --- # **PROBLEMA** <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/morosospuno.png"; style="width:850px;height:420px;float:rigth;"> --- class: center, bottom, inverse background-image: url("E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/pregunta2.jpg") background-size: cover # **PROBLEMA GENERAL** ## ¿Qué algoritmo de aprendizaje automático será el más eficiente para predecir la morosidad en el otorgamiento de crédito en las Instituciones Financieras para garantizar una futura toma de decisión adecuada por parte de los administradores de riesgo respecto a brindar crédito a los clientes? --- class: left, top, inverse background-image: url("E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/fondo1.png") ## **PROBLEMAS ESPECÍFICOS** -- ### ¿De qué manera se puede estimar y validar los algoritmos de aprendizaje automático para predecir la morosidad en el otorgamiento de crédito y así conocer su nivel de certeza? -- ### ¿Cuál será el mejor método para comparar los algoritmos de aprendizaje automático y de este modo obtener el mejor de ellos para la predicción de la morosidad en el otorgamiento de crédito en las instituciones financieras? -- ### ¿El diseño adecuado de un sistema web permitirá la predicción de la morosidad en el otorgamiento de crédito en las instituciones financieras? --- class: inverse, middle, center # **OBEJETIVOS DE LA INVESTIGACIÓN** --- class: center, bottom, inverse background-image: url("E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/objetivo.jpg") background-size: cover # **OBJETIVO GENERAL** ## Determinar el mejor algoritmo de aprendizaje automático para predecir la morosidad en el otorgamiento de crédito en las instituciones financieras para así garantizar la toma de decisiones adecuada por parte de los administradores de riesgo respecto a brindar crédito a los clientes. --- class: left, top, inverse background-image: url("E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/objetivo2.jpg") background-size: cover # **OBJETIVOS ESPECÍFICOS** -- ### Estimar y validar los algoritmos de aprendizaje automático para predecir la morosidad en el otorgamiento de crédito en las instituciones financieras. -- ### Comparar los algoritmos de aprendizaje automático y obtener el mejor algoritmo para la predicción de la morosidad en el otorgamiento de crédito en las instituciones financieras. -- ### Implementar con el mejor algoritmo de aprendizaje automático un sistema web de predicción de la morosidad en el otorgamiento de crédito en las instituciones financieras. --- class: inverse, middle, center # **HIPÓTESIS DE LA INVESTIGACIÓN** --- class: center, bottom, inverse background-image: url("E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/hipotesisfondo.jpg") background-size: cover # **HIPÓTESIS GENERAL** ## Implementando un algoritmo de aprendizaje automático permitirá la eficiente predicción de la morosidad en el otorgamiento de crédito en las instituciones financieras mejorando la toma de decisión por parte de los administradores de crédito. --- class: left, top, inverse background-image: url("E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/hipotesisfondo2.png") ## **HIPÓTESIS ESPECÍFICOS** -- ### Los algoritmos de aprendizaje automático proporcionan resultados eficientes en la predicción de la morosidad crediticia, todos con un grado de certeza superior al 70%. -- ### El uso de validación cruzada permite comparar el desempeño conjunto de los algoritmos y por consiguiente obtener el mejor para predecir la morosidad en el otorgamiento de crédito. -- ### El uso del mejor algoritmo de aprendizaje automático facilita la implementación del sistema web de predicción de morosidad en el otorgamiento de crédito. --- class: inverse, middle, center # **REVISIÓN DE LA LITERATURA** --- # **SISTEMA FINANCIERO PERUANO** <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/sistemafinanciero.png"; style="width:850px;height:420px;float:rigth;"> --- # **PROCESO DEL CRÉDITO** -- .full-width[** El Crédito** es la operacion financiera donde una entidad le concede a otra una cantidad de dinero en una cuenta a su disposicion, comprometiendose a devolver todo el dinero tomado, pagando ademas un interés por el uso de esa cantidad.] <p> </p> -- <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/procesocredito.png"; style="width:700px;height:400px;float:middle;"> --- # **CONCEPTOS IMPORTANTES** -- **Minería Datos:** Proceso de descubrir información útil a partir del análisis de grandes volúmenes de datos cuyo objetivo es predecir tendencias o comportamientos y obtener modelos que previamente eran desconocidos. -- **Aprendizaje Automático:** Construcción de programas que utilizando la experiencia sean capaces de mejorar automáticamente su rendimiento (**`Aprendizaje supervisado y no supervisado`**). -- <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/dm-ml.png"; style="width:700px;height:340px;float:middle;"> --- # **CONCEPTOS IMPORTANTES** -- <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/mteorico1.png"; style="width:820px;height:500px;float:middle;"> --- # **MODELOS DE APRENDIZAJE AUTOMÁTICO** <p> </p> -- <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/modelosml.png"; style="width:800px;height:480px;float:middle;"> --- class: middle, center # **MÉTODOS DE EVALUACIÓN** <p> </p> <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/metodosevalua.png"; style="width:800px;height:480px;float:middle;"> --- class: inverse, middle, center # **METODOLOGÍA** --- class: middle, center # **METODOLOGÍA** <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/metodologia.png"; style="width:800px;height:480px;float:middle;"> --- class: middle, center # **METODOLOGÍA CRISP-DM** <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/crisp-dm1.png"; style="width:800px;height:500px;float:middle;"> --- class: inverse, middle, center # ** PRUEBAS Y RESULTADOS** --- ### Código en R (Entrenamiento y Prueba) y Modelo General -- ```r library(RODBC) library(DT) canal<-odbcConnect("H-MYSQL",uid = "root") datos<-sqlQuery(canal,"SELECT *FROM creditomodelo") close(canal) set.seed(134) # training 70% y testing 30% dividir <- sample(2, nrow(datos), replace = TRUE, prob = c(0.7, 0.3)) entrenamiento <- datos[dividir == 1, ] prueba <- datos[dividir == 2, ] ``` -- <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/modelogeneral.png"; style="width:570px;height:340px;float:middle;"> --- ## Árboles de Decisión ```r library(RODBC); library(rpart) canal<-odbcConnect("H-MYSQL",uid = "root") datos<-sqlQuery(canal,"SELECT *FROM creditomodelo") datos<-datos[,-1] datos$salario<-as.factor(datos$salario) datos$tiemporesidencia<-as.factor(datos$tiemporesidencia) datos$diasatraso<-as.factor(datos$diasatraso) close(canal) set.seed(134) # training 70% y testing 30% dividir <- sample(2, nrow(datos), replace = TRUE, prob = c(0.8, 0.2)) entrenamiento <- datos[dividir == 1, ] prueba <- datos[dividir == 2, ] modelo_arbol <- rpart(resultado~., data = entrenamiento, control = rpart.control(minsplit = 60,minbucket = 0.66,cp = 0.01,maxdepth = 30)) prediccion_arbolROC <- predict(modelo_arbol, prueba, type = "prob") # se usa para hallar plotROC prediccion_arbol <- predict(modelo_arbol, prueba[,-20], type = "class") # se usa para hallar MC MC <- table(prueba$resultado,prediccion_arbol) acierto <- sum(diag(MC))/sum(MC) error <- 1-acierto score_arbol <- prediccion_arbolROC[,2] clase_arbol <- prueba$resultado ``` --- class: top, center # Árboles de Decisión <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/arbol.png"; style="width:800px;height:500px;float:middle;"> --- ## Bosques Aleatorios ```r library(RODBC); library(randomForest) canal<-odbcConnect("H-MYSQL",uid = "root") datos<-sqlQuery(canal,"SELECT *FROM creditomodelo") datos<-datos[,-1] datos$salario<-as.factor(datos$salario) datos$tiemporesidencia<-as.factor(datos$tiemporesidencia) datos$diasatraso<-as.factor(datos$diasatraso) close(canal) set.seed(134) # training 80% y testing 20% dividir <- sample(2, nrow(datos), replace = TRUE, prob = c(0.8, 0.2)) entrenamiento <- datos[dividir == 1, ] prueba <- datos[dividir == 2, ] modelo_bosque<-randomForest(resultado~.,data = entrenamiento,importance=TRUE, ntree = 500) prediccion_bosque <- predict(modelo_bosque, prueba[,-20], type = "class") # para hallar MC prediccion_bosqueROC <- predict(modelo_bosque, prueba[,-20], type = "prob") # para hallar ROC MC<-table(prueba$resultado,prediccion_bosque) acierto<-sum(diag(MC))/sum(MC) error <- 1-acierto score <- prediccion_bosqueROC[,2] clase <- prueba$resultado ``` --- class: top, center # Bosques Aleatorios <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/bosque.png"; style="width:800px;height:500px;float:middle;"> --- ## Redes Neuronales ```echo library(RODBC); library(nnet) canal<-odbcConnect("H-MYSQL",uid = "root") datos<-sqlQuery(canal,"SELECT *FROM creditomodelo"); datos<-datos[,-1] datos$salario<-as.factor(datos$salario) datos$tiemporesidencia<-as.factor(datos$tiemporesidencia) datos$diasatraso<-as.factor(datos$diasatraso) close(canal) set.seed(134) # training 80% y testing 20% dividir <- sample(2, nrow(datos), replace = TRUE, prob = c(0.8, 0.2)) entrenamiento <- datos[dividir == 1, ] ; prueba <- datos[dividir == 2, ] modelo_red <- nnet(resultado~.,data = entrenamiento, MaxNWts = 16000, size = 300, rang = 0.1, decay = 5e-4, maxit = 400, trace = FALSE) prediccion_red <- predict(modelo_red, prueba[,-20], type = "class") # para MC prediccion_redROC <- predict(modelo_red, prueba[,-20], type = "raw") # para ROC MC<-table(prueba$resultado,prediccion_red) acierto<-sum(diag(MC))/sum(MC) error <- 1-acierto score_red <- prediccion_redROC[,1] #score <- attributes(prediccion)$probabilities[,1] clase_red <- prueba$resultado ``` --- class: top, center # Redes Neuronales <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/redes.png"; style="width:800px;height:500px;float:middle;"> --- ### Máquinas de Vectores de Soporte ```r library(RODBC); library(e1071) canal<-odbcConnect("H-MYSQL",uid = "root") datos<-sqlQuery(canal,"SELECT *FROM creditomodelo"); datos<-datos[,-1] datos$salario<-as.factor(datos$salario) datos$tiemporesidencia<-as.factor(datos$tiemporesidencia) datos$diasatraso<-as.factor(datos$diasatraso) close(canal) set.seed(134) # training 80% y testing 20% dividir <- sample(2, nrow(datos), replace = TRUE, prob = c(0.8, 0.2)) entrenamiento <- datos[dividir == 1, ] ; prueba <- datos[dividir == 2, ] modelo_svmPol <- svm(resultado~., data = entrenamiento,kernel = "polynomial", probability = TRUE) modelo_svmSig <- svm(resultado~., data = entrenamiento,kernel = "sigmoid", probability = TRUE) modelo_svmRad <- svm(resultado~., data = entrenamiento,kernel = "radial", probability = TRUE) modelo_svmLin <- svm(resultado~., data = entrenamiento,kernel = "linear", probability = TRUE) prediccion_svmPol <- predict(modelo_svmPol, prueba[,-20], probability = TRUE) prediccion_svmSig <- predict(modelo_svmSig, prueba[,-20], probability = TRUE) prediccion_svmRad <- predict(modelo_svmRad, prueba[,-20], probability = TRUE) prediccion_svmLin <- predict(modelo_svmLin, prueba[,-20], probability = TRUE) MCPol<-table(prueba$resultado,prediccion_svmPol); MCSig<-table(prueba$resultado,prediccion_svmSig) MCRad<-table(prueba$resultado,prediccion_svmRad); MCLin<-table(prueba$resultado,prediccion_svmLin) aciertoPol<-sum(diag(MCPol))/sum(MCPol); aciertoSig<-sum(diag(MCSig))/sum(MCSig) aciertoRad<-sum(diag(MCRad))/sum(MCRad); aciertoLin<-sum(diag(MCLin))/sum(MCLin) errorPol <- 1-aciertoPol; errorSig <- 1-aciertoSig errorRad <- 1 - aciertoRad; errorLin <- 1- aciertoLin score_svmPol <- attributes(prediccion_svmPol)$probabilities[,2]; clase_svmPol <- prueba$resultado score_svmSig <- attributes(prediccion_svmSig)$probabilities[,2]; clase_svmSig <- prueba$resultado score_svmRad <- attributes(prediccion_svmRad)$probabilities[,2]; clase_svmRad <- prueba$resultado score_svmLin <- attributes(prediccion_svmLin)$probabilities[,2]; clase_svmLin <- prueba$resultado ``` --- class: top, center # Máquinas de Vectores de Soporte <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/svm.png"; style="width:800px;height:500px;float:middle;"> --- class: top, center # Máquinas de Vectores de Soporte <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/curvarocsvm.png"; style="width:800px;height:500px;float:middle;"> --- class: top, center # Evaluando los Algoritmos <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/evaluacion.png"; style="width:800px;height:500px;float:middle;"> --- class: top, center # Evaluando los Algoritmos <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/vcmorosos.png"; style="width:800px;height:500px;float:middle;"> --- class: top, center # Evaluando los Algoritmos <img src="E:/TESIS MAESTRIA UNAP 2018/BORRADOR TESIS MAESTRIA 2017-2018/DIAPOSITIVAS DE SUSTENTACION MAESTRIA/figuras/vcerrores.png"; style="width:800px;height:500px;float:middle;"> --- class: center, middle # GRACIAS! Visitenos en la página de [**Fenix**](https://www.facebook.com/ElFenix-420385404834039/).