Clustering#
El clustering (agrupamiento) es una técnica de aprendizaje no supervisado que tiene como objetivo agrupar un conjunto de objetos de tal manera que los objetos en el mismo grupo (o clúster) sean más similares entre sí que los objetos de otros grupos. En el contexto de las finanzas, el clustering se puede utilizar para identificar patrones en datos de clientes, segmentar mercados, detectar fraudes, entre otras aplicaciones.
Los modelos que realizan tareas de agrupamiento o clustering forman parte del aprendizaje automático no supervisado. Estos modelos se aplican a conjuntos de datos que no tienen etiquetas o clases predefinidas, es decir, no tienen una variable de respuesta (\(y\)). Se entrenan sin ningún valor objetivo, aprendiendo únicamente de las características inherentes de los datos y clasificándolos en uno o más grupos. Este proceso no define ninguna etiqueta de clases; simplemente separa las muestras basándose en sus diferencias.

Clustering#
Tipos de Clustering:#
Existen varios métodos de clustering, entre los más populares se encuentran:
1. K-Means:
K-Means es uno de los algoritmos de clustering más simples y populares. Divide el conjunto de datos en \(K\) clústeres predefinidos, minimizando la varianza dentro de cada clúster. Los pasos principales del algoritmo son:
Seleccionar \(K\) puntos iniciales (centroides).
Asignar cada punto de los datos al clúster con el centroide más cercano.
Recalcular los centroides de los nuevos clústeres formados.
Repetir los pasos 2 y 3 hasta que los centroides no cambien significativamente.
Ventajas:
Fácil de implementar y entender.
Rápido para grandes conjuntos de datos.
Desventajas:
Necesita predefinir el número de clústeres (\(K\)).
Sensible a la inicialización de los centroides.
No es adecuado para clústeres de formas irregulares.
2. Clustering Jerárquico:
El clustering jerárquico crea una jerarquía de clústeres utilizando un enfoque aglomerativo (de abajo hacia arriba) o divisivo (de arriba hacia abajo). El resultado se representa mediante un dendrograma.
Enfoque Aglomerativo:
Cada punto comienza como un clúster individual.
En cada paso, se combinan los dos clústeres más similares hasta que solo queda uno.
Enfoque Divisivo:
Todos los puntos comienzan en un solo clúster.
En cada paso, se divide el clúster más grande hasta que cada punto esté en su propio clúster.
Ventajas:
No requiere especificar el número de clústeres de antemano.
Proporciona una representación visual (dendrograma).
Desventajas:
Computacionalmente intensivo para grandes conjuntos de datos.
Las decisiones iniciales pueden tener un impacto significativo en el resultado final.
3. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
DBSCAN es un algoritmo de clustering basado en densidad que puede encontrar clústeres de forma arbitraria y manejar ruido (outliers). Se basa en la idea de que un punto pertenece a un clúster si está lo suficientemente cerca (en términos de densidad) de muchos otros puntos del clúster.
Ventajas:
No necesita predefinir el número de clústeres.
Puede encontrar clústeres de formas arbitrarias.
Maneja outliers de manera efectiva.
Desventajas:
Puede ser difícil determinar los parámetros de densidad adecuados (\(\epsilon\) y MinPts).
No funciona bien con datos de densidad variable.
Aplicaciones del Clustering en Finanzas:#
El clustering tiene múltiples aplicaciones en el campo financiero, tales como:
Segmentación de Clientes: Agrupar clientes con comportamientos similares para diseñar estrategias de marketing personalizadas.
Detección de Fraude: Identificar transacciones inusuales que podrían indicar actividades fraudulentas.
Análisis de Riesgo de Crédito: Clasificar a los prestatarios en diferentes categorías de riesgo.
Gestión de Carteras: Agrupar activos con comportamientos similares para diversificar riesgos y optimizar retornos.
Resumen#
K-Means sklearn.cluster.KMeans
Argumento |
¿Para qué sirve? |
Opciones / valores típicos |
Lo clave |
---|---|---|---|
|
Número de clusters a formar. |
Entero ≥ 1 (p. ej., 3, 5, 8). |
Elegir con
criterios como
codo (inertia)
o
|
|
Método para inicializar centroides. |
|
|
|
Repeticiones con distintas in icializaciones. |
|
Aumentarlo reduce riesgo de mínimos locales; fijar para re producibilidad. |
|
Iteraciones máximas por corrida. |
Entero (p. ej., 300). |
Si no converge, incrementar o revisar escalado de datos. |
|
Tolerancia para criterio de parada. |
|
Controla cuándo detener por pequeños cambios en inercia. |
|
Semilla de aleatoriedad. |
Entero (p. ej., 42). |
Fija resultados reproducibles. |
Notas clave K-Means:
Escalar variables (p. ej.,
StandardScaler
) para que una dimensión no domine.Sensible a outliers y a la forma (prefiere clusters esféricos).
Métricas comunes: inercia, silhouette para elegir
n_clusters
.
Clustering Jerárquico Aglomerativo
sklearn.cluster.AgglomerativeClustering
Argumento |
¿Para qué sirve? |
Opciones / valores típicos |
Lo clave |
---|---|---|---|
|
Número de clusters finales. |
Entero ≥ 1. |
Alternativo a
|
|
Umbral de distancia para cortar el dendrograma. |
Float (p. ej., 10.0). |
Si se usa,
dejar
|
|
Cómo se combinan clusters. |
|
|
|
Métrica de distancia. |
`
‘euclidean’`,
`
‘manhattan’`,
|
Con
|
|
Fuerza calcular árbol completo. |
|
Útil con
|
|
Guarda distancias entre merges. |
|
Necesario para análisi s/visualización posterior. |
Notas clave Jerárquico:
Permite interpretar la estructura con dendrogramas (usar
scipy
para graficarlos).No requiere fijar el número de clusters si se usa
distance_threshold
.Escalado recomendado si las variables están en magnitudes muy distintas.
DBSCAN sklearn.cluster.DBSCAN
Argumento |
¿Para qué sirve? |
Opciones / valores típicos |
Lo clave |
---|---|---|---|
|
Radio del vecindario. |
Float (p. ej., 0.3, 0.5). |
Parámetro más sensible |
|
Mínimo de puntos para formar un núcleo. |
Entero (p. ej., 5, 10). |
Regula densidad mínima; valores mayores → clusters más “densos”. |
|
Métrica de distancia. |
|
Consistente con la escala de datos; escalar antes si procede. |
|
Parámetro de Minkowski. |
|
Solo si
|
|
Paralelización. |
|
|
Notas clave DBSCAN:
No requiere
n_clusters
; detecta ruido (label = -1
) y clusters de forma arbitraria.Muy sensible a la escala: aplicar escalado o normalización.
K-Means: Agrupa buscando que cada punto esté lo más cerca posible del centro de su grupo.
Clustering Jerárquico: Es como armar familias de datos empezando de individuos y uniéndolos poco a poco.
DBSCAN: Encuentra grupos donde hay mucha densidad de puntos y deja fuera a los que están aislados.*
Forma de los clusters en cada método:
K-Means:
Tiende a formar clusters circulares o esféricos (en 2D serían círculos, en 3D serían esferas).
Esto pasa porque usa distancias euclídeas al centro, por lo que asume que todos los puntos de un grupo están distribuidos de forma más o menos redonda alrededor de su centro.
Si los datos tienen formas alargadas o curvas, K-Means puede separarlos de forma poco natural.
Clustering Jerárquico:
La forma de los clusters depende del criterio de enlace (
linkage
).Con
ward
tiende a formar clusters más compactos y cercanos a circulares.Con
single
ocomplete
puede generar clusters alargados o irregulares, adaptándose mejor a distintas formas.Es más flexible que K-Means, pero no tan bueno como DBSCAN para formas muy complejas.
DBSCAN:
No asume forma circular.
Puede detectar clusters de forma arbitraria: alargados, curvos, en espiral, etc.
Muy útil cuando los datos tienen densidades diferentes o formas no regulares.
Sin embargo, puede fallar si los clusters tienen densidades muy distintas.
Diferencia entre inercia y silueta:
Inercia
Imagina que cada grupo de puntos tiene un “imán” en el centro.
La inercia mide qué tan cerca están los puntos de su imán.
Cuanto más pequeña es la inercia, más juntos están los puntos dentro de cada grupo.
Es como medir qué tan apretado está un racimo de uvas.
Silueta
Aquí no solo miramos lo cerca que están los puntos de su propio grupo, sino también qué tan lejos están de otros grupos.La silueta combina ambas cosas:Alta → los puntos están muy cerca de su grupo y muy lejos de los otros.
Baja o negativa → los puntos están confundidos entre grupos.
Es como medir si un racimo de uvas está bien separado de los otros racimos.