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:
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:
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: