Kernel PCA (kPCA)#
Kernel PCA (kPCA)
El Análisis de Componentes Principales (PCA) tradicional es un método lineal: busca ejes ortogonales en el espacio original de los datos para capturar la mayor varianza. Esto funciona muy bien cuando la estructura de los datos puede describirse con combinaciones lineales, pero es insuficiente cuando los datos tienen relaciones no lineales.
¿Qué hace Kernel PCA?
El Kernel PCA (kPCA) extiende el PCA clásico utilizando la llamada “truco del kernel” (kernel trick). En lugar de aplicar PCA directamente en el espacio original, kPCA:
Mapea los datos a un espacio de mayor dimensión a través de una función no lineal implícita.
En ese espacio transformado, las relaciones no lineales se convierten en lineales.
Aplica PCA en ese nuevo espacio, y luego proyecta los datos sobre los componentes principales encontrados.
La magia del kernel trick
El kernel trick evita calcular explícitamente la transformación a espacios de muy alta dimensión (lo cual sería costoso). En su lugar, se usan funciones kernel que permiten calcular los productos internos en ese espacio sin necesidad de hacer la transformación de manera explícita.
Funciones kernel más comunes:
Kernel lineal: equivalente al PCA clásico.
Kernel polinómico: permite capturar relaciones polinómicas entre las variables.
Kernel RBF (Radial Basis Function o Gaussiano): muy usado para capturar relaciones altamente no lineales.
Kernel sigmoide: similar al que se utiliza en redes neuronales.
¿Cuándo usar kPCA?
Cuando los datos tienen patrones no lineales difíciles de capturar con PCA clásico.
Para reducción de dimensionalidad previa a clasificación en problemas complejos.
En situaciones donde se sospecha que la estructura interna de los datos no es lineal.
En resumen:
PCA clásico = reducción de dimensionalidad lineal.
kPCA = reducción de dimensionalidad no lineal, gracias al uso de funciones kernel. Esto convierte al Kernel PCA en una herramienta muy poderosa para descubrir estructuras ocultas en datos complejos.
Ejemplo de PCA (lineal):
PCA#
Ejemplo aplicación del Kernel:
Kernal_PCA#
Ejemplo kPCA:
kPCA#
Funciones Kernel comunes:#
Lineal
\(K(x, y) = x^T y\)
Equivalente al PCA estándar.
Polinómico:
\(K(x, y) = (x^T y + c)^d\)
Donde \(c\) es un coeficiente y \(d\) es el grado del polinomio.
Radial Basis Function (RBF) o Gaussiano:
\(K(x, y) = \exp(-\gamma ||x - y||^2)\)
Donde \(\gamma\) es un parámetro que define la amplitud del kernel. Puede cambiar la forma de la campana. Un valor bajo ajustará libremente el conjunto de datos, mientras que un valor más alto ajustará exactamente al conjunto de datos, lo que provocaría un ajuste excesivo (sobreajuste).
Sigmoidal:
\(K(x, y) = \tanh(\alpha x^T y + c)\)
Donde \(alpha\) y \(c\) son parámetros.
Parámetros:
Parámetro |
Explicación breve |
---|---|
n _components |
Número de componentes principales a calcular (≤ número de observaciones). |
kernel |
Tipo de kernel: |
gamma |
Parámetro del kernel RBF, polinómico y sigmoide; controla la curvatura. |
degree |
Grado del polinomio si |