PCA (Análisis de Componentes Principales)

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 XXX, PCA busca nuevas direcciones (vectores) tales que:

  • La primera componente → máxima varianza
  • La segunda → máxima varianza restante
  • Y así sucesivamente

Matemáticamente:

  1. Se centra el dataset
  2. Se calcula la matriz de covarianza
  3. Se obtienen vectores propios y valores propios
  4. 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ΣVTX = U \Sigma V^TX=UΣVT

👉 Las columnas de VVV:

  • 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:X=[233547]X = \begin{bmatrix} 2 & 3 \\ 3 & 5 \\ 4 & 7 \end{bmatrix}

PCA:

  1. Centrar datos
  2. Calcular covarianza
  3. Obtener eigenvectors
  4. Proyectar

👉 Resultado:

  • nueva representación más compacta

Relación con otros conceptos

Ejemplo en Python (NumPy)

import numpy as np
# Datos
X = np.array([
[2, 3],
[3, 5],
[4, 7]
])
# Centrado
X_mean = X - np.mean(X, axis=0)
# Covarianza
cov = np.cov(X_mean.T)
# Eigen
eigvals, eigvecs = np.linalg.eig(cov)
print("Valores propios:", eigvals)
print("Vectores propios:\n", eigvecs)

Ejemplo con reducción

import numpy as np
X = 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 importancia
idx = np.argsort(eigvals)[::-1]
eigvecs = eigvecs[:, idx]
# Proyección a 1D
X_reduced = X_mean @ eigvecs[:, :1]
print("Datos reducidos:\n", X_reduced)

Ejemplo en PyTorch

import torch
X = torch.tensor([
[2.0, 3.0],
[3.0, 5.0],
[4.0, 7.0]
])
# Centrar
X_mean = X - torch.mean(X, dim=0)
# SVD
U, S, Vt = torch.linalg.svd(X_mean)
# Componentes principales
components = Vt
# Proyección
X_reduced = torch.matmul(X_mean, components.T[:, :1])
print("Componentes:\n", components)
print("Reducido:\n", X_reduced)

Ejemplo en visualización

import numpy as np
from sklearn.decomposition import PCA
X = 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