PCA (Análisis de Componentes Principales, Principal Component Analysis) resume muchas variables en unas pocas nuevas, perdiendo la menor cantidad de información posible. Es la forma clásica de reducir dimensiones para visualizar o simplificar datos.
El problema: demasiadas dimensiones
Un conjunto de datos con cientos de variables es difícil de graficar, más lento de procesar y propenso al sobreajuste (la llamada maldición de la dimensionalidad). Muchas de esas variables, además, están correlacionadas y dicen casi lo mismo. ¿Y si pudiéramos condensarlas sin perder lo esencial?
La idea: nuevas direcciones de máxima varianza
PCA no elige un subconjunto de variables: crea variables nuevas (los componentes principales) que son combinaciones de las originales. Las construye buscando las direcciones donde los datos más varían.
- El primer componente es la dirección de mayor varianza: la que mejor "estira" la nube de puntos.
- El segundo es la siguiente dirección de mayor varianza, perpendicular a la anterior.
- Y así sucesivamente.
La intuición: la varianza es información. Una dirección donde los datos apenas cambian aporta poco y puede descartarse.
Varianza explicada
Cada componente viene con una proporción de varianza explicada: cuánta de la información total captura. Normalmente los primeros pocos componentes acumulan la gran mayoría, y ahí está la magia: podemos quedarnos, por ejemplo, con 2 componentes que conservan el 95 % de la información y tirar el resto.
En código
scikit-learn reduce a las dimensiones que pidas y te dice cuánto conservaste:
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
X_esc = StandardScaler().fit_transform(X) # PCA exige escalar primero
pca = PCA(n_components=2)
X_2d = pca.fit_transform(X_esc) # datos reducidos a 2 columnas
print(X_2d.shape) # (n_muestras, 2)
print(pca.explained_variance_ratio_) # varianza que captura cada componente
print(pca.explained_variance_ratio_.sum()) # información total conservada
Reducir a n_components=2 es lo que permite dibujar en un plano un conjunto de datos que tenía decenas de variables.
Para qué sirve
- Visualización: proyectar datos de muchas dimensiones a 2 o 3 para verlos en un gráfico.
- Compresión: guardar menos números conservando lo esencial.
- Quitar ruido: descartar los componentes menores suele eliminar variaciones irrelevantes.
- Acelerar modelos: entrenar con menos variables, sin sacrificar mucho.
Para llevar
PCA resume muchas variables en pocos componentes principales, las direcciones de máxima varianza. Con unos pocos suele bastar para conservar casi toda la información, lo que permite visualizar, comprimir y limpiar datos. Junto con k-means, forma el dúo esencial del aprendizaje no supervisado: una agrupa filas, la otra resume columnas.
