Está en la página 1de 17

Trabajo Práctico Integrador

Minería de Datos

Franco Suelgaray
Índice
1- Introducción 2

1.1- Descripción de atributos 2

2- Procesamiento y análisis general 3

2.1- Valores faltantes 4

2.2- Correlación de atributos 4

2.3- Distribución de valores 5

3- Construcción de modelos 6

3.1- Tipos de clientes 6

3.1.1- Preprocesamiento de datos 6

3.1.2- Validación del número de grupos 7

3.1.3- Resultados del modelo 1 8

3.1.4- Resultados del modelo 2 10

3.2- Retención de clientes 12

3.2.1- Preprocesamiento de datos 12

3.2.2- Resultados del modelo 1 13

3.2.3- Resultados del modelo 2 14

4- Conclusiones 16

1
1- Introducción

El trabajo que se presenta a continuación se desarrolla en base al dataset de clientes


de un banco. Estos datos fueron brindados por el administrador, el cual está preocupado por
la cantidad de personas dándose de baja del servicio de tarjetas de crédito.
El dataset proporcionado cuenta con 21 columnas de información de más de 10.000
clientes, lo que nos da una amplia mirada a los atributos que se guardan en el banco en
cuanto a sus clientes. El conjunto de datos tiene las siguientes características:

Nombre: Credit Card Customers

Fuente: Kaggle

Cantidad de tuplas: 10.127

Valores faltantes: 0

1.1- Descripción de atributos


Los atributos que utilizaremos del conjunto de datos los clasificaremos en
cuantitativos o numéricos y cualitativos o discretos:
Discretos
Nombre Valores Descripción

▶ Existing Customer 83.9% Indica si la cuenta del cliente ha sido


Attrition_Flag
▶ Attrited Customer 16.1% cerrada (Attrited) o no (Existing)

▶ M (Male) 47.1%
Gender Sexo del cliente
▶ F (Female) 52.9%

▶ Uneducated 14.7%
▶ High School 19.9%
▶ College 10%
Nivel de educación (El valor Unknown
Education_Level ▶ Graduate 30.9%
lo tomamos como dato faltante)
▶ Post-Graduate 5.1%
▶ Doctorate 4.5%
▶ Unknown 15.0%

▶ Married 46.3%
▶ Single 38.9% Estado civil (El valor Unknown lo
Marital_Status
▶ Divorced 7.4% tomamos como dato faltante)
▶ Unknown 7.4%

Income_Category ▶ Less than $40k 35.2% Categoría de ingresos (salario).(El

2
▶ $40k - $60K 17.7% valor Unknown lo tomamos como
▶ $60k - $80K 13.8% dato faltante)
▶ $80k - $120K 15.2%
▶ $120K + 7.2%
▶ Unknown 11%

▶ Blue 93.2%
▶ Silver 5.5%
Card_Category Categoría de tarjeta
▶ Gold 1.1%
▶ Platinum 0.2%

Numéricos
Nombre Rango Descripción

Customer_Age [26, 73] (Media: 43) Edad

Dependent_Count [0, 5] (Media: 2) Dependientes del cliente

Cantidad de meses de relación con el


Months_on_book [13, 56] (Media: 36)
banco

Cantidad de meses inactivo en los


Months_inactive [0, 6] (Media: 2)
últimos 12 meses

Saldo rotatorio total en la tarjeta de


Total_Revolving_Bal [0, 2517] (Media: 1162.8)
crédito

Credit_Limit [1438, 34516] (Media: 8631.9) Límite de crédito

Monto total de las transacciones de


Total_Trans_Amt [510, 18484] (Media: 4404)
los últimos 12 meses.

Cantidad total de las transacciones de


Total_Trans_Ct [10, 139] (Media: 8631.9)
los últimos 12 meses.

Cantidad de productos/servicios del


Total_Relationship_Ct [1, 6] (Media: 3.8)
banco que el cliente posee

ID Unique Id del cliente

Existen atributos como Total_Amt_Chng_Q4_Q1, Total_Ct_Chng_Q4_Q1 y


Avg_Utilization_Ratio que no los tendremos en cuenta ya que son derivados de los ya
mencionados.

3
2- Procesamiento y análisis general

Antes de comenzar con el armado de los modelos analizaremos los datos que se nos
presentan. Para ello veremos particularidades de algunos atributos del conjunto, como
distribución de valores y correlación lineal con otros campos.
Cabe destacar que el campo ID no será considerado ya que no aporta ninguna
información extra.

2.1- Valores faltantes


Al ver las tuplas del dataset notamos que tres de los atributos discretos presentados
en la sección 1.1 cuentan con el valor “Unknown” al cual lo tomamos como valor faltante.
Para resolver esta situación, se analizará en el procesamiento previo a la construcción de
cada modelo, ya que depende de la utilización de los atributos en estos.
Quitar las tuplas donde dichos campos tengan el valor “Unknown” puede tener un
gran impacto a la hora de construir los modelos de predicción y clustering. Así mismo,
veremos si quitar los campos también tiene consecuencias sobre los modelos. Por ello
debemos analizarlo en cada caso.

2.2- Correlación de atributos


La correlación lineal es una métrica que nos permite ver la dependencia de un
atributo con respecto a otros, recordando que los valores que nos indican dicha
dependencia son los mayores a 0.5 y los menores a -0.5. Utilizaremos una matriz de
correlación seleccionando solo los atributos numéricos:

4
El color rojo indica una correlación positiva fuerte (valores > 0.8) y el azul indica una
correlación negativa fuerte (valores < -0.8). En este caso, vemos que solo dos pares de
atributos están correlacionados linealmente:
▶ Months_on_book - Customer_Age:
Estos dos atributos tienen una correlación lineal positiva de 0.789 la cual se
puede atribuir a que los meses que una persona está en el banco aumenta
cuando su edad también lo hace.

▶ Total_Trans_Amt - Total_Trans_Ct :
Estos dos atributos tienen una correlación lineal positiva fuerte de 0.807. Esto
nos indica que cuantas más transacciones se realicen, mayor será el monto
total, lo cual nos puede resultar natural.

Luego, como es de esperar que haya una dependencia entre dichos pares, en el
estudio de los datos en las siguientes secciones, nos centraremos en el resto de atributos,
teniendo siempre en cuenta estas correlaciones.

2.3- Distribución de valores


Antes de comenzar con las siguientes secciones, estudiaremos las distribuciones de
los atributos con el fin de tener un mejor entendimiento del conjunto de datos con el que
estamos trabajando.
De forma visual presentamos las distribuciones de los atributos numéricos:

Customer Age Dependent Count Months on Book

Total Trans Ct Total Trans Amt Credit Limit

Total Revolving Bal Months Inactive Total Relationships Ct

5
Los primeros cuatro atributos, a simple vista, observamos que siguen una
distribución normal, en cambio el resto presenta algún tipo de sesgo. La media de cada
gráfico es la indicada en la sección 1.1.
Los atributos discretos, al visualizarse mediante gráficos de barras, la frecuencia de
cada valor la refleja el porcentaje mencionado en la misma sección 1.1, por lo que no
mostraremos estos diagramas de barras.
Luego, con respecto a los valores fuera de rango, podemos mencionar que la edad de
los clientes presenta dos valores que pueden verse como valores extremos, ya que se
encuentran a tres desviaciones de la media (desviación estándar = 8). Pero estos son las
edades 70 y 73, las cuales no representan errores de carga de datos, y no serán valores que
afecten los resultados de los modelos.
Finalmente, mencionamos que el atributo Total_Trans_Amt posee valores extremos
que van de 15k a 18k. Tendremos en cuenta esto ya que los clientes que tienen estos valores
son los que más utilizan la tarjeta por la correlación vista en 2.2.

3- Construcción de modelos
En esta parte del informe presentaremos por cada subsección un modelo diferente
que atenta a resolver alguna situación que nos presenta el administrador del banco. Para
esta sección utilizaremos los datos y conclusiones detalladas en las secciones 1.1 y 2.
Cada subsección posee un apartado donde se detalla el procesamiento previo a la
construcción del modelo ya que en cada caso podrá ser necesario contar con los datos en
una forma en particular.

3.1- Tipos de clientes

El banco quiere saber qué tipo de clientes están utilizando actualmente sus servicios
para en un futuro poder dirigir campañas de marketing que estén correctamente focalizadas
y sean efectivas.
Para ello utilizaremos una técnica de agrupamiento o clustering para encontrar
posibles grupos de clientes. Mediante un algoritmo partitivo, el K-Medias, el cual busca
minimizar la diferencia (distancia) entre los elementos de un mismo grupo, intentaremos
encontrar aquellas características relevantes a la hora de agrupar a los distintos clientes.
Teniendo en cuenta que trabajaremos con el algoritmo K-Medias, debemos
seleccionar el número K de grupos de forma previa. Haremos uso de la métrica del Índice de
Davies Bouldin para validar la eficacia del agrupamiento, lo cual lograremos aplicando el
algoritmo de forma iterativa con distintos valores de K.

6
3.1.1- Preprocesamiento de datos

El algoritmo K-Medias, al ser basado en cálculo de distancias, hace necesario que los
datos ingresados sean de tipo numérico. Es decir, aquellos atributos cualitativos que
seleccionemos para utilizar en el modelo, deberán ser transformados mediante alguna
estrategia de numerizacion.
A la hora de numerizar los atributos cualitativos debemos tener en cuenta que dado
un atributo, si le asignamos un valor numérico para cada uno de sus valores, estaríamos
determinando una relación de orden que originalmente no se encontraba en los datos. Es
por esto que hacemos uso de una numerizacion “dummy”, donde se genera una columna
por cada valor de los atributos nominales y los valores pasan a ser binarios (0 o 1).
En este caso, para el modelo seleccionaremos todos los atributos numéricos, pero de
entre los discretos elegiremos los siguientes:
▶ Gender
▶ Card_Category
▶ Income_Category
“Atrition_flag” no lo utilizaremos ya que tendremos en cuenta a todos los clientes
presentes y a aquellos que cerraron sus cuentas en el banco, por lo que la clasificación no
será significativa para nuestro estudio. El resto de atributos, al poseer un alto porcentaje de
valores faltantes (“Unknown”) los excluimos del análisis para no generar errores en el
modelo. Eliminar todas las tuplas que tienen estos datos faltantes implicaría quitar el 30% de
los clientes del conjunto, y teniendo en cuenta que hay simplemente 10 mil ejemplos, no
consideraremos esta opción.
Como caso excepcional a lo mencionado anteriormente es el de “Income_Category”
el cual lo consideraremos, eliminando las tuplas que tengan el valor Unknown, que
representan el 11% del total de ejemplos (1112). Finalmente podemos concluir que
trabajaremos con 89% de los datos (9015).
Luego, al contar con atributos numéricos cuyos rangos difieren de forma
considerable, realizamos una normalización lineal uniforme con valores en un rango de 0 a
1. Esto lo hacemos ya que el algoritmo, al calcular distancias, sufre de los cambios en los
valores de atributos con un rango grande. Pequeños cambios en estos valores significan un
gran cambio en los resultados del modelo.

3.1.2- Validación del número de grupos


Utilizando el índice de Davies Bouldin y realizando las iteraciones del algoritmo con
distintos valores de K obtenemos los siguientes valores:

7
Tengamos presente que nos encontramos
frente a un clustering de clientes por lo que un
número muy grande de grupos no
representaría un escenario real como es el
caso de 6 a 10 grupos.
El Índice Davies Bouldin indica un mejor
agrupamiento cuanto menor sea su valor. Cabe
destacar que elegimos esta métrica ya que
requiere un menor poder de procesamiento.
Luego, viendo la tabla que se encuentra
a la izquierda, notamos que entre 2 y 5 grupos,
el mejor número K es 2. Entonces haremos un
primer análisis con este agrupamiento de
clientes.

3.1.3- Resultados del modelo 1


El producto del modelo de agrupamiento es un conjunto de centroides, o ejemplos
promedio, que representan a cada grupo. Utilizando K=2 obtenemos 2 centroides que
pueden verse mediante el siguiente gráfico de coordenadas paralelas:

Este gráfico nos muestra los atributos en los que se diferencian los grupos entre sí.
Destacamos, de esta forma, los campos “Income_category”, “Credit_limit” y “Gender”.
El modelo genera una agrupación equitativa de los ejemplos:

8
Cluster Model

Cluster 0 (Grupo 1) 4717 items

Cluster 1 (Grupo 2) 4298 items

Total de ítems 9015 items

Se distinguen dos grupos separados principalmente por el sexo del cliente. Por un
lado encontramos un grupo 1 (cluster 0) integrado en su totalidad por hombres.

El grupo se caracteriza por tener un ingreso por encima de los 60 mil dólares y una
mediana en el límite de tarjeta de u$d 9.360, Luego, el otro agrupamiento de clientes, grupo
2 (cluster 1), se encuentra formado casi totalmente por mujeres. Este grupo tiene ingresos
de hasta 60 mil dólares y un límite de tarjeta con mediana en u$d 2.890.
Si luego analizamos el límite de crédito según el agrupamiento obtenido, notamos
tiene una distribución muy diferente entre los grupos:

Observando el gráfico de caja notamos que, para el grupo 1, los valores tienen una
mayor distribución que en el grupo 2, donde hay casos de límite de crédito de 23k el cual

9
representa un valor atípico muy extremo. Esto último podría atribuirse a una correlación
lineal entre el límite de la tarjeta y el ingreso anual de los clientes, pero no es así. Estos dos
atributos no están linealmente correlacionados.

A pesar de tener menores ingresos y un límite de crédito más acotado, la utilización


de la tarjeta por parte del grupo 2 no disminuye. Tanto la cantidad de compras realizadas
como el monto gastado en los últimos 12 meses son muy similares a aquellos del grupo 1:

De esta forma concluimos que hay dos tipos de clientes, uno con menores ingresos y
un límite de tarjeta inferior con la particularidad de que la mayoría son clientes mujeres, y
otro tipo que incluye hombres con mayor nivel de ingresos. A pesar de la distinción ambos
tipos de clientes utilizan los servicios del banco en igual forma.

3.1.4- Resultados del modelo 2


Con el objetivo de encontrar mayor información del modelo de agrupamiento
utilizaremos otro número de clusters. Esta vez usaremos K=4. De esta forma obtenemos el
siguiente conjunto de centroides:

10
Cluster Model

Cluster 0 (Grupo 1) 3284 items

Cluster 1 (Grupo 2) 3570 items

Cluster 2 (Grupo 3) 432 items

Cluster 3 (Grupo 4) 1729 items

Total de ítems 9015 items

En este modelo podemos notar que no solo se segregan los clientes según el sexo y
límite de credito, sino que observamos una mayor distincion en los ingresos y la categoría de
tarjeta.
El cluster 0 nos muestra un grupo de clientes que comparte características similares
al grupo 2 del modelo anterior (3.1.3). Está conformado en su totalidad por mujeres con un
nivel de ingresos por debajo de los 40K y con un límite de crédito bajo.
El cluster 1 está conformado completamente por hombres con ingresos, en su
mayoría, superiores a 60k. El cluster 2 comparte estas particularidades, pero además
presenta una mayoría de clientes con la tarjeta Silver. Notamos también que el límite de
crédito de estos grupos es superior al del resto de clientes.
Finalmente, el cluster 3 está formado tanto por mujeres como por hombres que
poseen ingresos entre 40k y 60k, y tienen un límite de crédito relativamente bajo.
En resumen, este agrupamiento nos muestra tipos de clientes que se diferencian
ampliamente por el nivel de sus ingresos. Obtenemos un grupo de mujeres con ingresos
bajos, otros dos similares que representan una clase alta formada por hombres, y un grupo
de clientes con ingresos medios.

11
Cabe destacar que, a pesar de estas diferencias, al comparar el uso que hacen de la
tarjeta, construyendo un gráfico de dispersión con los atributos “Total_Trans_Amt” y
“Total_Trans_Ct”, obtenemos:

Aquí podemos ver que, sin importar el tipo de cliente, todos los grupos utilizan la
tarjeta en igual medida. Existen clientes que pertenecen al cluster 0, pero igualmente tienen
un gasto superior a los 12.5K, y clientes del cluster 1 y 2 que realizan pocas compras y por
ende (por correlación lineal 2.2) tienen gastos menores a 5K.

3.2- Retención de clientes

Como se mencionó en la introducción, el administrador del banco desea saber


quienes son los clientes que abandonan el banco y como poder predecirlo para brindar a los
clientes candidatos un mejor servicio que se amolde más a sus necesidades.
Abordaremos esta situación mediante la construcción de un árbol de clasificación,
con el fin de distinguir (predecir) los clientes potenciales a cerrar su cuenta en el banco.
Elegimos un árbol de clasificación como modelo ya que permite una mejor
descripción visual del modelo y es más sencillo de comprender. A su vez, podemos
determinar cuáles son los atributos más relevantes a la hora de predecir una clasificación.
Esto es posible debido a que los árboles tienen una estructura jerárquica donde los atributos
son ordenados según su relevancia en niveles.
Tengamos siempre presente que este tipo de modelo tiende a sobre ajustarse a los
ejemplos con los que se construye. Esto hace que a la hora de testear el modelo, los datos
de testeo no sean correctamente clasificados.

12
3.2.1- Preprocesamiento de datos
Primeramente comenzaremos definiendo el algoritmo que utilizaremos para la
construcción del árbol de clasificación. Este será el algoritmo C4.5 ya que permite el uso de
atributos numéricos y discretos, a diferencia del ID3 que solo funciona con discretos.
A diferencia del procesamiento en 3.1.1 aquí, no realizaremos una normalización
lineal uniforme de los atributos numéricos debido a que el algoritmo construye el árbol
tomando a los atributos de forma independiente y evaluando su entropía.
Con respecto a los atributos discretos, “Attrition_flag” fue definido como atributo
etiqueta, es decir, es aquel que será predicho por el modelo. También, nuevamente,
debemos tratar con los valores faltantes de “Income_Category”, “Martial_status” y
“Education_level”. En este caso seleccionaremos los dos primeros, eliminando el tercero
porque el porcentaje de valores “Unknown” en este atributo es 15% del total de clientes.
Luego, sumando los porcentajes para “Income_Category” y “Martial_status” (puede verse
en 1.1) llegamos a un 18.4% del total de tuplas que serán eliminadas para no introducir
errores en el modelo.
Finalmente mencionamos que, al tratarse de un modelo de predicción, es necesario
separar un conjunto de datos de entrenamiento y otro de testeo con el fin de validar
objetivamente la eficacia del modelo. Es por esto que utilizamos la técnica de validación
cruzada con una división estratificada, que parte a los ejemplos en partes iguales y construye
y prueba el modelo repetidas veces con distintos conjuntos de entrenamiento y testeo en
cada iteración. Esto nos asegura que la construcción del modelo no está condicionada por
una selección previa de los conjuntos, aquí todos los datos toman ambos roles, de
entrenamiento y de testo.

3.2.2- Resultados del modelo 1


Al aplicar al conjunto de datos resultante del procesamiento anterior el algoritmo
C4.5 obtenemos la siguiente matriz de confusión:

Esta matriz nos muestra una buena tasa de acierto (94% +/- 0.85%) general, y si
tenemos en cuenta a la clase Attrited Customer como clase positiva (queremos evitar que
abandonen el banco) vemos que fueron clasificados correctamente solo el 77.15% de los
ejemplos que realmente eran de esa clase.
Si intentamos ver el árbol generado resulta poco práctico ya que sobreajustó a los
ejemplos de entrenamiento, generando 307 nodos. Al podarlo, indicando un mínimo de 50

13
clientes en cada hoja, obtenemos un modelo más manipulable con 33 nodos, pero con una
tasa de acierto y recall ligeramente menores para la clase positiva:

Habiendo construido el modelo con el atributo “Income Category” y “Martial_status”


conseguimos un árbol que no los incluye. Por lo que podemos quitarlos y añadir aquellos
clientes que habíamos eliminado en el procesamiento de datos 3.2.1.

3.2.3- Resultados del modelo 2


Construimos un nuevo árbol podado (con las mismas condiciones que el anterior)
pero esta vez quitando los atributos “Income Category” y “Martial_status”, por lo que
podremos hacer el modelo contando con las tuplas que habíamos eliminado en el árbol
anterior. Luego, con la totalidad de clientes (tuplas), obtenemos los siguientes resultados del
modelo:

14
Como vemos, aumentó el porcentaje de aciertos para la clase Attrited Customer, así
como la tasa de acierto general. Recordamos que este es un árbol podado que nos queda de
la siguiente forma:

Total_Trans_Ct <= 57
| Total_Relationship_Count <= 2
| | Total_Revolving_Bal <= 573: Attrited Customer (278.0/6.0)
| | Total_Revolving_Bal > 573
| | | Total_Relationship_Count <= 1: Attrited Customer (77.0/4.0)
| | | Total_Relationship_Count > 1
| | | | Total_Trans_Amt <= 1673: Existing Customer (64.0/29.0)
| | | | Total_Trans_Amt > 1673: Attrited Customer (86.0/12.0)
| Total_Relationship_Count > 2
| | Total_Revolving_Bal <= 628
| | | Total_Trans_Amt <= 1897
| | | | Total_Trans_Amt <= 1060: Attrited Customer (66.0/6.0)
| | | | Total_Trans_Amt > 1060
| | | | | Total_Trans_Amt <= 1476: Existing Customer (120.0/15.0)
| | | | | Total_Trans_Amt > 1476
| | | | | | Gender = M: Existing Customer (98.0/33.0)
| | | | | | Gender = F: Attrited Customer (78.0/28.0)
| | | Total_Trans_Amt > 1897
| | | | Total_Trans_Ct <= 51: Attrited Customer (458.0/65.0)
| | | | Total_Trans_Ct > 51: Existing Customer (117.0/40.0)
| | Total_Revolving_Bal > 628
| | | Total_Trans_Amt <= 2015
| | | | Total_Trans_Amt <= 996: Attrited Customer (40.0/15.0)
| | | | Total_Trans_Amt > 996: Existing Customer (1505.0/67.0)
| | | Total_Trans_Amt > 2015
| | | | Total_Trans_Ct <= 47
| | | | | Customer_Age <= 39: Existing Customer (126.0/21.0)
| | | | | Customer_Age > 39
| | | | | | Months_Inactive_12_mon <= 2: Existing Customer (93.0/45.0)
| | | | | | Months_Inactive_12_mon > 2: Attrited Customer (118.0/24.0)
| | | | Total_Trans_Ct > 47: Existing Customer (412.0/61.0)
Total_Trans_Ct > 57
| Total_Trans_Amt <= 5271: Existing Customer (4831.0/43.0)
| Total_Trans_Amt > 5271

15
| | Total_Trans_Ct <= 80
| | | Total_Trans_Amt <= 8440
| | | | Total_Revolving_Bal <= 588: Attrited Customer (93.0/13.0)
| | | | Total_Revolving_Bal > 588
| | | | | Total_Trans_Ct <= 72: Attrited Customer (50.0/23.0)
| | | | | Total_Trans_Ct > 72: Existing Customer (72.0/7.0)
| | | Total_Trans_Amt > 8440: Attrited Customer (88.0/1.0)
| | Total_Trans_Ct > 80: Existing Customer (1257.0/31.0)

Podemos ver que los atributos más relevantes son la cantidad de transacciones
(Total_Trans_Ct), el número de servicios contratados por el cliente (Total_Relationship_Ct),
el saldo rotatorio (Total_Revolving_Bal) y el monto de las transacciones (Total_Trans_Amt).

4- Conclusiones

Los modelos construidos son una herramienta para el administrador del banco, con
la que puede orientar sus servicios de forma eficaz a sus clientes, y atraer a nuevos.
El modelo descriptivo de clustering permite ver los distintos tipos de clientes que
utilizan los servicios del banco, los cuales resultaron estar conformados por sexos distintos y
niveles de ingresos diferentes. Pero igualmente, aquellos que tienen ingresos y límites de
crédito inferiores hacen uso de los servicios en la misma medida.
Finalmente el árbol de clasificación hace posible que el administrador identifique de
antemano aquellos clientes que son potenciales a abandonar el banco. Entre ellos los que
tienen pocas transacciones, y un número bajo de servicios con el banco.

16

También podría gustarte