Agrupación en Python | ¿Qué es K significa Clustering?

Contenidos

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Introducción

El análisis de clústeres o la agrupación en clústeres es un algoritmo de aprendizaje automático no supervisado que agrupa conjuntos de datos sin etiquetar. Su objetivo es formar conglomerados o grupos utilizando los puntos de datos en un conjunto de datos de tal manera que exista una alta similitud entre los conglomerados y una baja similitud entre los conglomerados. En términos simples, la agrupación en clústeres tiene como objetivo formar subconjuntos o grupos dentro de un conjunto de datos que consta de puntos de datos que son realmente similares entre sí y los grupos o subconjuntos o clústeres formados pueden diferenciarse significativamente entre sí.

¿Por qué agrupar?

Supongamos que tenemos un conjunto de datos y no sabemos nada al respecto. Entonces, un algoritmo de agrupamiento puede descubrir grupos de objetos donde las distancias promedio entre los miembros / puntos de datos de cada grupo están más cerca que a los miembros / puntos de datos en otros grupos.

Algunas de las aplicaciones prácticas de Clustering en la vida real como:

1) Segmentación de clientes: Encontrar un grupo de clientes con un comportamiento similar dada una gran base de datos de clientes (se da un ejemplo práctico usando la segmentación de clientes bancarios)

2) Clasificación del tráfico de la red: Agrupación de características de las fuentes de tráfico. Los tipos de tráfico se pueden clasificar fácilmente mediante clústeres.

3) Filtro de correo no deseado: Los datos se agrupan en diferentes secciones (encabezado, remitente y contenido) y luego pueden ayudar a clasificar cuáles de ellos son spam.

4)Planificación de la ciudad: Agrupación de casas según su ubicación geográfica, valor y tipo de casa.

Diferentes tipos de algoritmos de agrupación

1) Agrupación de K-medias – Usando este algoritmo, clasificamos un conjunto de datos dado a través de un cierto número de clústeres predeterminados o «k» clústeres.

2) Agrupación jerárquica – Sigue dos enfoques Divisivo y Aglomerativo.

Agglomerative considera cada observación como un solo grupo y luego agrupa puntos de datos similares hasta que se fusionan en un solo grupo y Divisive funciona justo enfrente de él.

3) Fuzzy C significa Clustering – El funcionamiento del algoritmo FCM es casi similar al algoritmo de agrupamiento de k-medias, la principal diferencia es que en FCM un punto de datos se puede colocar en más de un grupo.

4) Agrupación espacial basada en densidad – Útil en las áreas de aplicación donde requerimos estructuras de clúster no lineales, basadas puramente en la densidad.

Ahora, aquí en este artículo, nos centraremos profundamente en el algoritmo de agrupamiento de k-medias, explicaciones teóricas del funcionamiento de k-medias, ventajas y desventajas, y un problema de agrupamiento práctico resuelto que mejorará la comprensión teórica y le dará una visión adecuada. de cómo funciona la agrupación en clústeres de k-medias.

Qué es k-medio Clustering?

La agrupación de K-Means es un algoritmo de aprendizaje no supervisado, que se utiliza para agrupar el conjunto de datos sin etiquetar en diferentes grupos / subconjuntos.

Ahora debe estar preguntándose qué significa ‘k’ y ‘significa’ en el k-means Clustering significa ??

Dejando de lado todas sus suposiciones aquí, ‘k’ define el número de grupos predefinidos que deben crearse en el proceso de agrupación, digamos que si k = 2, habrá dos grupos, y para k = 3, habrá tres grupos y así sucesivamente. Como es un algoritmo basado en centroide, ‘medias’ en el agrupamiento de k-medias está relacionado con el centroide de los puntos de datos donde cada grupo está asociado con un centroide. El concepto de un algoritmo basado en centroide se explicará en la explicación de trabajo de k-medias.

Principalmente, el algoritmo de agrupación en clústeres de k-means realiza dos tareas:

  • Determina el valor más óptimo para K puntos centrales o centroides mediante un proceso repetitivo.
  • Asigna cada punto de datos a su centro k más cercano. El clúster se crea con puntos de datos que están cerca del centro k particular.

¿Cómo funciona la agrupación en clústeres de k-means?

Supongamos que tenemos dos variables X1 y X2, diagrama de dispersión a continuación:

img1-2688173

(1) Supongamos que el valor de k, que es el número de grupos predefinidos, es 2 (k = 2), por lo que aquí agruparemos nuestros datos en 2 grupos.

Es necesario elegir k puntos aleatorios para formar los grupos. No pueden existir restricciones en la selección de k puntos aleatorios desde el interior de los datos ni desde el exterior. Entonces, aquí estamos considerando 2 puntos como k puntos (que no forman parte de nuestro conjunto de datos) que se muestran en la siguiente figura:

img2-8347313

(2) El siguiente paso es asignar cada punto de datos del conjunto de datos en el diagrama de dispersión a su punto k más cercano, esto se hará calculando la distancia euclidiana entre cada punto con un punto k y dibujando una mediana entre ambos centroides, que se muestra en la figura a continuación-

img3-2535840

Podemos observar claramente que el punto a la izquierda de la línea roja está cerca de K1 o el centroide azul y los puntos a la derecha de la línea roja están cerca de K2 o el centroide naranja.

img4-1673043

(3) Como necesitamos encontrar el punto más cercano, repetiremos el proceso eligiendo un nuevo centroide. Para elegir los nuevos centroides, calcularemos el centro de gravedad de estos centroides y encontraremos nuevos centroides como se muestra a continuación:

img5-3807283

(4) Ahora, necesitamos reasignar cada punto de datos a un nuevo centroide. Para ello, tenemos que repetir el mismo proceso de encontrar una línea mediana. La mediana será como a continuación:

img6-4253096

En la imagen de arriba, podemos ver, un punto naranja está en el lado izquierdo de la línea y dos puntos azules están justo a la línea. Entonces, estos tres puntos se asignarán a nuevos centroides

img7-3939464

Seguiremos encontrando nuevos centroides hasta que no haya puntos diferentes en ambos lados de la línea.

img8-3866459

Ahora podemos eliminar los centroides asumidos, y los dos grupos finales serán como se muestra en la imagen de abajo

img9-1419858

Hasta ahora hemos visto cómo funciona el algoritmo de k-medias y los distintos pasos involucrados para llegar al destino final de los clusters diferenciadores.

Ahora todos deben estar preguntándose cómo elegir el valor de k número de clusters.

El rendimiento del algoritmo de agrupación de K-means depende en gran medida de las agrupaciones que forma. Elegir el número óptimo de clústeres es una tarea difícil. Hay varias formas de encontrar el número óptimo de conglomerados, pero aquí estamos discutiendo dos métodos para encontrar el número de conglomerados o el valor de K que es el Método del codo y puntuación de la silueta.

Método del codo para encontrar ‘k’ número de grupos:[1]

El método Elbow es el más popular para encontrar un número óptimo de conglomerados, este método utiliza WCSS (Suma de cuadrados dentro de los conglomerados) que representa las variaciones totales dentro de un conglomerado.

WCSS = ∑Pi en Cluster1 distancia (PI C1)2 + ∑Pi en Cluster2distancia (PI C2)2+ ∑Pi en CLuster3 distancia (PI C3)2

En la fórmula anterior ∑Pi en Cluster1 distancia (PI C1)2 es la suma del cuadrado de las distancias entre cada punto de datos y su centroide dentro de un grupo1 de manera similar para los otros dos términos en la fórmula anterior.

Pasos involucrados en el método del codo:

  • K- significa que el agrupamiento se realiza para diferentes valores de k (de 1 a 10).
  • WCSS se calcula para cada grupo.
  • Se traza una curva entre los valores WCSS y el número de conglomerados k.
  • El punto de curvatura agudo o un punto de la trama parece un brazo, entonces ese punto se considera como el mejor valor de K.

img10-7054276

Así que aquí, como podemos ver, una curva pronunciada está en k = 3, por lo que el número óptimo de grupos es 3.

Puntuación de silueta Método para encontrar ‘k’ número de conglomerados

El valor de silueta es una medida de cuán similar es un objeto a su propio grupo (cohesión) en comparación con otros grupos (separación). La silueta varía de -1 a +1, donde un valor alto indica que el objeto se corresponde bien con su propio grupo y no con los grupos vecinos. Si la mayoría de los objetos tienen un valor alto, entonces la configuración de agrupamiento es apropiada. Si muchos puntos tienen un valor bajo o negativo, entonces la configuración de la agrupación en clústeres puede tener demasiados o muy pocos clústeres.

img11-2536034

Ejemplo que muestra cómo podemos elegir el valor de ‘k’, ya que podemos ver que en n = 3 tenemos la puntuación máxima de silueta, por lo tanto, elegimos el valor de k = 3.

Ventajas de utilizar la agrupación en clústeres de k-means

  • Fácil de implementar.
  • Con una gran cantidad de variables, K-Means puede ser computacionalmente más rápido que el agrupamiento jerárquico (si K es pequeño).
  • Las k-medias pueden producir agrupaciones más altas que las agrupaciones jerárquicas.

Desventajas de usar clustering de k-means

Es difícil predecir el número de agrupaciones (valor K).

Las semillas iniciales tienen un fuerte impacto en los resultados finales.

Implementación práctica del algoritmo de agrupación en clústeres K-means utilizando Python (segmentación de clientes bancarios)

Aquí estamos importando las bibliotecas necesarias para nuestro análisis.

img12-8669083

Leer los datos y obtener las 5 mejores observaciones para echar un vistazo al conjunto de datos

img13-8853402

No se ha incluido el código para EDA (Análisis de datos exploratorios), se realizó EDA con estos datos y se realizó un análisis de valores atípicos para limpiar los datos y hacerlos aptos para nuestro análisis.

Como sabemos, las K-medias se realizan solo en los datos numéricos, por lo que elegimos las columnas numéricas para nuestro análisis.

img14-5980407

Ahora, para realizar la agrupación de k-medias como se discutió anteriormente en este artículo, necesitamos encontrar el valor del número ‘k’ de agrupaciones y podemos hacerlo usando el siguiente código, aquí usamos varios valores de k para la agrupación y luego seleccionando utilizando el Método del codo.

img15-5547594

img16-6550429

A medida que aumenta el número de conglomerados, la varianza (suma de cuadrados dentro del conglomerado) disminuye. El codo en 3 o 4 grupos representa el equilibrio más parsimonioso entre minimizar el número de grupos y minimizar la varianza dentro de cada grupo, por lo que podemos elegir un valor de k para que sea 3 o 4

Ahora se muestra cómo podemos usar el método del valor de silueta para encontrar el valor de ‘k’.

img17-8713057

img18-3460944

Si observamos, obtenemos el número óptimo de conglomerados en n = 3, por lo que finalmente podemos elegir el valor de k = 3.

Ahora, ajustar el algoritmo de k significa usando el valor de k = 3 y trazar el mapa de calor para los clústeres.

img19-3781541

img20-4971954

img21-9018714

Análisis final

Clúster 0: clientes jóvenes que obtienen préstamos de bajo crédito durante un período breve

Grupo 1: Clientes de mediana edad que obtienen préstamos de alto crédito durante un período prolongado

Grupo 2: Clientes de edad avanzada que obtienen préstamos de crédito medio por un período corto

Conclusión

Hemos discutido qué es la agrupación en clústeres, sus tipos y su aplicación en diferentes industrias. Discutimos qué es la agrupación de k-medias, el funcionamiento del algoritmo de agrupación de k-medias, dos métodos para seleccionar el número ‘k’ de agrupaciones, y sus ventajas y desventajas. Luego, pasamos por la implementación práctica del algoritmo de agrupación en clústeres de k-medias utilizando el problema de segmentación de clientes bancarios en Python.

Referencias:

(1) img (1) a img (8) y [1] , referencia tomada del «Algoritmo de agrupación en clústeres de K-medias»

https://www.javatpoint.com/k-means-clustering-algorithm-in-machine-learning

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.