Entendiendo El Agrupamiento (Clustering) | Extraer Grupos Naturales Automáticamente De Datasets Complejos

Vincent Tatan
May 12, 2020


¿Qué es el agrupamiento (clustering)?
La agrupación es una técnica de aprendizaje no supervisada para extraer agrupaciones naturales o etiquetas de clases predefinidas e información previa. Es una técnica importante para el Análisis Exploratorio de Datos (EDA) para descubrir agrupaciones ocultas de los datos. Por lo general, utilizaría el agrupamiento para obtener insights sobre las distribuciones de los datos y la ingeniería de características para generar una nueva clase para otros algoritmos

Source (Unsplash)

Aplicacines del agrupamiento en la ciencia de los datos

Segmentación de vendedores en E-commerce
Cuando era pasante en Lazada (E-commerce), traté con agrupaciones 3D para encontrar agrupaciones naturales de los vendedores. El equipo de ventas de Lazada solicitó un análisis para recompensar a sus vendedores con múltiples promociones e insignias. Sin embargo, para lograrlo, necesitábamos entender quiénes eran los vendedores y cómo se desempeñaban. Para ello, diseñamos y seleccionamos tres dimensiones principales: las opiniones de los clientes, la calidad de la entrega y de los reembolsos, y la oferta de productos (vendedores especializados o generales).

Basándonos en estos criterios principales, creamos una visualización de agrupación en 3D para identificar a nuestros vendedores, clasificamos a estos vendedores y creamos tracks de recompensas e insignias para cada uno. Al final, a través de las pruebas AB, aumentamos el 23% del rendimiento de los vendedores críticos y mejoramos la métrica de la experiencia general del usuario.


Agrupación en 3-D usando Scikit Learn y el rendimiento general de los vendedores críticos en Lazada. Este es un ejemplo y no una representación real para evitar conflictos de divulgación de información

Otras aplicaciones
Si esta experiencia personal mía no es suficiente, todavía hay muchas más aplicaciones de la agrupación que puede encontrar en nuestra vida.

Etiquetado: Imagina que quieres clasificar muchos productos como cámaras, ropa y refrigeradores. ¿Cómo sabes cuáles son las etiquetas adecuadas para darles? ¿Deberían clasificarse las cámaras, los televisores y los ordenadores de mes bajo las mismas etiquetas? ¿Cuántas etiquetas debería crear para separar mejor estos productos?

Segmentación de clientes: Imagine que está trabajando para mejorar las compras de un minorista. ¿Podría clasificar grupos de compradores en función de sus patrones de compra? ¿Cuál sería el etiquetado y la promoción adecuados para aumentar el gasto de cada segmento de clientes?

Selección de género en un sistema de recomendación: Imagine como Netflix nos recomienda que programas para ver. ¿Cuáles son las etiquetas o géneros adecuados que cada recomendación debería tener para analizar los comportamientos de observación del usuario? ¿Es una buena idea clasificar las vistas en el período de tiempo en que se creo el programa?

Todo esto requiere técnicas de agrupación para crear agrupaciones naturales, especialmente cuando se trata de la complejidad de datos multidimensionales.

¿Cómo funciona la agrupación?
Dado un conjunto de objetos, nos gustaría agruparlos; dividirlos en un conjunto de grupos.

Mi separación de los Clusters de los datos de las películas del IMDB

En esta visualización, se puede ver directamente que hay unas pocas agrupaciones naturales de los puntos. Esto es fácil de visualizar porque sólo tenemos 2 dimensiones aquí (eje y y eje x). Por lo tanto, podemos destacar las agrupaciones. Pero asumiendo que tenemos muchas dimensiones. ¿Cómo utilizamos estas características para agruparlas en grupos?

Los objetivos de agrupación:
  • Entradas: un conjunto de objetos: X. Es una métrica de distancia D(.,.) donde define distancias entre objetos tales que D(x,y) = D(y,x) donde x, y E X.
  • Salida: Particiones de los objetos tales que Pd(x) = Pd(y) si x e y pertenecen al mismo grupo

Esta noción de similitud definida por la distancia recuerda a  a los “k vecinos mas cercanos” (knearest-neighor, KNN). Esto significa que podemos incluír los objetos dentro de determinados grupos sin ninguna medida de grupos buenos o malos. Lo que importa es la función de distancia que usamos para crear las particiones y separar los grupos.

Esto significa que las soluciones tienden a tener una alta variabilidad y dependen del algoritmo. Cada algoritmo de agrupación puede dar resultados diferentes de cuáles son los grupos óptimos. En este artículo, vamos a hablar de “Single Linked Clusters”, “K means clusters” y “Soft Clusters”:

Conjunto de datos no agrupados con “Single linked clusters”(2) y “K Means Clusters” (3)

Single linked clusters (Agrupaciones de un solo enlace)
Este es el algoritmo de agrupación más simple.
Pasos básicos de agrupación de SLC
Dada una entrada de k número de grupos:
  • Tratamos cada objeto como un grupo, con n grupos
  • Definimos las funciones de distancia entre grupos como la distancia más cercana posible entre múltiples grupos
  • Fusionar dos grupos más cercanos
  • Repita este algoritmo n-k veces para generar k grupos

Este algoritmo me recuerda a "Conecta los puntos", que es un juego en el que se unen los puntos uno por uno para construir una cierta forma y estructura.

Connect the Dots (source)

Complejidad y limitación
Curiosamente, este algoritmo de agrupación posee propiedades interesantes: es determinista (se ejecuta como el MST - algoritmo de árbol de expansión mínima) ya que trata las distancias como longitudes de límite con la notación Big O(n³). Necesitamos evaluar n² pares dentro de n veces (el peor de los casos). Necesitamos repetir k veces (n/2) pero también necesitamos mirar todas las distancias para encontrar el par más cercano O(n) que tiene diferentes etiquetas.

La agrupación de un solo enlace también aplica la heurística para conectar múltiples puntos cercanos entre sí que podrían no recibir los comportamientos esperados.

K-Means Clustering (Agrupamiento K Medios)

K-Means Clustering es un algoritmo simple y directo, ya que cada iteración sólo requiere un puñado de operaciones triviales. También identifica la convergencia a un mínimo local/global, lo que significa que podríamos aumentar el nivel de confianza para confiar en los resultados.

Pasos básicos de agrupación de K-Means
  • Escoge k centroides al azar
  • Asocia cada punto con los puntos centrales más cercanos
  • Recalcula los centros promediando los puntos agrupados
  • Repite estos pasos hasta que haya convergencia

Funciones de optimización de K-Means
  1. Configuraciones → Centro, P
  2. Puntuaciones → Sumatoria del error al cuadrado del centro P y la x.
  3. Vecindario → los puntos con menor distancia intergrupal de los centroides.

Cambio de paradigma comparado con SLC
Esto requiere unos pocos cambios de paradigma en comparación con el SLC y es un algoritmo de agrupación ampliamente utilizado hoy en el mundo

  • Tomando una ubicación aleatoria de los centros de los grupos (centroides) en lugar de usar la observación existente como los centros.
  • Iterar a través de múltiples miembros de observaciones con cada centroide hasta que no se vean más mejoras (convergencia)

Complejidad y limitación
En términos de notación O, k medios es más eficiente que SLC - con tiempo de polinomio para cada iteración O(kn).

Sin embargo, también hay desventajas que debemos considerar. En primer lugar, las k en “K Medios” necesitan ser identificadas antes. Esto significa que tenemos que analizar primero el número óptimo de grupos (k) utilizando el método del codo, etc. antes de ejecutar el algoritmo. Segundo, las semillas/centros iniciales que coloquemos también afectarán en gran medida a nuestros grupos. Tercero, los valores atípicos afectarán enormemente a nuestros centroides fijados y por lo tanto a los miembros de los grupos. Finalmente, “k means” asume grupos esféricos que podrían ser un problema en alguna distribución de datos no esféricos.

Soft Clustering (Agrupación suave)
Anteriormente sólo hablamos de una cierta observación con una sola clase de miembros. 
¿Y si esa observación es ambigua? Entonces marcaremos la observación con 2 grupos.


¿Cuál sería la clase correcta para asignar esa observación? Esto no está claro. ¿Y si asignamos esta observación a ambas clases?

Aquí es donde entra el agrupamiento suave. Utiliza la certeza de la probabilidad para identificar los posibles grupos usando la distribución Gaussiana seleccionada. El objetivo es maximizar la probabilidad de que los datos pertenezcan a una cierta clase. Esto se define como Maximización de la Expectativa (EM clustering).

Curiosamente, dado que la EM es una agrupación basada en la probabilidad, esto significa que hay un número infinito de configuraciones. Nunca lo haces peor, pero sigues acercándote y nunca llegas a la mejor configuración final.

Propiedades de los algoritmos de clustering
Entonces, ¿cómo elegimos qué grupo usar? Necesitamos considerar las siguientes propiedades para nuestro algoritmo de agrupación. Cada propiedad variará dependiendo del patrón de datos y la matriz de distancia que utilicemos.

  • Riqueza: Para la asignación de objetos a los grupos, hay una matriz de distancia D tal que la convergencia de los grupos ya establece límites en el número de grupos que da el mejor ajuste. Si detenemos el algoritmo SLC prematuramente cuando los grupos no han alcanzado k, sacrificaremos la riqueza al limitar el número de grupos.

  • Invariabilidad de la escala: Dado que aumentamos la escala de las métricas de distancia con una constante arbitraria (como de Celsius a Fahrenheit), los resultados de la pertenencia a los grupos no debería cambiar. Si los grupos están en una cierta unidad aparte, escalar los resultados cambiaría el resultado de los miembros de los grupos. Si detenemos el algoritmo SLC prematuramente cuando los grupos están en una unidad de valor predefinida aparte, sacrificaremos la invariabilidad de la escala.
  • Consistencia: Al comprimir o expandir los puntos, ningún punto se desviaría a otro grupo. Si los grupos son unidades identificadas en grados con la máxima distancia identificada, entonces podríamos transformar esta formulación de distancia y alterar la pertenencia al grupo. Esto significa que el grupo no debería cambiar cuando hacemos que puntos similares sean más similares o que puntos disímiles sean más disímiles. Si detenemos el algoritmo SLC prematuramente cuando los cúmulos son una unidad de valor predefinida dividida por la distancia intracluster más larga, sacrificaremos la consistencia.

Idealmente, su agrupación debería tener estas tres propiedades. Pero, desafortunadamente esto es imposible como se menciona en el Teorema de la Imposibilidad. Siéntase libre de revisar la prueba dentro de este documento.

“No hay ningún esquema de agrupación que logre las tres: riqueza, invariabilidad de escala y agrupación.”Jon Kleinberg 15

Finalmente...
Mi propio análisis de agrupación usando varias técnicas de agrupación y transformación de características

Espero que esta haya sido una gran lectura y una fuente de inspiración para que desarrolles e innoves.

Por favor, comenten a continuación sugerencias y comentarios. Al igual que usted, todavía estoy aprendiendo a ser un mejor científico de datos e ingeniero. Por favor, ayúdame a mejorar para que pueda ayudarte mas en mis siguientes publicaciones de artículos.

Gracias y Feliz código:)

Sobre el autor
Vincent Tatan es un entusiasta de los datos y la tecnología con experiencias de trabajo relevantes de Google LLC, Visa Inc. y Lazada en implementar arquitecturas de microservicios, inteligencia de negocios y pipelines de proyectos de analítica.

Vincent es un indonesio nativo con un historial de logros en la resolución de problemas con fortalezas en desarrollo full stack, analítica de datos y planeación estratégica.

Ha sido consultor activo de SMU BI & Analytics Club, guiando a aspirantes a científicos e ingenieros de datos de varios orígenes y abriendo su experiencia para que las empresas desarrollen sus productos.
Por último, por favor, contacte con Vincent a través de LinkedIn, Medium o su canal de  Youtube 

“Entendiendo El Agrupamiento (Clustering) | Extraer Grupos Naturales Automáticamente De Datasets Complejos”
– Vincent Tatan twitter social icon Tweet


Compartir este artículo:

0 Comentarios

Crear un comentario
Ingresar para Comentar

Artículos Relacionados

Nov 25, 2021

5 Consejos para Superar Una Entrevista de Trabajo para una Vacante de Científico de Datos

5 Tips To Ace Your Job Interview For A Data Scientist Opening.PNG 795.94 KBImage SourceLos aspirantes a científicos de datos tienen un futuro brill...

Daniel Morales
Por Daniel Morales
Nov 12, 2021

¿Cuándo Es Mejor Evitar el Uso de Deep Learning?

IntroducciónEste artículo está dirigido a los científicos de datos que pueden considerar el uso de algoritmos de aprendizaje profundo, y quieren sa...

Matt Przybyla
Por Matt Przybyla
Oct 16, 2021

6 Conceptos de Estadística Avanzada en Data Science

El artículo contiene algunos de los conceptos estadísticos avanzados más utilizados junto con su implementación en Python.En mis artículos anterior...

Nagesh Singh Chauhan
Por Nagesh Singh Chauhan
Icon

Únete a nuestra comunidad privada en Slack

Manténgase al día participando de ésta gran comunidad de data scientists en latinoamérica. Hablamos sobre competiciones en data science, cómo estamos resolviendo los retos, modelos de machine learning aplicados a las competiciones, técnicas novedosas y mucho más!

 
Te enviaremos el link de invitación a tu email de forma inmediata.
arrow-up icon