Temas acerca de Inteligencia Artificial
Foto de Usuario
renzo.guerrero

Ranking Troomes
Mensajes: 6
Registrado: 15 Ene 2020, 22:08
Contactar:

Predicción del estado de cobro del bono independiente en la emergencia del COVID-19

Mensaje por renzo.guerrero » 15 Ene 2021, 17:27

1.Resumen

En este trabajo se busca determinar el mejor modelo de predicción del estado de cobro del bono universal dado en la emergencia nacional por el COVID-19 en el Perú,usando el dataset proporcionado por el Ministerio de Ministerio de Trabajo y Promoción del Empleo, para lo cual se usó técnicas de preprocesamiento y reducción de dimensionalidad para después aplicar modelos de clasificación tales como BayesNet, J48 y Random Forest, se mostrará cada paso seguido y las razones del porque de la elección del mejor modelo de clasificación.

2.Descripción del dataset

El dataset original está compuesto por un total de 773291registros y 11 columnas, entre las cuales se encuentran: COD_HOGAR, UBIGEO, DEPARTAMENTO, PROVINCIA, DISTRITO, PERSONAS POR HOGAR, MONTO, TIPO_BONO, BONO_COBRADO, FECHA_COBRO, ENTIDAD_COBRO, MEDIO_COBRO y FECHA_ACTUALIZACION.
La variable independiente para el problema de clasificación será: BONO_COBRADO , la cual indica si el bono fue cobrado o no por el beneficiario, el cual tiene la siguiente distribución:
BONO_COBRADO.png
BONO_COBRADO.png (5.2 KiB) Visto 221 veces
El dataset original se puede encontrar en la siguiente ruta:https://www.datosabiertos.gob.pe/datase ... mpleo-mtpe

2.1.Preprocesamiento

A)Eliminar variables que no son relevantes

Se eliminó las variables que no daban mayor información para la construcción del modelo de clasificación tales como: 'COD_HOGAR','UBIGEO','MONTO','TIPO_BONO','FECHA_COBRO','ENTIDAD_COBRO','FECHA_ACTUALIZACION', esto en base a que algunas de estas variables solo tomaban un valor a lo largo de todo el dataset , además de otras que eran de tipo fecha, este análisis se puede ver a más detalle en el notebook adjunto en GitHub.

B)Variables categóricas

•En el caso de la variable MEDIO_COBRO al ser de tipo categórica no ordinal, se realizó una conversión a variables dummy, para que puedan ser procesadas por los algoritmos de clasificación.

•Para las variables de tipo geográfico como Departamento, Provincia y Distrito se usó el ratio de aparición de cada uno estos , reemplazándolos en el dataset los valores categóricos de dichas variables, esto se realizó ya que el número de departamentos, provincias y distritos es muy grande , lo cual al haberse aplicado One Hot encoding la dimensión del dataset original hubiese crecido demasiado, lo cual dificultaría el procesamiento.

C)Análisis de componentes principales

Se aplicó normalización y PCA al dataset limpio , para así encontrar lo componentes principales que aporten la mayor varianza explicativa al modelo (el uso de PCA se usó con fines de probar un método de reducción de dimensionalidad en el que se pueda encontrar mejores métricas, tomando en consideración que con el uso de esta técnica se pueda perder información así como explicabilidad del modelo), obteniéndose los siguientes resultados:
PCA.png
PCA.png (45.11 KiB) Visto 221 veces
Donde podemos ver que considerando los 4 primeros componentes se tiene un 90% de la varianza explicada, tomaremos a estos componentes como nuevas variables para ejecutar los distintos algoritmos de clasificación.

D) Balanceo del dataset

Para este problema se probó métodos de balanceo como submuestreo y sobremuestreo , para los cuales se aplico los algoritmos mencionados , consiguiéndose resultados con TPRate cercanos al 100% por lo que se decidió no usar estos enfoques, ya que valores muy altos pueden señalarnos que el modelo a caído en overfitting.

3.Descripción de los resultados obtenidos

Variables que usan los modelos para predecir

Se detalla a continuación las variables y valores en el dataset limpio:
dataset_limpio.JPG
dataset_limpio.JPG (34.12 KiB) Visto 205 veces
Estas 7 variables independientes serán las que sirvan de entrada a los modelos de clasificación para así determinar si el bono se va a cobrar o no, en donde las variables DE_DEPARTAMENTO,DE_PROVINCIA,DE_DISTRITO su valor categórico está asociado en un diccionario a un valor númerico , tal como se muestra a continuación para el caso de la variable DE_DEPARTAMENTO:
diccionario.JPG
diccionario.JPG (61.37 KiB) Visto 205 veces

Se usó los algoritmos de BayesNet, Árbol de decisión(J48) y Random Forest, tanto antes y después de aplicar el PCA, se detallan los resultados a continuación:

3.1) Con normalización y sin PCA

BayesNet
BayesNet1.png
BayesNet1.png (16.22 KiB) Visto 221 veces
J48
J48_01.png
J48_01.png (16.13 KiB) Visto 221 veces
Random Forest
RF_01.png
RF_01.png (16.24 KiB) Visto 221 veces
3.2) Con normalización y con PCA

BayesNet
BayesNet2.png
BayesNet2.png (16.05 KiB) Visto 221 veces
J48
J48_02.png
J48_02.png (16.26 KiB) Visto 221 veces
Random Forest
RF_02.png
RF_02.png (16.14 KiB) Visto 221 veces
3.3)Con normalizacíon y submuestreo

Además se probó el submuestreo de la clase mayoritaria para así balancear el dataset, en lo cual se encontró accuracys cercanos al 96% para modelos como BayesNet, J48y Random Forest, además de TPRate para la clase “NO” cercanos al 100% por lo cual no se decidió tomar este enfoque ya que tener este nivel de TPRate nos indica que el modelo a caído en overfitting.

4.Problemas con la data

Se encontró que en la variable edad habían 58 registros que no tenían valor en dicho campo, por lo cual a no ser muchos a comparación del número de registros total en el dataset se procedió a eliminarlos , en caso hubiera sido un porcentaje significativo del total de datos se tendría que buscar un método de imputación que nos permita rellenar ese campo para que estos registros puedan ser procesados por los modelos.

5.Conclusiones

1)El uso de PCA no es del todo adecuado en este dataset ya que se tienen pocas variables independientes(en total 7), lo cual no dificulta el procesamiento a comparación de que se tengan muchas variables en la que el uso de un método de reducción de dimensionalidad pueda ser de ayuda al momento de procesar estos tipos de dataset, además de que con este tipo de técnicas se pierde la interpretabilidad del modelo así como información.

2)El mejor modelo es el J48 después de aplicar normalización y sin PCA, dado que se obtuvo un accuracy del 93.38% y un TPRate para la clase SI y NO del 93,9% y 89,7% respectivamente, si bien el J48 con PCA tiene ligeramente un mejor TPRate para la clase NO(91.2%) , no se decidió que este era el mejor modelo ya que como se mencionó con este método de reducción de dimensionalidad se pierde información e interpretabilidad del modelo más aún en si se tiene un J48.

3) Si bien el J48 no tiene el mayor accuraccy este tiene buenos TPRate para ambas clases además de que no llegan a niveles cercanos al 99% como es el caso de BayesNet lo cual nos puede indicar que ha caído en overfitting y no el modelo no es generalizable para otra distribución de datos.

6.Ruta GitHub

Se adjunta la ruta del repositorio en GitHub donde se encuentra el código de preprocesamiento en Python así como el dataset limpio.
https://github.com/renzoguerrero17/Pred ... el-COVID19


Responder