¿Tiene sentido combinar PCA y LDA?

25

Suponga que tengo un conjunto de datos para una tarea de clasificación estadística supervisada, por ejemplo, a través de 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 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 considerar las etiquetas de clase), y con LDA tendría los componentes que maximizan el intervalo -separación de clase.

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

Por ejemplo:

  1. transformando el conjunto de datos a través de PCA y proyectándolo en un nuevo subespacio 2D
  2. transformando el conjunto de datos (ya transformado por PCA) a través de LDA para un máx. separación en clase

o

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

o cualquier otra combinación que tenga sentido.

ameba dice Reinstate Monica
fuente
2
No puede haber universal 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.
ttnphns
@SebastianRaschka: Me pregunto si mi respuesta aquí fue útil, o ¿tiene alguna otra pregunta sobre estos temas?
ameba dice Reinstate Monica
@amoeba lo siento, no había visto la respuesta hasta ahora, de alguna manera debe haberse deslizado por las grietas, ¡gracias!

Respuestas:

44

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ΣW1Σ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ΣWN1Σ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:

Sobreajuste en LDA

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:

Sobreajuste en LDA y regularización con PCA

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:

ameba dice Reinstate Monica
fuente
Esa es una gran respuesta, en serio! Y mientras explica la teoría subyacente, también tiene una buena explicación práctica, otra gran respuesta para mi colección de referencia. ¡Muchas gracias!
No entiendo la segunda trama, me parece que las clases no están separadas con PCA antes de LDA (fila inferior)
PierreE
@PierreE, en el segundo diagrama, las clases se generan de tal manera que casi no están separadas. La separación es pequeña. En la fila inferior puede ver esta ligera separación, pero debe mirar de cerca: concéntrese en las clases azul y roja y verá que una se desplaza hacia la izquierda y otra hacia la derecha.
ameba dice Reinstate Monica
OK veo. Olvidé que la separación de clases que vemos en la fila superior en realidad es demasiado adecuada. Gracias
PierreE
1

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

Aaron
fuente
1
Hm, no sigo tu razonamiento aquí: estoy bastante seguro de que el LDA NO te reducirá a 1 dimensión a menos que lo elijas. Depende de cuántos vectores propios desee retener después de ordenar los valores propios disminuyendo los valores. Tal vez me estoy perdiendo algo aquí ... pero no mencioné el número de clases. Supongamos que tenemos 3 clases con 20 características cada una, y quiero proyectarlas en un subespacio 3D.
1
La única razón para hacer PCA primero es si la matriz de covarianza dentro de la clase es singular. Si tiene 20 funciones y tres clases, entonces no será singular, así que no haga PCA primero.
Aaron
44
assume we have 3 classes. @SebastianRaschka: Entonces LDA le permitirá un máximo de 2 funciones discriminantes. El número de valores propios en LDA es min (num_groups-1, num_features).
ttnphns
@Sebastian El número de funciones discriminantes que elija de LDA depende de lo que quiera hacer con él. Como una transformación espacial, es más o menos como PCA "supervisada" y elige tantas como desee. Como método de clasificación de separación de hiperplano , el hiperplano es, por definición, de dimensión N-1. Sin embargo, podría hacer una pregunta sobre ese tema para obtener información adicional, porque todavía no entiendo de dónde min(num_groups-1,num_features)viene el ...
Matthieu
1
@ Matthieu Creo que es debido a la matriz de dispersión de clase intermedia, la creas agregando matrices c (c = número de clases) que tienen rango 1 o menos. Por lo tanto, solo puede tener valores propios de c-1 distintos de cero al máximo.