Clusterización: Haz un gran análisis agrupando tus datos

Seguro que has escuchado hablar mucho sobre el término “cluster” a lo largo del tiempo. Esta palabra que tanto usamos, viene del inglés antiguo (clyster), que se refería a “grupos” o “bultos”. Con el tiempo la palabra evoluciono hasta ser lo que conocemos hoy. Si pasamos de la etimología de la palabra, para centrarnos en …

Clusterización: Haz un gran análisis agrupando tus datos Leer más »

Seguro que has escuchado hablar mucho sobre el término “cluster” a lo largo del tiempo. Esta palabra que tanto usamos, viene del inglés antiguo (clyster), que se refería a “grupos” o “bultos”. Con el tiempo la palabra evoluciono hasta ser lo que conocemos hoy.

Si pasamos de la etimología de la palabra, para centrarnos en la parte más analítica, cluster se refiere a esos conjuntos de elementos que tienen algún tipo de similitud, basada en una característica por la cual definimos que pueden ser agrupados juntos.

En el mundo de la ciencia de datos y la analítica, la clusterización es una técnica fundamental que consiste en eso mismo: agrupar un conjunto de objetos de manera que los que pertenezcan al mismo grupo, son más similares entre sí en comparación con los de otros grupos. Y que no te extrañe que esta técnica se use en cantidad de sectores distintos, desde el marketing hasta la biología. Su uso está muy extendido porque da una información analítica muy valiosa sobre grandes volúmenes de datos, cuando es necesario tratarlos por conjuntos, y no de forma unitaria.

¿Qué es la clusterización en datos?

La clusterización es un método de aprendizaje no supervisado que busca patrones en un conjunto de datos sin etiquetar (es decir, datos cuya variable objetivo desconocemos). El objetivo es dividir el conjunto en varios grupos o clústeres de tal manera que los datos en cada clúster compartan ciertas características o patrones comunes. ¿Te va sonando verdad?

¿Cómo puedo desarrollar código para realizar una clusteriazacion?

Te lo queremos poner fácil, así que allá van dos tipos de métodos con algunos fragmentos de código que pueden serte de gran ayuda de cara a implementar tu algoritmo de clusterización:

K-Means

Este es uno de los métodos de agrupación más utilizados, y su objetivo es dividir el conjunto de datos en K grupos distintos.

  • Es eficiente y rápido, especialmente, en grandes conjuntos de datos
  • Es relativamente sencillo de entender e implementar
  • Produce resultados de clústeres con centroides claramente definidos, lo cual es muy útil para muchas aplicaciones prácticas
from sklearn.cluster import KMeans
import numpy as np

# Ejemplo de datos
X = np.array([[1, 2], [1, 4], [1, 0],
              [10, 2], [10, 4], [10, 0]])

# Aplicando K-Means
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
print(kmeans.labels_)

Clusterización jerárquica

Cuando lo que no interesa es entender la estructura de los datos que estamos analizando, el método más adecuado es usar la jerarquía de clústeres.

  • No requiere especificar un número concreto de agrupaciones, mientras que en el ejemplo anterior, si es necesario
  • Proporciona un dendograma, que es realmente útil para entender las relaciones entre los objetos y visualizar la estructura de los datos
  • Es flexible a la hora de establecer las similitudes entre características
  • Es más frecuente en conjuntos de datos más pequeños, donde se requiere un análisis más detallado
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt

# Generar un conjunto de datos de muestra
X = np.array([[1, 2], [2, 3], [3, 4],
              [4, 5], [5, 6], [6, 7]])

# Realizar la clusterización jerárquica
linked = linkage(X, 'single')

# Visualizar con un dendrograma
dendrogram(linked, orientation='top', distance_sort='descending', show_leaf_counts=True)
plt.show()

Cuál de los dos debo elegir

Ambos son grandes métodos de clustering, y elegir uno y otro depende en gran medida de:

  1. La naturaleza de nuestro conjunto de datos de partida, su complejidad y su extensión
  2. El objetivo del análisis y el nivel de detalle que estamos buscando
  3. Las restricciones computacionales que podamos tener

Ejemplos donde puedes aplicarlo

A continuación te damos algunas ideas sobre dónde puedes aplicar estas técnicas de agrupación de datos, que pueden serte de gran utilidad. Estos son solo algunos ejemplos, pero puede que te inspiren para buscar tus soluciones:

  • Segmentación de clientes en marketing: podemos agrupar a los clientes debido a su comportamiento, tendencias de consumo, intereses, o incluso, por sus ventas. De esta forma, la segmentación será mucho más precisa, y las campañas de marketing que se desarrollen, mucho más efectivas y dirigidas al objetivo final.
  • Análisis genético: puede realizarse una agrupación de genes con funciones o expresiones similares para entender mejor su papel e implicación en ciertas enfermedades.
  • Gestión de inventarios: se basa en agrupar productos de un almacén, por ejemplo, en base a cierta característica común, todo ello con el objetivo de optimizar el espacio (analizando su volumen) o los recorridos por el almacén (analizando en base a su rotación).

Como ves, estos ejemplos tan sencillos pueden aplicarse a muchos otros casos donde es necesarios ver cómo se agrupan elementos de un gran conjunto. Esta información nos es de gran ayuda cuando queremos analizar en profundidad cualquier dato, y sobre todo, realizar actuaciones sobre grupos.

Y ahora es tu turno

No pierdas la oportunidad de poner estos conocimientos a prueba. Te invitamos a ir a nuestra área de Desafíos, donde encontrarás distintos retos. Apúntate, descarga el dataset y prueba lo aprendido. La mejor manera de desarrollar tus habilidades es probándolas.

Scroll al inicio