UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
APLICACIÓN DE MODELOS DE CLASIFICACIÓN DE MACHINE
LEARNING EN LA EVALUACIÓN DE SOLICITUDES DE CRÉDITO EN
ENTIDADES FINANCIERAS BASADA EN CARACTERÍSTICAS
SOCIOECONÓMICAS
Integrantes:
● Burgos Torre, Victor Alonso
● Esteban Aquino, Jorge Luis
● Herrera Cubas, Fernando Andrés
● Huaycochea Bayton, Jesus
● Ramos Maldonado, José Carlos
● Ramirez Ucañay, Barbarita Paula Janeth
1. INTRODUCCIÓN
En la era digital actual, el uso de algoritmos de aprendizaje automático ha transformado varias
industrias, incluidas las financieras. La capacidad de estos algoritmos para analizar grandes
cantidades de datos y extraer patrones complejos ha permitido a las instituciones financieras
mejorar significativamente sus procesos de toma de decisiones. Uno de los mayores problemas
que enfrentan los bancos es la evaluación y gestión del riesgo crediticio. La clasificación
precisa de las solicitudes de préstamos es importante para reducir los riesgos de préstamos
pendientes y optimizar las carteras de préstamos.
Este trabajo tiene como objetivo utilizar algoritmos de machine learning para clasificar
personas según su afinidad a la búsqueda de un crédito en función de las características
sociodemográficas del solicitante. Comparando diferentes algoritmos como redes neuronales,
árboles de decisión, árboles forestales aleatorios, máquinas vectoriales, redes bayesianas, etc.,
nos esforzamos por determinar cuál es el más eficaz para esta tarea. La selección y
optimización adecuadas de estos algoritmos no solo pueden mejorar la precisión de los
pronósticos, sino también proporcionar modelos interpretables adecuados para su
implementación en un entorno del mundo real.
La importancia de este estudio radica en su capacidad para mejorar la gestión de riesgos, que
es fundamental para la estabilidad y el crecimiento de las instituciones financieras. Al
implementar modelos de aprendizaje automático precisos y eficaces, los bancos pueden tomar
decisiones informadas, reducir el riesgo de incumplimiento y ofrecer mejores productos y
servicios a sus clientes. Además, este trabajo proporcionará una base sólida para futuras
investigaciones sobre el uso de la inteligencia artificial en el sector financiero y contribuirá al
desarrollo de evaluaciones crediticias mejores y más sólidas.
2. ESTADO DEL ARTE
Las aplicaciones de los fondos mutuos utilizados por las instituciones financieras para estudiar
los algoritmos utilizados por los gestores se ha convertido en un importante área de
investigación debido a la importancia de la gestión de riesgos. Se han realizado varios estudios
sobre el uso de algoritmos como redes neuronales, árboles de decisión, bosques aleatorios,
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
máquinas de vectores de soporte (SVM) y redes bayesianas para mejorar la precisión y
optimizar la predicción de la toma de decisiones.
Las redes neuronales han demostrado un rendimiento excelente en el procesamiento de datos
complejos debido a su capacidad para aprender patrones no lineales. Zhang et al. (2018)
demostraron que las redes neuronales profundas pueden mejorar significativamente la
predicción de riesgos utilizando grandes cantidades de datos históricos. En cambio, se evalúa
la interpretabilidad y usabilidad de la caída de árboles como el algoritmo C4.5. Tomás y col.
(2002) afirmaron que los árboles de decisión proporcionan predicciones eficientes, intuitivas
e interpretables para las solicitudes de procesamiento de préstamos.
Además, las máquinas vectoriales (SVM) y las redes bayesianas se utilizan ampliamente en la
clasificación del riesgo crediticio. Shen (2018) utilizó SVM para detectar fraudes con tarjetas
de crédito y analizar con precisión los efectos significativos de las transacciones fraudulentas.
Las redes bayesianas son adecuadas para la evaluación de riesgos porque pueden combinar el
conocimiento existente y realizar procedimientos más probabilísticos. Estos estudios tienen
como objetivo el desarrollo de la inteligencia artificial en el sector financiero destacando la
importancia de seleccionar y adaptar adecuadamente algoritmos de aprendizaje para resolver
desafíos específicos en las solicitudes de préstamos.
La calidad y los datos representativos son esenciales para el éxito de este modelo. Las técnicas
anteriores, como la clasificación y la imputación de valores perdidos, desempeñan un papel
importante en la preparación de datos para los algoritmos de entrenamiento. La combinación
de métodos sólidos basados en el aprendizaje y una gestión estratégica de la marca crea una
solución eficiente y precisa para distribuir solicitudes de préstamos en el sector financiero.
3. MODELOS DE MACHINE LEARNING PROPUESTOS
A. Fuente de datos para el dataset
El éxito de cualquier modelo de machine learning depende en gran medida de la calidad
y relevancia del conjunto de datos utilizado. Para este proyecto, se ha seleccionado un
dataset que contiene información socio-demográfica de los solicitantes de préstamos,
obtenida de una entidad financiera de los años 2022 y 2023. Este dataset incluye diversas
características que se consideran relevantes para predecir la probabilidad de que un
solicitante de préstamo sea aprobado. A continuación, se describen en detalle los
atributos del dataset:
1. Ubigeo: Código geográfico que identifica la ubicación específica del solicitante. Este
atributo es crucial para analizar la influencia de la ubicación geográfica en la
aprobación de préstamos.
2. Departamento: La región administrativa mayor en la que reside el solicitante. Esto
puede ayudar a identificar patrones regionales en la aprobación de préstamos.
3. Provincia: Una subdivisión del departamento que ofrece una visión más detallada
de la ubicación del solicitante.
4. Distrito: La unidad más pequeña de la ubicación geográfica del solicitante,
proporcionando una granularidad adicional a los datos.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
5. Ocupación Principal: El tipo de empleo formal del solicitante. Esta característica
es esencial para evaluar la estabilidad financiera y la capacidad de reembolso del
préstamo.
6. Ocupación Informal: Tipo de empleo informal del solicitante. Dado que muchos
individuos pueden tener ingresos adicionales no formales, este atributo es relevante
para una evaluación completa de sus ingresos.
7. Sexo: Género del solicitante. Este atributo puede ayudar a identificar posibles
disparidades en la aprobación de préstamos basadas en el género.
8. Edad: La edad del solicitante, que puede influir en la evaluación del riesgo
crediticio.
9. Estado Civil: El estado civil del solicitante. Este atributo puede ser relevante ya que
diferentes estados civiles pueden estar asociados con diferentes niveles de
responsabilidad financiera.
10. Idioma: Idioma principal hablado por el solicitante, lo que puede influir en la
accesibilidad y comprensión de los términos del préstamo.
11. Nivel de Educación: El nivel educativo alcanzado por el solicitante. Un mayor nivel
de educación puede estar correlacionado con un mayor potencial de ingresos y, por
ende, una menor probabilidad de incumplimiento.
12. Tipo de Vivienda: Información sobre si la vivienda del solicitante es propia,
alquilada u otro tipo, lo cual puede influir en su estabilidad financiera.
13. Tipo de Vivienda Legal: La situación legal de la vivienda del solicitante (por
ejemplo, propiedad legalmente registrada, ocupación informal, etc.). Este atributo
puede ser importante para evaluar la seguridad financiera del solicitante.
14. Gasto Total: El total de los gastos mensuales del solicitante. Este atributo es crucial
para entender la capacidad de pago del solicitante después de cubrir sus gastos
habituales.
15. Ingreso: El total de los ingresos mensuales del solicitante, que es una de las
características más importantes para evaluar su capacidad para pagar el préstamo.
Figura 1: Distribución de Ingresos por edad.
Fuente: Elaboración Propia
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Figura 2: Cantidad de personas por Departamento
Fuente: Elaboración Propia
Figura 3: Cantidad de personas por Sexo, idioma, ocupación y
Nivel de educación.
Fuente: Elaboración Propia
B. Clases del dataset
El objetivo del modelo es predecir si una persona ha solicitado un préstamo o no,
representado por una variable binaria:
Solicitó Crédito: Indicador binario donde 1 representa que una persona ha solicitado
un préstamo y 0 representa que no lo ha solicitado.
C. Algoritmos de Machine Learning
1. Árbol de Decisión (J48): Este algoritmo se basa en la creación de un modelo que
predice el valor de la variable objetivo mediante el aprendizaje de reglas de decisión
simples derivadas de las características de los datos. Es conocido por su facilidad de
interpretación y capacidad para manejar tanto datos categóricos como numéricos. El
modelo J48, una implementación del algoritmo C4.5, será utilizado para generar un
árbol de decisión que clasifique a los solicitantes de préstamos. Para el caso de
estudio, se ejecutó el modelo en Weka y en Python obteniendo valores similares,
para el estudio se ingresaron los siguiente parámetros en Weka.
Figura 4: Parámetros del modelo RJ48 en weka.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Fuente: Elaboración Propia
El modelo se entrenó con la data del 2022 y se probó con la data del 2023,
obteniendo los siguientes resultados.
Figura 5: Resultados del modelo RJ48 en weka.
Fuente: Elaboración Propia
Figura 6: Precisión detallada por clase.
Fuente: Elaboración Propia
Figura 7: Matriz de confusión
Fuente: Elaboración Propia
2. Bosques Aleatorios: Este método es una extensión del algoritmo de árboles de
decisión que construye múltiples árboles durante el entrenamiento y genera una
predicción agregada (promedio) de todos los árboles. Es conocido por su capacidad
para mejorar la precisión y reducir el sobreajuste. Se implementarán bosques
aleatorios para evaluar su eficacia en la clasificación de las solicitudes de préstamos.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Se detallan los valores de los parámetros ingresados en weka para la ejecución del
modelo.
Figura 8: Parámetros del modelo Random Forest en weka.
Fuente: Elaboración Propia
El modelo se entrenó con la data del 2022 y se probó con la data del 2023,
obteniendo los siguientes resultados.
Figura 9: Resultados del modelo Random Forest en weka.
Fuente: Elaboración Propia
Figura 10: Precisión detallada por clase.
Fuente: Elaboración Propia
Figura 11: Matriz de confusión
Fuente: Elaboración Propia
3. Redes Neuronales (Perceptrón): Este algoritmo es un modelo simple de red
neuronal que puede aprender y representar relaciones complejas entre las variables
de entrada y la variable objetivo. Utilizaremos un perceptrón simple con una función
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
de activación sigmoidea para clasificar a los solicitantes de préstamos en función de
sus características socio-demográficas. Se detallan los valores de los parámetros
ingresados en weka para la ejecución del modelo.
Figura 12: Parámetros del modelo de Redes Neuronales (Perceptrón).
Fuente: Elaboración Propia
El modelo se entrenó con la data del 2022 y se probó con la data del 2023,
obteniendo los siguientes resultados.
Figura 13: Resultados del modelo de Redes Neuronales.
Fuente: Elaboración Propia
Figura 14: Precisión detallada por clase.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Fuente: Elaboración Propia
Figura 15: Matriz de confusión
Fuente: Elaboración Propia
4. Máquina de Vectores de Soporte (SVM): SVM es un poderoso algoritmo de
clasificación que busca encontrar el hiperplano óptimo que separa las diferentes
clases en el espacio de características. Utilizaremos SVM para evaluar su
rendimiento en la clasificación de solicitudes de préstamos, especialmente para datos
con características linealmente separables. Se detallan los valores de los parámetros
ingresados en weka para la ejecución del modelo.
Figura 16: Parámetros del modelo de SVM.
Fuente: Elaboración Propia
El modelo se entrenó con la data del 2022 y se probó con la data del 2023,
obteniendo los siguientes resultados.
Figura 17: Resultados del modelo de Redes Neuronales.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Fuente: Elaboración Propia
Figura 18: Precisión detallada por clase.
Fuente: Elaboración Propia
Figura 19: Matriz de confusión
Fuente: Elaboración Propia
5. Redes Bayesianas (K2): Las redes bayesianas son modelos probabilísticos gráficos
que representan un conjunto de variables y sus dependencias condicionales a través
de un grafo dirigido acíclico. El algoritmo K2 se utilizará para construir una red
bayesiana que clasifique a los solicitantes de préstamos basado en probabilidades
condicionadas. Se detallan los valores de los parámetros ingresados en weka para la
ejecución del modelo.
Figura 20: Parámetros del modelo de Redes Bayesianas (K2).
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Fuente: Elaboración Propia
El modelo se entrenó con la data del 2022 y se probó con la data del 2023,
obteniendo los siguientes resultados.
Figura 21: Resultados del modelo de Redes Bayesianas (K2)
Fuente: Elaboración Propia
Figura 22: Precisión detallada por clase.
Fuente: Elaboración Propia
Figura 23: Matriz de confusión
Fuente: Elaboración Propia
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
4. DISCUSIÓN:
Modelos de Machine Learning para Predicción:
Para la predicción de que una persona tiene la intención de solicitar un crédito se
utilizaron los algoritmos Redes Neuronales (Perceptron), Árbol de decisión (J48),
Random Forest, Máquina de vectores de soporte (LibSVM), Redes Bayesianas (K2)
y Regresión Logística, donde a continuación mostramos un resumen de los resultados
obtenidos:
Figura 24: Cuadro comparativo de resultados de modelos de clasificación en Weka
Fuente: Elaboración Propia
Figura 25: Cuadro comparativo de resultados de modelos de clasificación en Python
Fuente: Elaboración Propia
Se procesaron 132634 instancias para entrenamiento de un periodo completo del 2022 y
luego se realizaron las pruebas con 129,598 instancias del periodo del 2023 donde
observamos que el modelo Naives es el modelo ha clasificado correctamente mostrando
una precisión global de 64.09% en la plataforma Weka y 61.81% desde otra plataforma
seguido del modelo de Redes Neuronales obteniendo un 61.32 % y 60.45%
respectivamente de ambas plataformas.
Con respecto a la matriz de confusión, veamos el resultado obtenido para los 2 mejores
modelos considerando el recall obtenido: Naive Bayes y Redes Neuronales.
Para Naive Bayes:
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Se tiene una mayor precisión en predecir a las personas con intención y sin intención de
solicitar un crédito, a diferencia del modelo de Redes Neuronales que lo vemos a
continuación.
Para Redes Neuronales:
Se tiene una menor precisión que Naive Bayes respecto a las personas con intención y sin
intención de solicitar un crédito, vemos más falsos positivos y más falsos negativos.
5. CONCLUSIONES
En este presente trabajo se implementaron y compararon varios modelos de Machine
Learning para la clasificación de solicitudes de crédito utilizando características
sociodemográficas de los solicitantes, utilizando datos del 2023 con un entrenamiento
previo con datos del 2022. Además se evaluó tanto en los entornos de WEKA como de
Python. Esto permitió evaluar la capacidad de generalización y estabilidad de los modelos
en el tiempo.
En los resultados obtenidos en WEKA, Random Forest mostró un rendimiento moderado
con una precisión del 51.24%, pero su baja tasa de recall y F1-Score indicaron que tuvo
dificultades para generalizar en el conjunto de datos. Sin embargo, su área bajo la curva
ROC mostró una capacidad razonable para discriminar entre clases. Este rendimiento se
alinea con estudios previos, como el de Byanjankar et al. (2018), que destacan la robustez
de Random Forest en tareas de clasificación con datos desbalanceados, aunque en este
caso particular su baja sensibilidad sugiere la necesidad de un ajuste de los parámetros.
Árbol de Decisión y Naive Bayes también obtuvieron resultados variados. Naive Bayes
se destacó en términos de F1-Score y recall, lo que sugiere que es más efectivo para
disminuir los falsos negativos. Esto es consistente con los hallazgos de Zhang et al.
(2018), quienes señalaron la capacidad de las Redes Neuronales y Naive Bayes para
manejar grandes volúmenes de datos y patrones complejos. Este resultado sugiere que las
configuraciones específicas del modelo o la naturaleza de los datos podrían haber
afectado su rendimiento, lo que difiere de otros estudios donde las Redes Neuronales
sobresalieron.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
En Python, Naive Bayes nuevamente mostró un fuerte rendimiento en recall y AUCROC, lo que reafirma su capacidad para clasificar correctamente las instancias positivas.
La Regresión Logística también mostró un rendimiento sólido, lo que es coherente con
estudios como el de Thomas et al. (2002), que destacan la interpretabilidad y eficacia de
este modelo en tareas de clasificación crediticia. Las Redes Neuronales mantuvieron un
buen balance entre recall y F1-Score, mostrando que son robustas en la detección de
instancias positivas, aunque a costa de una mayor tasa de falsos positivos. SVM y Árbol
de Decisión continuaron mostrando un rendimiento relativamente bajo, lo que sugiere
que pueden no ser los más adecuados para este tipo de datos y problema específico, en
línea con los hallazgos de Shen (2018), quien destacó las limitaciones de SVM en
escenarios de datos no linealmente separables.
Los gráficos de comparación de métricas revelaron que, aunque Random Forest tuvo una
alta precisión, su bajo recall y F1-Score limitaron su capacidad para generalizar y predecir
correctamente las instancias positivas. En contraste, Naive Bayes y Redes Neuronales
lograron un mejor equilibrio en estas métricas, haciéndolas más adecuadas para este
trabajo. Las áreas bajo la curva ROC refuerzan que Naive Bayes y Redes Neuronales
ofrecen una mejor capacidad de discriminación que los demás modelos, especialmente en
situaciones donde es crucial identificar correctamente las instancias positivas. Este
comportamiento es coherente con las conclusiones de otros estudios que subrayan la
importancia de un buen balance entre sensibilidad y precisión en modelos aplicados a
riesgos crediticios (Dastile et al., 2020).
En conclusión, se recomienda un ajuste adicional de los hiperparámetros de Naive Bayes
y Redes Neuronales para mejorar su capacidad de generalización y reducir la tasa de
falsos positivos. Naive Bayes y Redes Neuronales se destacan como las opciones más
robustas para la clasificación de solicitudes de crédito, dado su equilibrio en las métricas
de rendimiento clave. Los resultados sugieren que Naive Bayes es particularmente útil en
situaciones donde es crucial minimizar los falsos negativos, como en la evaluación de
riesgos crediticios, mientras que las Redes Neuronales pueden ser aplicadas en escenarios
donde se necesita un equilibrio entre precisión y sensibilidad. Estos hallazgos
proporcionan una base sólida para la selección de modelos de machine learning en la
evaluación de solicitudes de crédito y ofrecen direcciones claras para futuras
optimizaciones y aplicaciones prácticas en el sector financiero.
6. REFERENCIAS
1. D. Zhang and W. Xu, "A data-distribution based imbalanced data classification method
for credit scoring using neural networks," Journal of Banking & Finance, vol. 37, no. 8,
pp. 2884-2897, Aug. 2018.
2. Vinod Jain, Mayank Agrawal and Anuj Kumar, “Performance Analysis of Machine
Learning”, June, 2020.
3. J. Shen, "Credit Card Fraud Detection Using Autoencoder-Based Deep Neural
Networks," International Journal of Machine Learning and Computing, vol. 8, no. 3,
pp. 279-284, Jun. 2018.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
4. A. Byanjankar, M. Heikkila, and J. Mezei, "Predicting Credit Risk in Peer-to-Peer
Lending: A Neural Network Approach," in Proceedings of the 21st International
Conference on Neural Information Processing Systems, Vancouver, Canada, 2018, pp.
600-610.
5. Regina Turkson, Edward Baagyere and Gideon Wenya, “A Machine Learning
Approach for Predicting Bank Credit Worthiness”, 2016.
6. Debashree Devi, Saroj.K. Biswas and Biswajit Purkayastha, “A Cost-sensitive weighted
Random Forest Technique for Credit Card Fraud Detection”, July 2019.
7. D. Tanouz, R Raja Subramanian, D. Eswar, G. V. Parameswara Reddy, A. Ranjith
kumar and A. Ranjith Kumar, “Credit Card Fraud Detection Using Machine Learning”,
2021.
8. Corso, Cynthia Lorena, “Aplicación de algoritmos de clasificación supervisada usando
Weka.” 2009.
9. Diego García Morate, “Manual Weka”, 2000.
10. L. C. Thomas, J. N. Crook, and D. B. Edelman, Credit Scoring and Its Applications, 1st
ed., Philadelphia, PA, USA: SIAM, 2002.
11. X. Dastile, T. Celik, and M. Potsane, "Statistical and machine learning models in credit
scoring: A systematic literature survey," Appl. Soft Comput., vol. 91, p. 106263, 2020.
12. E. Dumitrescu, S. Hué, C. Hurlin, and S. Tokpavi, "Machine learning for credit scoring:
Improving logistic regression with non-linear decision-tree effects," Eur. J. Oper. Res.,
vol. 297, no. 3, pp. 1178–1192, 2022.
13. A. Fuster, P. Goldsmith-Pinkham, and T. Ramadorai, "Predictably unequal? The effects
of machine learning on credit markets," J. Finance, vol. 77, pp. 5–47, 2022.
14. P. Giudici, B. Hadji-Misheva, and A. Spelta, "Network based credit risk models," Qual.
Eng., vol. 32, pp. 199–211, 2020.
15. S. Mestiri and A. Farhat, "Using non-parametric count model for credit scoring," J.
Quant. Econ., vol. 19, pp. 39–49, 2021.
16. J. P. Noriega, L. A. Rivera, and J. A. Herrera, "Machine Learning for Credit Risk
Prediction: A Systematic Literature Review," Data, vol. 8, no. 11, p. 169, 2023.
17. S. Lessmann, B. Baesens, H. V. Seow, and L. Thomas, "Benchmarking state-of-the-art
classification algorithms for credit scoring: An update of research," European Journal
of Operational Research, vol. 247, pp. 124–136, 2015.
18. M. Díaz, L. Méndez, M. Castro, y J. Romero, "Modelo de Machine Learning Supervisado
para Predecir la Aceptación o Rechazo de un Crédito de Campaña en Mibanco S.A. Agencia Aymara," Troomes, 6 de agosto de 2024. [En línea]. Disponible en:
https://www.troomes.com/viewtopic.php?t=7762&p=8525#p8525. [Accedido: 06-ago2024].
19. E. Cordova, "Modelo Predictivo de Recomendación de Aprobación de Créditos para una
Cooperativa de Ahorros y Créditos," Troomes, 27 de julio de 2024. [En línea]. Disponible
en: https://www.troomes.com/viewtopic.php?f=37&t=7752. [Accedido: 06-ago-2024].
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
7. ANEXOS
I.
TRATAMIENTO DE DATOS
En el presente trabajo se aborda el tratamiento de datos extraídos del Instituto Nacional
de Estadística e Informática (INEI) a través del sistema de Microdatos de la Encuesta
Nacional de Hogares (ENAHO) correspondiente al año 2023. Los datos utilizados
provienen específicamente de tres módulos: Módulo 1 (Características de la Vivienda y
del Hogar), Módulo 3 (Educación), y Módulo 5 (Empleo e Ingresos). Estos módulos
proporcionan información valiosa para el análisis de diversas dimensiones
socioeconómicas en el Perú, tales como las condiciones de vivienda, el nivel educativo
de los miembros del hogar y las características del empleo e ingresos de la población.
La ENAHO es una actividad estadística continua que permite obtener información
actualizada sobre las condiciones de vida, gastos e ingresos de los hogares, y
fundamentalmente conocer la evolución de los niveles de pobreza monetaria en el país.
Esta información es crucial para el diseño de políticas públicas y para la evaluación del
impacto de diversas intervenciones gubernamentales y sociales.
El objetivo de esta sección del anexo es describir el proceso de tratamiento de estos datos,
que incluye desde su extracción y limpieza hasta su preparación para análisis y modelado.
Se han aplicado técnicas de imputación, codificación y estandarización de variables para
garantizar la calidad y consistencia de los datos, facilitando así la obtención de resultados
precisos.
1. Llaves primarias: En esta sección, se están creando claves primarias compuestas
(PK_1 y PK_2) para facilitar la unión (merge) de los diferentes módulos. Estas
claves se generan concatenando los valores de las columnas CONGLOME,
VIVIENDA y HOGAR (y CODPERSO para PK_2 en module3), convirtiendo
cada valor a una cadena de caracteres (str) para asegurar que los valores sean
tratados correctamente durante la concatenación.
-
PK_1: Utiliza CONGLOME, VIVIENDA y HOGAR para identificar de
forma única cada hogar.
PK_2: Utiliza CONGLOME, VIVIENDA, HOGAR y CODPERSO para
identificar de forma única a cada persona dentro de un hogar.
Estas claves son esenciales para combinar los datos de los diferentes módulos en
un DataFrame unificado, permitiendo un análisis coherente de la información.
module5['PK_1'] = module5['CONGLOME'].astype(str) +
module5['VIVIENDA'].astype(str) +
module5['HOGAR'].astype(str)
module5['PK_2'] = module5['CONGLOME'].astype(str) +
module5['VIVIENDA'].astype(str) +
module3['CODPERSO'].astype(str)
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
module5['PK_1'] = module1['CONGLOME'].astype(str) +
module1['VIVIENDA'].astype(str) +
module1['HOGAR'].astype(str)
module5['PK_2'] = module1['CONGLOME'].astype(str) +
module1['VIVIENDA'].astype(str) +
module1['HOGAR'].astype(str)
2. Unión de las bases de datos: Aquí se están uniendo los datos de los tres módulos
utilizando las claves primarias (PK_1 y PK_2). El método pd.merge() de pandas
combina DataFrames basándose en columnas comunes. Se utiliza el método de
unión 'inner', lo que significa que sólo se incluirán las filas que tienen valores
coincidentes en ambas tablas para las claves especificadas.
merged1_df = pd.merge(module5, module3, on='PK_1',
how='inner')
merged2_df = pd.merge(merged1_df, module1, on='PK_2',
how='inner')
En esta sección, se están reemplazando valores vacíos (espacios en blanco) y
ciertos valores específicos (como 999999 y 99) en el DataFrame merged2_df con
NaN (Not a Number). Esto se hace para estandarizar los datos, tratando estos
valores como faltantes. np.nan es un objeto especial en NumPy que representa un
valor faltante o no aplicable.
-
La primera línea usa una expresión regular r'^\s*$' para encontrar celdas
vacías (solo espacios en blanco) y reemplazarlas con NaN.
La segunda línea reemplaza los valores 999999 y 99 en las columnas
numéricas con NaN.
merged2_df = merged2_df.replace(to_replace=r'^\s*$',
value=np.nan, regex=True)
merged2_df[numeric_columns] =
merged2_df[numeric_columns].replace({999999: np.nan, 99:
np.nan})
Esta línea filtra el DataFrame merged2_df para incluir solo las filas donde los
encuestados tienen 18 años o más, según la columna P208A, que representa la
edad de los encuestados.
merged2_df = merged2_df[(merged2_df['P208A'] >= 18)]
3. Recategorización de Variables:
En esta sección del código, se realiza la recategorización de diversas variables en
el DataFrame merged2_df. Esto implica agrupar o simplificar los valores
existentes en nuevas categorías para facilitar el análisis. Cada recategorización
se lleva a cabo utilizando la Matriz de Operacionalidad de Variables
compartida en anexo, donde las claves representan los valores originales y los
valores corresponden a las nuevas categorías asignadas.
Ejemplo de Recategorización:
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
●
●
DR. WESTER ZELA
P511A: Se mapea como {1: 1, 2: 1, 3: 2, 4: 1, 5: 1, 6: 1, 7: 2, 8: 3}.
Esto significa que los valores 1, 2, 4, 5 y 6 se agrupan en la categoría 1, el
valor 3 en la categoría 2, y los valores 7 y 8 en la categoría 3.
4. Imputación de Variables Categóricas: En este segmento, se describen varios
pasos importantes para el manejo de datos categóricos y la imputación de valores
faltantes.
Resumen de valores faltantes por columna:
Porcentaje Cantidad_NaN
UBIGEO
0%
0
P558E2_1_SOLICITO
0.1388%
108
P507_OCUPA_PRIN
23.5085%
18288
P511A_T_CONTRATO
58.2687%
45329
OCUPINF
26.7337%
20797
P207_SEXO
0%
0
P208A_EDAD
0%
0
P209_ESTADO_CIVIL
0%
0
P300A_IDIOMA
0.0771%
60
P301A_NIVEL_EDUCA
0.0771%
60
P101_T_VIVIENDA
0.9178%
714
P105A_T_VIVIENDA_LEGAL
0%
0
P117_GASTO_TOTAL
0.2545%
198
P524A_INGRESO
39.9547%
31082
RECIBIO_CREDITO
89.6944%
69776
No NaN
77793
77685
59505
32464
56996
77793
77793
77793
77733
77733
77079
77793
77595
46711
8017
Por la cantidad de valores restantes, decidimos retirar del estudio a las variables
'RECIBIO_CREDITO', 'P511A_T_CONTRATO' si recibió un crédito y el tipo
de contrato por superar el 50% de datos faltantes
Imputación de Variables Categóricas utilizando KNNImputer
Se utilizó la librería scikit-learn, específicamente el método KNNImputer, para
manejar los valores faltantes en las columnas categóricas del conjunto de datos.
Este método es parte de scikit-learn, una biblioteca ampliamente utilizada en
Python para aprendizaje automático y análisis de datos. El proceso comenzó con
la conversión de categorías a códigos numéricos, facilitando la aplicación de
KNNImputer. Este método identifica los k-vecinos más cercanos para cada
observación con datos faltantes, utilizando sus valores conocidos para imputar
los datos ausentes de manera precisa. En este caso, se utilizaron 5 vecinos
(n_neighbors=5) para asegurar una imputación robusta.
from sklearn.impute import KNNImputer
object_columns =
df.select_dtypes(include=['object']).columns
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
object_columns = object_columns[object_columns !=
'UBIGEO']
df_imputed = df.copy()
for col in object_columns:
df_imputed[col] =
df_imputed[col].astype('category').cat.codes.replace(-1,
np.nan) + 1
imputer = KNNImputer(n_neighbors=5)
df_imputed[object_columns] =
imputer.fit_transform(df_imputed[object_columns])
for col in object_columns:
df[col] =
pd.Categorical.from_codes(df_imputed[col].astype(int) - 1,
df[col].cat.categories)
df.to_csv(imputed_file_path, index=False)
Imputación de Variables Numéricas mediante RandomForestRegressor
En este proceso, se utilizó el IterativeImputer de la librería scikit-learn para
imputar valores faltantes en las columnas numéricas del conjunto de datos. Se
inicializó IterativeImputer con RandomForestRegressor como estimador,
configurado para usar 10 árboles y un máximo de 10 iteraciones.
# Inicializar IterativeImputer con
RandomForestRegressor
imputer =
IterativeImputer(estimator=RandomForestRegressor(n_es
timators=10), max_iter=10, random_state=0)
5. Balanceo de Datos
En el código se llevaron a cabo varias etapas cruciales para el análisis de datos,
comenzando con la carga y limpieza de datos. Se eliminaron valores atípicos en
las columnas P524A_INGRESO y P117_GASTO_TOTAL utilizando el rango
intercuartílico (IQR), lo que ayudó a evitar la influencia de datos extremos en el
análisis posterior.
Se abordó el desbalance de clases mediante dos técnicas principales. Primero, se
realizó un submuestreo de la clase mayoritaria (No) para igualar el número de
observaciones con la clase minoritaria (Si), reduciendo así el sesgo hacia la clase
más frecuente. Luego, se aplicó el sobremuestreo a la clase minoritaria para
incrementar su tamaño hasta igualar al de la clase mayoritaria, utilizando
muestreo con reemplazo. Estas técnicas fueron fundamentales para equilibrar el
conjunto de datos y mejorar la precisión del modelo de clasificación.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Las métricas de rendimiento, incluyendo precisión, sensibilidad, especificidad,
F1 score y área bajo la curva ROC, se calcularon para evaluar la efectividad del
modelo. Se realizaron visualizaciones de la distribución de datos antes y después
del balanceo, lo que permitió evaluar el impacto de las técnicas de submuestreo
y sobremuestreo en el conjunto de datos.
0
1
2
Métrica
Accuracy
Sensitivity
Specificity
Submuestreo
0.679806
0.693399
0.666489
Sobremuestreo
0.983333
0.999897
0.966879
Curva ROC
0.810000
0.999897
0.966879
El sobremuestreo (Oversampling) parece ser la mejor técnica para balancear el conjunto
de datos en este caso, ya que proporciona la mejor precisión, sensibilidad y
especificidad. El punto de corte óptimo basado en la curva ROC también muestra un
buen rendimiento y puede ser útil para ajustar el modelo a necesidades específicas de
sensibilidad y especificidad.
II.
REVISIÓN DE ATRIBUTOS Y CORRIDA DE MODELOS EN WEKA
1. Inspección de atributos:
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
2. Ejecución de modelos de clasificación:
●
Árbol de decisión (J48):
Predice el valor de la variable objetivo en base a las variables de entrada, la
variable objetivo para el modelo es class.
Parámetros del modelo.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Resultados:
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
●
Random Forest:
Parámetros:
Resultados:
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
●
Regresión lineal y no lineal:
No aplica, porque generan valores numéricos en la variable resultado.
●
Kmeans:
No aplica porque el problema es de clasificación, no de Clustering.
●
Máquina de vectores de soporte (LibSVM):
Parámetros:
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Resultados:
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
●
Redes Bayesianas (K2)
Parámetros:
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Resultados:
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
●
Redes Neuronales (Perceptron):
Parámetros:
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Resultados:
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
III.
DR. WESTER ZELA
CORRIDA DE MODELOS EN WEKA TRAINING (data 2022) y TESTING (data
2023).
●
Árbol de decisión (J48):
Training (Data 2022):
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Test (Data 2023):
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
●
Random Forest:
Training (Data 2022):
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Test (Data 2023):
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
●
Máquina de vectores de soporte (LibSVM):
Training (Data 2022):
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Test (Data 2023):
●
Redes Bayesianas (K2):
Training (Data 2022):
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Test (Data 2023):
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
●
Redes Neuronales (Perceptron):
Training (Data 2022):
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
Test (Data 2023):
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Análisis Comparativo de Resultados
Accuracy (Precisión Global)
Mejor Modelo: Naive Bayes con 64.09%
Modelo no recomendado: SVM con 50.01%
El modelo de Naive Bayes muestra el mejor rendimiento en términos de precisión global, lo que
indica que es el modelo más fiable para esta tarea específica. SVM muestra el rendimiento más
bajo, sugiriendo una mala generalización.
Precision (Precisión)
Mejor Modelo: Naive Bayes con 0.8310
Modelo no recomendado: Redes Neuronales con 0.5810
Naive Bayes nuevamente sobresale, indicando que tiene la menor cantidad de falsos positivos.
Las Redes Neuronales, aunque tienen una precisión relativamente baja, pueden mejorar con
ajustes en la arquitectura.
Recall (Sensibilidad)
Mejor Modelo: Árbol de Decisión con 0.8810
Modelo no recomendado: SVM con 0.0010
El Árbol de Decisión tiene la mayor sensibilidad, lo que significa que detecta la mayoría de los
casos positivos, aunque puede venir a costa de una mayor cantidad de falsos positivos.
F1-Score
Mejor Modelo: Redes Neuronales con 0.6770
Modelo no recomendado: SVM con 0.0010
Las Redes Neuronales muestran el mejor equilibrio entre precisión y sensibilidad. SVM, con el
F1-Score más bajo, indica una mala capacidad de clasificación.
ROC Area
Mejor Modelo: Naive Bayes con 0.6940
Modelo no recomendado: SVM con 0.5000
Naive Bayes tiene la mayor área bajo la curva ROC, indicando una excelente capacidad para
distinguir entre clases positivas y negativas. SVM muestra una capacidad de clasificación similar
a la de un clasificador aleatorio.
Conclusiones y Recomendaciones
Modelos a Considerar:
Naive Bayes: Este modelo muestra un excelente rendimiento en casi todas las métricas,
haciéndolo una opción sólida para tareas de clasificación de crédito financiero.
Redes Neuronales: Aunque tiene un F1-Score alto, necesita ajustes para mejorar la precisión y
la sensibilidad.
Regresión Logística: Un modelo balanceado y relativamente interpretable, con un rendimiento
decente en la mayoría de las métricas.
Modelos a Mejorar:
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS
MACHINE LEARNING
DR. WESTER ZELA
Árbol de Decisión: Aunque tiene alta sensibilidad, su precisión global y F1-Score son bajos,
sugiriendo la necesidad de un ajuste en la profundidad del árbol o el uso de técnicas de poda.
Random Forest: Muestra una alta precisión, pero una baja sensibilidad, lo que indica que
subestima la clase positiva. Ajustes en el número de árboles y la profundidad pueden mejorar su
rendimiento.
SVM: Este modelo tiene un rendimiento deficiente en todas las métricas. Es probable que
necesite ajustes significativos en los hiperparámetros o incluso reconsiderar su uso para esta
tarea específica.
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )