2 · PCA: intuición y matemáticas
Encuentra los ejes ortogonales de máxima varianza — y úsalos para comprimir features sin perder la señal.
PCA encuentra las direcciones ortogonales de máxima varianza en los datos — las primeras pocas capturan la mayor parte de la señal, el resto se descarta.
Sin esto:
Sin PCA carecerías del algoritmo universal de primera pasada para reducción de dimensionalidad y la base conceptual para los métodos basados en SVD.
Análisis de Componentes Principales (PCA) es el caballo de batalla de la reducción de dimensionalidad lineal. Dado una matriz X (n muestras × d features), PCA encuentra k direcciones ortogonales — los componentes principales — a lo largo de las cuales los datos se dispersan más. Proyecta X sobre esas k direcciones y obtienes una representación comprimida que preserva la mayor varianza posible.
La receta matemática:
- Centrar los datos: restar la media de cada columna. Escalar si los features están en unidades diferentes (¡PCA es sensible a la escala!).
- Matriz de covarianza: Σ = (1/n) · XᵀX — una matriz d×d donde Σᵢⱼ captura cómo co-varían los features i y j.
- Eigendescomposición: Σ = VΛVᵀ — los eigenvalores λᵢ son las varianzas a lo largo de cada dirección de PC; los eigenvectores vᵢ (columnas de V) son las direcciones de los PCs.
- Ordenar: el mayor λ primero — el primer PC captura la mayor varianza.
- Proyectar: Z = X · V_k (los k eigenvectores superiores), produciendo una matriz n×k.
Razón de varianza explicada: λᵢ / Σλ es la fracción de la varianza total capturada por el i-ésimo PC. Grafica la versión acumulada para elegir k — una heurística común es "mantener suficientes PCs para explicar el 90% de la varianza".
¿Por qué SVD? PCA de sklearn usa SVD de X (no eigendescomposición de Σ) para estabilidad numérica. SVD nunca necesita formar explícitamente Σ, que puede estar mal condicionada. Descompondremos la equivalencia en la siguiente lección.
Python (in browser)
Los dos componentes principales de datos 2D correlacionados — PC1 se alinea con la diagonal principal (varianza máxima), PC2 es perpendicular.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Scree plot — el 'codo' muestra qué tan rápido se captura la varianza. El 90% de la varianza del dataset de cáncer de mama se captura con solo 7-10 PCs de 30.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
La precisión con 2 componentes PCA es sorprendentemente cercana a usar los 30 features — PCA preserva la señal discriminativa.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Datos de cáncer de mama proyectados a los primeros 2 PCs — las dos clases ya se separan sin usar ninguna información de etiquetas.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
La equivalencia SVD ↔ PCA — entender esto te permite leer components_ y explained_variance_ de sklearn sin confusión.
Descomposición en Valores Singulares — el motor numérico dentro del PCA de sklearn. Entender SVD hace que el atributo components_ y la fórmula de reconstrucción cobren sentido.
¿Por qué debes escalar los features antes de aplicar PCA?
- PCA encuentra direcciones ortogonales (componentes principales) de máxima varianza mediante eigendescomposición de la matriz de covarianza Σ = XᵀX/n.
- Siempre aplica StandardScaler antes de PCA — un feature con rango numérico grande dominará la estructura de covarianza y distorsionará todos los componentes.
- La razón de varianza explicada λᵢ/Σλ indica qué fracción de la varianza total captura cada PC — usa un scree plot acumulado para elegir k.
- sklearn implementa PCA vía SVD de X (no eigendescomposición de Σ) — más estable numéricamente, especialmente para matrices anchas.
- PCA no conoce las clases — si las direcciones discriminativas tienen poca varianza, prefiere LDA cuando las etiquetas estén disponibles.
Compresión de imágenes (eigenfaces), análisis de expresión génica, visualización de word embeddings de NLP vía PCA a 2D, análisis exploratorio de datos en cualquier dataset de alta dimensión.
Si lo quitas: Carecerías del compresor canónico y el punto de entrada a todas las técnicas basadas en SVD — desde eigenfaces hasta análisis semántico latente y factorización de matrices en sistemas de recomendación.