1 · La maldición de la dimensionalidad
Por qué los espacios de alta dimensión rompen los modelos basados en distancias — y cómo selección vs extracción de features contraataca.
A medida que crece la dimensionalidad, las distancias se concentran, los vecindarios se vacían y 'similar' pierde significado — la reducción de dimensionalidad contraataca.
Sin esto:
Sin entender la maldición, volcarías cada feature en cada modelo y te preguntarías por qué KNN, el clustering basado en distancias y la estimación de densidad fallan silenciosamente.
La dimensionalidad se refiere al número de features de entrada en tu dataset. Una casa puede describirse con 5 features (área, habitaciones, pisos, antigüedad, código postal). Un genoma puede usar 500,000 marcadores SNP. Una imagen 64×64 tiene 4,096 dimensiones de píxeles. A medida que d crece, algo profundamente contraintuitivo ocurre: la geometría del espacio se rompe.
La maldición de la dimensionalidad es una familia de fenómenos relacionados que dificultan la estimación estadística en altas dimensiones:
-
El volumen se concentra en los bordes — En un cubo unitario d-dimensional, la fracción del volumen a distancia ε de cualquier cara tiende a 1 cuando d → ∞. La mayor parte de la masa de un cubo de alta dimensión vive en sus esquinas, no en su interior.
-
Las distancias se concentran — En altas dimensiones, la razón entre la distancia máxima y mínima entre puntos aleatorios converge a 1. Cada punto queda aproximadamente a la misma distancia de cualquier otro — "vecino más cercano" pierde su significado.
-
La densidad de datos colapsa — Para mantener la misma densidad de muestra que en d dimensiones, necesitas exponencialmente más puntos. Pasar de 2D a 20D requiere aproximadamente 10¹⁸ veces más datos para una cobertura equivalente.
Dos estrategias para combatir la maldición:
| Estrategia | Idea | Ejemplos | |---|---|---| | Selección de features | Mantiene un subconjunto de features originales | SelectKBest, Lasso (L1), información mutua | | Extracción de features | Construye nuevas features comprimidas | PCA, t-SNE, autoencoders |
La selección mantiene la interpretabilidad (puedes nombrar las features elegidas). La extracción sacrifica interpretabilidad por potencia de compresión — combina información de todas las features, potencialmente capturando estructura que la selección pierde.
Python (in browser)
Histogramas de distancias por pares en distintas dimensionalidades — para d=1000 la variación prácticamente desaparece.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
El volumen de la bola unitaria colapsa a casi cero en relación al cubo unitario.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Selección vs extracción — PCA generalmente gana ligeramente porque captura la varianza compartida entre todas las features.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Guía de decisión: cuándo seleccionar vs extraer features.
En un cubo unitario de 100 dimensiones, ¿dónde viven la mayoría de los puntos muestreados aleatoriamente?
- A medida que d crece, las distancias por pares se concentran en un solo valor — los algoritmos de vecinos más cercanos y basados en densidad degradan silenciosamente.
- El volumen de una bola unitaria relativa a un cubo unitario colapsa a cero cerca de d≈20 — los vecindarios esféricos de alta dimensión capturan casi ningún dato.
- La selección de features conserva features originales interpretables; la extracción (PCA, autoencoders) construye nuevos ejes comprimidos — ambas reducen la dimensionalidad efectiva.
- PCA típicamente supera ligeramente a SelectKBest en datos correlacionados porque captura varianza compartida en lugar de clasificar features individuales.
- Siempre reduce la dimensionalidad antes de aplicar KNN, SVM con RBF o GMM a datasets con d > 50.
Clasificación de imágenes (píxeles crudos son de alta dimensión), genómica (millones de SNPs por paciente), NLP (word embeddings como compresión de vocabularios de 50k+ a 300-D). Todos comienzan con alguna forma de reducción de dimensionalidad.
Si lo quitas: Entrenarías modelos en el espacio de features original y pagarías la maldición en cada predicción — mala generalización, inferencia lenta y errores de entrenamiento engañosamente pequeños.