Compresión de imágenes (eigenfaces, MNIST)
Una imagen MNIST 28×28 vive en 784 dimensiones pero se aproxima bien con ≈50 PCs. Misma idea detrás de JPEG y la transformada de Karhunen–Loève.
Nombra las cosas pensando en quien lee, no en quien escribe.
Nombra las cosas pensando en quien lee, no en quien escribe.
Análisis de Componentes Principales
Correr PCA sobre datos reales requiere un puñado de pasos prácticos que los textos a veces saltan. Primero, centra los datos restando la media: tilde{mathbf{x}}_n = mathbf{x}_n - bar{mathbf{x}}. Sin centrar, la primera 'componente principal' simplemente apuntará hacia la media, no hacia la dirección
Centra siempre los datos (y normalmente estandarízalos) antes de PCA.
Correr PCA sobre datos reales requiere un puñado de pasos prácticos que los textos a veces saltan. Primero, centra los datos restando la media: . Sin centrar, la primera 'componente principal' simplemente apuntará hacia la media, no hacia la dirección de variación real. Segundo, normalmente estandariza (divide cada característica por su desviación estándar) cuando las features viven en escalas distintas — de lo contrario PCA queda dominada por la que tenga mayor rango.
¿Cuántas componentes conservar? El scree plot muestra los autovalores en orden decreciente. Busca un 'codo' donde los autovalores se aplanan — las componentes más allá del codo son mayormente ruido. Una alternativa más principiada es la varianza explicada acumulada: elige tal que (o el umbral que la tarea aguas abajo requiera). Para fines puramente de visualización, o es fijo por necesidad.
Computacionalmente, evita formar explícitamente cuando es grande — es y puede no caber en memoria. En su lugar, usa la SVD de $X$ directamente: , donde las columnas de son las componentes principales y son los autovalores de . Para datasets enormes, la SVD aleatorizada (Halko et al.) calcula las primeras componentes en tiempo — órdenes de magnitud más rápido que la SVD completa.
PCA tiene limitaciones importantes. Es lineal — no captura variedades curvas (usa kernel PCA, Isomap, UMAP o autoencoders para eso). Asume que varianza = señal, lo que falla cuando el ruido tiene varianza grande (considera ICA en su lugar). No es invariante de escala — estandariza con cuidado. Y es un método con pérdida y no supervisado; las componentes descartadas pueden contener exactamente las features que tu tarea aguas abajo necesita. Valida siempre las decisiones de PCA contra la métrica final, no solo contra la varianza explicada.
A pesar de estas advertencias, PCA es la primera herramienta a probar para cualquier dataset de alta dimensión. Aplicaciones canónicas: reconocimiento facial (eigenfaces), finanzas (portafolios principales / factores de riesgo), genómica (estructura poblacional), NLP (el análisis semántico latente es PCA sobre matrices palabra-documento), compresión de imágenes (la DCT de JPEG es prima de PCA). La lección de machine learning va más allá del algoritmo: las matrices de covarianza codifican estructura, y la eigendescomposición la revela.
Ejemplo trabajado — error de reconstrucción rango-1: Una imagen tiene SVD con , así que la aproximación de rango 1 es exacta — error de reconstrucción cero. Si perturbamos a : los valores singulares son , . Conservar solo da error de Frobenius , mientras la 'energía' total es — la componente principal explica de la varianza.
Observa cómo crece la calidad de reconstrucción al añadir componentes.
Python (in browser)
Esperado: MSE drops, variance kept rises with k
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Ejemplo trabajado — eligiendo $k$ para 95% de varianza: Autovalores , total . Ratios acumulados: ; ; ; . Así que es el menor número de componentes para retener el 95% de la varianza. El scree plot mostraría un codo claro después de la segunda componente — una decisión de criterio entre compresión agresiva (, 80%) y preservación conservadora (, 95%).
Una imagen MNIST 28×28 vive en 784 dimensiones pero se aproxima bien con ≈50 PCs. Misma idea detrás de JPEG y la transformada de Karhunen–Loève.
Ajusta PCA sobre datos normales. Las muestras con alto error de reconstrucción o residuos grandes fuera de las PCs se marcan. Se usa en monitoreo industrial y detección de intrusos.
PCA sobre activaciones intermedias revela qué neuronas son redundantes — útil para poda, destilación e interpretabilidad.
Aplica el truco del kernel a PCA: PCA en un espacio implícito de alta dimensión definido por . Captura variedades no lineales.
from sklearn.decomposition import KernelPCA
kp = KernelPCA(n_components=2, kernel='rbf', gamma=0.05).fit_transform(X)Pon a prueba tu comprensión. Puntos por acierto + racha + velocidad.
3 preguntas rápidas. Acertá 2 para marcar esta lección como completada.