Reduciendo dimensiones sin perder la esencia de los datos
El Análisis de Componentes Principales (PCA) es una técnica de reducción de dimensionalidad que transforma datos a un nuevo sistema de coordenadas donde las direcciones capturan la máxima varianza posible.
👉 Es una de las herramientas más importantes en machine learning para simplificar datos sin perder información clave.
Definición corta
PCA transforma datos a nuevas dimensiones (componentes principales) que capturan la mayor variabilidad del dataset.
Definición detallada
Dado un conjunto de datos X, PCA busca nuevas direcciones (vectores) tales que:
- La primera componente → máxima varianza
- La segunda → máxima varianza restante
- Y así sucesivamente
Matemáticamente:
- Se centra el dataset
- Se calcula la matriz de covarianza
- Se obtienen vectores propios y valores propios
- Se proyectan los datos en esas direcciones
Intuición
Imagina un conjunto de puntos en 2D formando una nube inclinada.
👉 PCA encuentra:
- la dirección principal (donde los datos varían más)
- y la segunda dirección perpendicular
👉 Luego puedes:
- quedarte solo con la principal
- reducir dimensión sin perder estructura
Interpretación geométrica
PCA:
- rota el sistema de coordenadas
- alinea los ejes con la varianza
Visualmente
Nube inclinada → PCA → ejes alineados con la nube
👉 Resultado:
- datos más compactos
- menos redundancia
Componentes principales
Cada componente:
- es un vector propio
- tiene un valor propio asociado
👉 El valor propio indica:
- cuánta varianza explica esa componente
Relación con SVD
PCA puede implementarse mediante SVD:X=UΣVT
👉 Las columnas de V:
- son las componentes principales
PCA en redes neuronales
🔹 1. Reducción de dimensionalidad
Reduce:
- número de features
- complejidad del modelo
🔹 2. Preprocesamiento
Mejora:
- estabilidad
- eficiencia
🔹 3. Visualización
Proyecta datos de alta dimensión a:
- 2D o 3D
🔹 4. Eliminación de ruido
Componentes con baja varianza:
👉 suelen ser ruido
Ejemplo paso a paso
Dataset:
PCA:
- Centrar datos
- Calcular covarianza
- Obtener eigenvectors
- Proyectar
👉 Resultado:
- nueva representación más compacta
Relación con otros conceptos
- Valores propios
- Vectores propios
- SVD
- Varianza
- Covarianza
Ejemplo en Python (NumPy)
import numpy as np# DatosX = np.array([ [2, 3], [3, 5], [4, 7]])# CentradoX_mean = X - np.mean(X, axis=0)# Covarianzacov = np.cov(X_mean.T)# Eigeneigvals, eigvecs = np.linalg.eig(cov)print("Valores propios:", eigvals)print("Vectores propios:\n", eigvecs)
Ejemplo con reducción
import numpy as npX = np.array([ [2, 3], [3, 5], [4, 7]])X_mean = X - np.mean(X, axis=0)cov = np.cov(X_mean.T)eigvals, eigvecs = np.linalg.eig(cov)# Ordenar por importanciaidx = np.argsort(eigvals)[::-1]eigvecs = eigvecs[:, idx]# Proyección a 1DX_reduced = X_mean @ eigvecs[:, :1]print("Datos reducidos:\n", X_reduced)
Ejemplo en PyTorch
import torchX = torch.tensor([ [2.0, 3.0], [3.0, 5.0], [4.0, 7.0]])# CentrarX_mean = X - torch.mean(X, dim=0)# SVDU, S, Vt = torch.linalg.svd(X_mean)# Componentes principalescomponents = Vt# ProyecciónX_reduced = torch.matmul(X_mean, components.T[:, :1])print("Componentes:\n", components)print("Reducido:\n", X_reduced)
Ejemplo en visualización
import numpy as npfrom sklearn.decomposition import PCAX = np.random.rand(100, 5)pca = PCA(n_components=2)X_reduced = pca.fit_transform(X)print("Forma original:", X.shape)print("Forma reducida:", X_reduced.shape)
Qué muestra este ejemplo
- Reduce dimensiones
- Mantiene información clave
- Facilita visualización
Errores comunes
No centrar los datos
PCA requiere datos centrados.
Interpretar mal componentes
Son combinaciones lineales, no variables originales.
Usar demasiados componentes
Pierde el beneficio de reducción.
Ejemplo conceptual en ML
100 features → PCA → 10 features → modelo más rápido
Interpretación profunda
PCA permite:
- descubrir estructura oculta
- eliminar redundancia
- simplificar datos complejos
- mejorar eficiencia de modelos
👉 Es una herramienta clave para entender y transformar datos.
Conclusión
El PCA es una técnica fundamental para reducir dimensiones y capturar la esencia de los datos. Permite transformar datos complejos en representaciones más simples sin perder información relevante.
👉 Es una de las herramientas más prácticas y utilizadas en machine learning.
Related Concepts
- SVD
- Valores propios
- Vectores propios
- Varianza
- Covarianza
- Reducción de dimensionalidad