Skip to content
Inicio » Data Science » Data Science Clustering: K-means

Data Science Clustering: K-means

Se seguirá el ejemplo del artículo anterior. Pero está vez se usará un modelo de clustering. Esto para lograr segmentar a los clientes de la base de datos, tarea fundamental de marketing. Entendiendo quiénes son los clientes se pueden hacer campañas adecuadas para evitar que éstos se retiren del banco.

Estos modelos de Clustering buscan organizar los datos por algún criterio de similitud, ordenarlos. Pero cuando hablamos que dos cosas son similares. ¿Qué significa esto?

¿Qué es Similitud?

¿Cómo clasificaría dos cosas distintas dentro de un mismo grupo? Piense en los siguientes ejemplos:

  • En videos de Youtube ¿Cómo clasificaría los videos, para decir que un video es más similar a otro?
    • Duración (corta, mediana, larga)
    • Canal que subió el video (canal educativo, histórico o político)
    • Tema del video
    • Fecha que se subió
    • Calidad del video
  • En la música ¿Cómo las clasificaría?
    • Por año que salió
    • Autor
    • Estilo de música

En este último ejemplo,

¿El tema de despacito de Luis Fonsi es más similar a imaginame sin ti del mismo autor o a Adrenalina de otros autores?.

Los animales ¿Cómo los clasificaría? tamaño, tiempo que vivieron, nivel de peligro de extinción, especie u otro criterio.

¿Cuál es el mejor criterio para agrupar?

La respuesta es depende de lo que se quiera. En este artículo se realizará un modelo de machine learning de clustering llamado k-means. Pero tenga en consideración que este no es el único modelo de clustering, pero es uno de los más empleados por ser eficiente para grandes volúmenes de datos.

K-means divide el espacio de los datos en k clusters o grupos. Y matemáticamente (usando promedios de distancias) crea k centroides que son los centros de cada grupo. Luego cada dato de la base de datos se le es asociado el cluster más cercano y ese es su grupo. Perfecto, pero…

¿Quién o cómo se define el número de clusters que se va a dividir los datos?

Puede determinarse el número de clusters de acuerdo a una opinión de experto. Sin embargo, resulta más interesante (opinión del autor) definir el número clusters de acuerdo a como aumenta la similitud de los datos en un grupo.

Evolución de la Similitud dentro de los Clusters [en Base al Número de Clusters]

¿Cómo se puede saber cuanto aumenta la similitud en un determinado grupo?

Resp: Revisando cómo disminuye la distancia promedio de cada dato a su cluster más cercano. Al aumentar el número de clusters va a disminuir continuamente esta distancia, ya que habrá más grupos en el espacio para asignar cada punto. En el extremo se tiene tantos clusters como datos por lo tanto la distancia a ellos es cero (el centroide iría uno justo en cada dato).

Usando los mismo datos ya presentados en el artículo anterior se realizan distintos modelos (para diferentes valores de k) k-means y se grafican sus distancias promedios a los clusters. (Código aquí con su fórmula correspondiente de distancia).

note que la distancia disminuye notablemente de un cluster a dos. Al tercer cluster disminuye un poco menos pero ya al 4 y al 5 ya empieza a disminuir lentamente la distancia. Por lo que se trabajará con 5 clusters para este análisis (más que esto no tiene sentido).

Análisis Preliminar de los Clusters.

Quedá está tarea para usted, analice los siguientes gráficos y explique quiénes son (o cómo son) los distintos clientes del banco.

La segmentación de clientes es una tarea vital de marketing. Ella es vital tanto para conocer a los distintos grupos de clientes que tiene la compañía, como para realizar distintas campañas o servicios específicos a cada grupo.

Más abajo se mostrará una tabla resumen, y un análisis. Con estos datos trate usted mismo de notar quién es el cliente del cluster 0, 1, 2, 3 y 4.

¿Cómo son los segmentos de clientes?

Esperando se haya dado el tiempo de analizar estos clusters por usted mismo. Se dará un análisis de los distintos segmentos, en un solo gráfico:

Tabla con datos normalizados de cada variable.

Con 5 clusters se tiene lo siguiente:

  • Cluster 0= Estos son los clientes de más edad (en general sobre 50) y tienen pocos productos.
  • Cluster 1= Este es el conjunto de clientes con mejor balance y mayor número de productos.
  • Cluster 2= Son los que tienen las deudas más largas con el banco (tenure) y pocos productos.
  • Cluster 3= Son jóvenes con deuda muy reciente (tenure bajo) balance positivo y pocos productos
  • Cluster 4= Son los más jóvenes con el peor balance y varios productos.

¿Qué nombres usted les pondría a estos tipos de clientes? Siéntase libre de comentar!

Tarea (avanzada): Esto se responderá más adelante pero intente realizar lo siguiente:

Realicé nuevamente el algoritmo kmeans con el mismo número de clusters, pero varíe estas dos variables del modelo: n_init y max_iter a 20 y 2000 respectivamente. Luego evalúe lo siguiente:

  • ¿Cómo cambián los clusters?
  • ¿Cómo cambia el tiempo de ejecución?
  • ¿Por qué es importante variar ambas variables del modelo?

Deja un comentario