- DBSCAN: Clustering Basado en Densidad para Detección de Comunidades
DBSCAN: Clustering Basado en Densidad · Detección de Comunidades
Odisea Algorítmica · De la regresión al aprendizaje profundo. En esta lección exploramos DBSCAN, un algoritmo de clustering que descubre comunidades con formas libres y señala outliers de forma natural. A diferencia de K-Means o el clustering jerárquico, DBSCAN no necesita que definamos el número de grupos a priori y es especialmente efectivo en datos con ruido y densidad variable.
🧭 Parámetros fundamentales: epsilon (eps) y min_samples
DBSCAN funciona midiendo la densidad local. Dos parámetros guían el proceso:
- ε (epsilon / eps) — radio de vecindad alrededor de cada punto. Define qué tan cerca debe estar otro punto para ser considerado vecino.
- min_samples — número mínimo de puntos (incluyéndose a sí mismo) dentro del radio ε para que un punto sea considerado “núcleo”.
Si elegimos un ε muy pequeño, fragmentaremos los clusters; si es muy grande, los fusionaremos. La regla general: explorar con k-distance graph. min_samples típicamente se fija ≥ dimensionalidad + 1, pero en la práctica suele usarse 5 o más.
⚙️ Algoritmo: puntos núcleo, frontera y ruido
DBSCAN clasifica cada punto en tres categorías:
- Punto núcleo (core) — tiene al menos min_samples dentro de su radio ε (incluyéndose).
- Punto de frontera (border) — no es núcleo, pero está dentro del radio ε de un punto núcleo.
- Punto de ruido (outlier) — no es núcleo ni frontera. No pertenece a ningún cluster.
El algoritmo itera: cualquier punto núcleo inicia un cluster y atrae a todos los puntos que estén a su alcance (densamente conectados). Los puntos frontera se agregan al cluster del núcleo que los cubre. El ruido permanece aislado.
💡 Interpretación visual: imagina vecindarios en una ciudad. Los puntos núcleo son plazas con mucha actividad, los de frontera son las calles aledañas, y el ruido son casas aisladas en el campo. Así DBSCAN reconoce comunidades naturales sin forzar una forma circular.
🌐 Comunidades en redes sociales · el paradigma relacional
Las redes de seguidores, amistades o coautorías poseen estructura de comunidad. Con DBSCAN podemos detectar grupos densamente conectados y nodos desconectados (usuarios esporádicos). A diferencia de otros métodos, DBSCAN:
- No asume que todos los nodos pertenezcan a una comunidad (ruido = cuentas inactivas).
- Revela comunidades con formas irregulares (por ejemplo, un grupo de investigadores que colabora en forma de estrella).
- Es robusto ante nodos puente (no los obliga a elegir un solo grupo).
⚖️ Comparación con K-Means y clustering jerárquico
| Característica | DBSCAN | K-Means | Jerárquico |
|---|---|---|---|
| Forma de clusters | arbitraria, basada en densidad | esférica / convexa | depende del enlace (single-link permite formas alargadas) |
| Detección de outliers | ✅ nativa (ruido) | ❌ asigna todos a un cluster | ❌ puede forzar agrupación |
| Número de clusters (k) | automático (excepto parámetros de densidad) | requiere fijar k | requiere elegir corte en dendrograma |
| Escalabilidad | O(n²) naive; O(n log n) con índices | O(n·k·d) rápido | O(n²) o O(n³) |
| Densidad variable | limitado (eps global) – opción OPTICS | no maneja bien | puede adaptarse con enlace completo |
Nota: DBSCAN brilla cuando hay ruido significativo y formas no convexas; K-Means es más rápido en datos limpios y esféricos.
🧪 Ejemplo práctico · detección de comunidades en red de coautorías
Imagina un conjunto de 200 investigadores con publicaciones en distintas áreas. Cada autor es un punto; la distancia puede definirse por coautoría (número de trabajos conjuntos). Aplicamos DBSCAN con eps=0.8 y min_samples=4:
- Aparecen 5 clusters principales: “procesamiento de lenguaje natural”, “visión por computadora”, “bioinformática”, “sistemas distribuidos” y “teoría de grafos”.
- 12 autores son marcados como ruido: investigadores multidisciplinarios con pocas colaboraciones estables (no pertenecen a una comunidad densa).
- Se detectan puntos frontera: autores que publican en dos áreas pero con mayor densidad en una.
Este approach se usa para mapear frentes de investigación, identificar grupos de expertos o recomendar colaboraciones.
📌 Implementación conceptual (pseudocódigo y consideraciones)
from sklearn.cluster import DBSCAN
modelo = DBSCAN(eps=0.5, min_samples=5, metric='euclidean')
etiquetas = modelo.fit_predict(X)
# -1 representa ruido; 0,1,2... son IDs de cluster
En redes sociales, la métrica puede ser precomputed (matriz de distancias basada en seguidores comunes). Si los datos tienen alta dimensionalidad, reduce con PCA o UMAP (pero cuidado con distorsiones).
⏳ Resumen para tu arsenal algorítmico: DBSCAN es ideal cuando sospechas que hay grupos de formas libres, outliers informativos y no quieres predefinir el número de clústeres. Combínalo con visualización de densidad para ajustar eps. Perfecto para redes, geolocalización, segmentación de comportamientos atípicos y detección de comunidades.
Odisea Algorítmica · Siguiente lección: OPTICS y HDBSCAN para densidad variable. El camino continúa.
No hay comentarios por ahora.
Compartir este contenido
Compartir enlace
Compartir en redes sociales
Compartir por correo electrónico
Please iniciar sesión para compartir esto Artículo por correo electrónico.