Resumen: PCA se puede realizar antes de LDA para regularizar el problema y evitar un ajuste excesivo.
Recuerde que las proyecciones LDA se calculan mediante la descomposición propia de , donde y son matrices de covarianza dentro y entre clases. Si hay menos de puntos de datos (donde es la dimensionalidad de su espacio, es decir, el número de características / variables), entonces será singular y, por lo tanto, no se puede invertir. En este caso, simplemente no hay forma de realizar LDA directamente, pero si uno aplica PCA primero, funcionará. @Aaron hizo este comentario en los comentarios a su respuesta, y estoy de acuerdo con eso (pero no estoy de acuerdo con su respuesta en general, como verá ahora).Σ W Σ B N N Σ WΣ−1WΣBΣWΣBNNΣW
Sin embargo, esto es solo una parte del problema. La imagen más grande es que 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 de LDA; para matrices de alta dimensión, la inversión es una operación realmente sensible que solo puede realizarse de manera confiable si la estimación de es realmente buena. Pero en altas dimensiones N ≫ 1 , es realmente difícil obtener una estimación precisa de Σ W , y en la práctica a menudo hay que tener mucho más que N puntos de datos para comenzar a esperar que la estimación sea buena. De lo contrario Σ WΣWN≫1ΣWNΣW será casi singular (es decir, algunos de los valores propios serán muy bajos), y esto causará un ajuste excesivo, es decir, una separación de clase casi perfecta en los datos de entrenamiento con un rendimiento casual en los datos de prueba.
Para abordar este problema, uno necesita regularizar el problema. Una forma de hacerlo es usar PCA para reducir primero la dimensionalidad. Hay otros, posiblemente mejores, por ejemplo, el método LDA regularizado (rLDA) que simplemente usa con λ pequeño en lugar de Σ W (esto se llama estimador de contracción ), pero conceptualmente es PCA enfoque más simple y, a menudo, funciona bien.(1−λ)ΣW+λIλΣW
Ilustración
Aquí hay una ilustración del problema de ajuste excesivo. Generé 60 muestras por clase en 3 clases a partir de la distribución gaussiana estándar (media cero, varianza unitaria) en espacios de 10, 50, 100 y 150 dimensiones, y apliqué LDA para proyectar los datos en 2D:
Observe cómo a medida que crece la dimensionalidad, las clases se vuelven cada vez mejores, mientras que en realidad no hay diferencia entre las clases.
Podemos ver cómo PCA ayuda a prevenir el sobreajuste si hacemos clases ligeramente separadas. Agregué 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 separados, vea la subtrama superior izquierda:
El sobreajuste (fila superior) sigue siendo obvio. Pero si preproceso los datos con PCA, siempre manteniendo 10 dimensiones (fila inferior), el sobreajuste desaparece mientras las clases permanecen casi óptimamente separadas.
PD. Para evitar malentendidos: no estoy afirmando que PCA + LDA sea una buena estrategia de regularización (por el contrario, recomendaría usar rLDA), simplemente estoy demostrando que es una estrategia posible .
Actualizar. Un tema muy similar se ha discutido previamente en los siguientes hilos con respuestas interesantes y completas proporcionadas por @cbeleites:
Vea también esta pregunta con algunas buenas respuestas:
best practice
. PCA y LDA, como técnicas de reducción de dimensionalidad, son muy diferentes. A veces las personas hacen PCA antes de LDA, pero tiene el riesgo de tirar (con las PC descartadas) importantes dimensiones discriminatorias. La pregunta que usted hace realmente se ha hecho de alguna forma varias veces en este sitio. Busque "PCA LDA" para leer lo que la gente le dijo.