Principal Component Analysis (PCA)
El análisis de componentes principales (PCA) proyecta los datos sobre las direcciones ortogonales que capturan la mayor parte de la varianza. Descubre cómo funciona, cómo elegir k, sus usos y consulta el código.
El análisis de componentes principales (PCA) es una técnica lineal de reducción de dimensionalidad que vuelve a expresar los datos como variables nuevas y no correlacionadas, denominadas componentes principales, ordenadas según la cantidad de varianza de los datos que captura cada una. Conservar solo los primeros componentes comprime muchas características correlacionadas en unas pocas y mantiene la mayor parte de la información. Karl Pearson introdujo el método en 1901, y Harold Hotelling lo desarrolló más adelante y le dio nombre en 1933. PCA es una técnica no supervisada que ignora las etiquetas y sirve como paso estándar de preprocesamiento de datos, como forma rápida de visualizar datos de alta dimensionalidad en dos o tres dimensiones y como referencia para la compresión y la eliminación de ruido en el aprendizaje automático.
Cómo funciona PCA#
PCA primero centra cada característica restándole su media. El primer componente principal es la dirección en la que más varían los datos centrados, y cada componente posterior es la dirección con mayor varianza restante, ortogonal a todas las anteriores. Los componentes son los vectores propios de la matriz de covarianza de los datos, y los valores propios correspondientes son las varianzas a lo largo de esas direcciones; las bibliotecas calculan ambos mediante una descomposición en valores singulares (SVD) de los datos centrados, que es más estable numéricamente que construir la matriz de covarianza. Proyectar los datos sobre los k componentes principales proporciona la representación reducida, y proyectarlos de vuelta reconstruye una aproximación de los datos originales. De todas las proyecciones lineales a k dimensiones, la de PCA es la que produce el menor error cuadrático de reconstrucción.
La varianza depende de las unidades, por lo que primero se estandarizan las características medidas en escalas distintas, como los ingresos en euros y la edad en años; de lo contrario, la característica con el mayor intervalo numérico domina el primer componente. El número de componentes k suele elegirse a partir de la proporción de varianza explicada: se conservan componentes hasta que su proporción acumulada de varianza alcanza un objetivo, como el 95 %, o se elige a partir del codo de un gráfico de sedimentación que muestra la varianza por componente.
PCA de Scikit-learn acepta directamente un objetivo de varianza. Este ejemplo comprime imágenes de dígitos manuscritos de 8×8:
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# 1,797 handwritten digits, each an 8x8 image flattened to 64 pixel values
X, _ = load_digits(return_X_y=True)
# Keep the fewest components that explain 95% of the variance
pca = PCA(n_components=0.95)
X_reduced = pca.fit_transform(X)
print(f"{X.shape[1]} features -> {pca.n_components_} components")
print(f"First two components: {pca.explained_variance_ratio_[:2].sum():.1%} of the variance")Veintinueve componentes conservan el 95 % de la varianza de los 64 píxeles, reduciendo el tamaño de la entrada a menos de la mitad; los dos primeros componentes por sí solos contienen el 28,5 %. La varianza se concentra porque los píxeles vecinos están muy correlacionados y los píxeles de los bordes izquierdo y derecho de las imágenes apenas varían.
Limitaciones#
PCA solo detecta estructuras lineales, por lo que los datos situados en una superficie curva necesitan más componentes que su dimensionalidad real. Cada componente combina todas las características originales, lo que dificulta su interpretación, y las distancias al cuadrado permiten que unos pocos valores atípicos las inclinen. Una varianza alta tampoco equivale a utilidad: una dirección de baja varianza puede contener la señal que separa dos clases, por lo que descartarla puede perjudicar a un clasificador aunque se pierda poca varianza. Reducir muchas características a unas pocas sigue siendo útil para combatir la maldición de la dimensionalidad, por la que los modelos necesitan muchas más muestras para generalizar a medida que aumenta el número de características, y limita el sobreajuste cuando hay muchas características y pocas muestras.
PCA para embeddings en visión artificial#
Los modelos de visión describen cada imagen u objeto mediante un embedding, un vector de cientos de números, y PCA es un primer paso habitual para representarlos gráficamente, aplicarles clustering o comprimirlos. Los modelos YOLO26 devuelven un embedding por imagen mediante model.embed(), y proyectar esos vectores sobre sus dos primeros componentes principales proporciona un mapa lineal rápido de cómo un modelo entrenado a medida separa sus clases. Reducir las dimensiones de los embeddings almacenados también reduce el índice de una base de datos vectorial y acelera la búsqueda vectorial.
Aplicaciones#
- Reconocimiento facial: El método de los eigenfaces de Turk y Pentland (1991) representaba cada rostro mediante sus coordenadas en los componentes principales de un conjunto de imágenes faciales y reconocía a las personas comparando esas coordenadas.
- Detección de anomalías: La monitorización de procesos industriales ajusta PCA a los datos de sensores durante el funcionamiento normal y activa una alarma cuando una nueva lectura se reconstruye mal o queda muy alejada a lo largo de los componentes conservados.
- Genética de poblaciones: PCA de los datos de genotipos resume la ascendencia y, en un estudio de 2008 con 1.387 europeos, los dos primeros componentes reprodujeron un mapa reconocible de Europa.
- Riesgo de tipos de interés: Los cambios en la curva de rendimientos de los bonos están dominados por tres componentes que los analistas llaman nivel, pendiente y curvatura, por lo que los modelos de riesgo siguen tres cifras en vez de todos los vencimientos.
PCA frente a técnicas relacionadas#
- t-SNE y UMAP: Métodos no lineales diseñados para la visualización que preservan los vecindarios locales, por lo que los grupos se separan con mayor claridad, mientras que las distancias entre grupos alejados pierden significado. t-SNE de Scikit-learn no permite transformar puntos nuevos, mientras que una PCA ajustada proyecta datos nuevos con una sola multiplicación de matrices.
- Autoencoders: Redes neuronales que comprimen y reconstruyen datos y pueden aprender estructuras no lineales. Un autoencoder lineal entrenado con el error cuadrático aprende el mismo subespacio que PCA.
- Selección y extracción de características: La selección de características conserva un subconjunto de las columnas originales, que siguen siendo interpretables, mientras que PCA, un método clásico de extracción de características, crea otras nuevas que las combinan todas.
- Análisis discriminante lineal (LDA): Un método supervisado relacionado que elige direcciones que maximizan la separación entre clases en lugar de la varianza total y produce, como máximo, un componente menos que el número de clases.










