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

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:

  1. Seleccionar \(K\) puntos iniciales (centroides).

  2. Asignar cada punto de los datos al clúster con el centroide más cercano.

  3. Recalcular los centroides de los nuevos clústeres formados.

  4. 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:

  1. Cada punto comienza como un clúster individual.

  2. En cada paso, se combinan los dos clústeres más similares hasta que solo queda uno.

Enfoque Divisivo:

  1. Todos los puntos comienzan en un solo clúster.

  2. 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:

  1. Segmentación de Clientes: Agrupar clientes con comportamientos similares para diseñar estrategias de marketing personalizadas.

  2. Detección de Fraude: Identificar transacciones inusuales que podrían indicar actividades fraudulentas.

  3. Análisis de Riesgo de Crédito: Clasificar a los prestatarios en diferentes categorías de riesgo.

  4. 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_clusters

Número de clusters a formar.

Entero ≥ 1 (p. ej., 3, 5, 8).

Elegir con criterios como codo (inertia) o silhouette.

init

Método para inicializar centroides.

'k-means++' (por defecto), 'random'

'k-means++' suele converger más rápido y estable.

n_init

Repeticiones con distintas in icializaciones.

10, 20, 'auto'

Aumentarlo reduce riesgo de mínimos locales; fijar para re producibilidad.

max_iter

Iteraciones máximas por corrida.

Entero (p. ej., 300).

Si no converge, incrementar o revisar escalado de datos.

tol

Tolerancia para criterio de parada.

1e-4, 1e-3, etc.

Controla cuándo detener por pequeños cambios en inercia.

'ra ndom_state

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_clusters

Número de clusters finales.

Entero ≥ 1.

Alternativo a dista nce_threshold (no se usan juntos).

dista nce_threshold

Umbral de distancia para cortar el dendrograma.

Float (p. ej., 10.0).

Si se usa, dejar n_ clusters=None para “descubrir” el número de clusters.

linkage

Cómo se combinan clusters.

'ward', 'complete', 'average', 'single'.

'ward' minimiza varianza (requiere métrica euclídea); 'complete' más compacto; 'single' puede generar e ncadenamientos.

metric

Métrica de distancia.

` ‘euclidean’`, ` ‘manhattan’`, 'cosine', 'l1', 'l2', etc.

Con l inkage='ward' debe ser ` ‘euclidean’`.

comp ute_full_tree

Fuerza calcular árbol completo.

'auto', True, False.

Útil con dista nce_threshold para cortes precisos.

comp ute_distances

Guarda distancias entre merges.

True / False.

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

eps

Radio del vecindario.

Float (p. ej., 0.3, 0.5).

Parámetro más sensible

min_samples

Mínimo de puntos para formar un núcleo.

Entero (p. ej., 5, 10).

Regula densidad mínima; valores mayores → clusters más “densos”.

metric

Métrica de distancia.

' euclidean‘, ` ‘manhattan`’, 'cosine', ' minkowski’, etc.

Consistente con la escala de datos; escalar antes si procede.

p

Parámetro de Minkowski.

1 (Manhattan), 2 (Euclídea).

Solo si metric ='minkowski'.

n_jobs

Paralelización.

None o entero.

-1 usa todos los cores disponibles.

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 o complete 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.