33 votos

¿Tiene sentido combinar PCA y LDA?

Supongamos que tengo un conjunto de datos para una tarea de clasificación estadística supervisada, por ejemplo, mediante un clasificador de Bayes. Este conjunto de datos consta de 20 características y quiero reducirlo a 2 características mediante técnicas de reducción de la dimensionalidad como el análisis de componentes principales (PCA) y/o el análisis discriminante lineal (LDA).

Ambas técnicas están proyectando los datos en un subespacio de características más pequeño: con PCA, encontraría las direcciones (componentes) que maximizan la varianza en el conjunto de datos (sin tener en cuenta las etiquetas de clase), y con LDA tendría los componentes que maximizan la separación entre clases.

Ahora me pregunto si, cómo y por qué se pueden combinar estas técnicas y si tiene sentido.

Por ejemplo:

  1. transformar el conjunto de datos mediante PCA y proyectarlo en un nuevo subespacio 2D
  2. transformar el conjunto de datos (ya transformado por PCA) mediante LDA para obtener la máxima separación entre clases

o

  1. omitiendo el paso del PCA y utilizando los 2 componentes principales de un LDA.

o cualquier otra combinación que tenga sentido.

51voto

zowens Puntos 1417

Resumen: El PCA puede realizarse antes del LDA para regularizar el problema y evitar el sobreajuste.

Recordemos que las proyecciones LDA se calculan mediante la eigendecomposición de $\boldsymbol \Sigma_W^{-1} \boldsymbol \Sigma_B$ , donde $\boldsymbol \Sigma_W$ y $\boldsymbol \Sigma_B$ son las matrices de covarianza dentro y entre clases. Si hay menos de $N$ puntos de datos (donde $N$ es la dimensionalidad de su espacio, es decir, el número de características/variables), entonces $\boldsymbol \Sigma_W$ será singular y, por tanto, no podrá invertirse. En este caso simplemente no hay manera de realizar el LDA directamente, pero si se aplica primero el PCA, funcionará. @Aaron hizo esta observación en los comentarios a su respuesta, y estoy de acuerdo con ella (pero no estoy de acuerdo con su respuesta en general, como verás ahora).

Sin embargo, esto es sólo una parte del problema. El panorama más amplio es que el LDA tiende muy fácilmente a sobreajustar los datos. Tenga en cuenta que la matriz de covarianza dentro de la clase se invierte en los cálculos del LDA; para las matrices de alta dimensión la inversión es una operación realmente delicada que sólo puede realizarse de forma fiable si la estimación de $\boldsymbol \Sigma_W$ es realmente bueno. Pero en las altas dimensiones $N \gg 1$ es realmente difícil obtener una estimación precisa de $\boldsymbol \Sigma_W$ y en la práctica a menudo hay que tener un montón más de $N$ puntos de datos para empezar a esperar que la estimación sea buena. De lo contrario, $\boldsymbol \Sigma_W$ será casi sinular (es decir, algunos de los valores propios serán muy bajos), y esto provocará un sobreajuste, es decir, una separación de clases casi perfecta en los datos de entrenamiento con un rendimiento casual en los datos de prueba.

Para abordar esta cuestión, hay que regularizar el problema. Una forma de hacerlo es utilizar el PCA para reducir la dimensionalidad primero. Hay otras, posiblemente mejores, por ejemplo LDA regularizado (rLDA) que simplemente utiliza $(1-\lambda)\boldsymbol \Sigma_W + \lambda \boldsymbol I$ con pequeñas $\lambda$ en lugar de $\boldsymbol \Sigma_W$ (esto se llama estimación de la contracción ), pero hacer primero el ACP es conceptualmente el enfoque más sencillo y suele funcionar bien.

Ilustración

He aquí una ilustración del problema de sobreajuste. He generado 60 muestras por clase en 3 clases a partir de una distribución gaussiana estándar (media cero, varianza unitaria) en espacios de 10, 50, 100 y 150 dimensiones, y he aplicado LDA para proyectar los datos en 2D:

Overfitting in LDA

Obsérvese cómo a medida que aumenta la dimensionalidad, las clases se separan cada vez mejor, mientras que en realidad hay ninguna diferencia entre las clases.

Podemos ver cómo el PCA ayuda a evitar el sobreajuste si hacemos que las clases estén ligeramente separadas. He añadido 1 a la primera coordenada de la primera clase, 2 a la primera coordenada de la segunda clase y 3 a la primera coordenada de la tercera clase. Ahora están ligeramente separadas, véase el subgrupo superior izquierdo:

Overfitting in LDA and regularization with PCA

El sobreajuste (fila superior) sigue siendo evidente. Pero si preprocesamos los datos con PCA, manteniendo siempre 10 dimensiones (fila inferior), el sobreajuste desaparece y las clases siguen estando casi óptimamente separadas.

PS. Para evitar malentendidos: No estoy afirmando que PCA+LDA sea una buena estrategia de regularización (al contrario, aconsejaría utilizar rLDA), simplemente estoy demostrando que es una posible estrategia.


Actualización. Un tema muy similar ha sido discutido previamente en los siguientes hilos con interesantes y completas respuestas proporcionadas por @cbeleites:

Vea también esta pregunta con algunas buenas respuestas:

2voto

user2514608 Puntos 11

Si tiene un problema de dos clases, el LDA lo reducirá a una dimensión. No hay razón para hacer primero el PCA.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X