Uso del análisis de componentes principales (PCA) para la selección de características

54

Soy nuevo en la selección de funciones y me preguntaba cómo usaría PCA para realizar la selección de funciones. ¿PCA calcula una puntuación relativa para cada variable de entrada que puede usar para filtrar variables de entrada no informativas? Básicamente, quiero poder ordenar las características originales en los datos por variación o cantidad de información contenida.

Miguel
fuente

Respuestas:

75

La idea básica cuando se utiliza PCA como herramienta para la selección de características es seleccionar variables de acuerdo con la magnitud (de mayor a menor en valores absolutos) de sus coeficientes ( cargas ). Puede recordar que PCA busca reemplazar (variables más o menos correlacionadas) por combinaciones lineales no correlacionadas (proyecciones) de las variables originales. Ignoremos cómo elegir una óptima para el problema en cuestión. Esos componentes principales se clasifican por importancia a través de su varianza explicada, y cada variable contribuye con un grado variable a cada componente. Usar los criterios de mayor varianza sería similar a la extracción de característicask < p k k j < p j p jpk<pkk , donde el componente principal se usa como nuevas características, en lugar de las variables originales. Sin embargo, podemos decidir mantener solo el primer componente y seleccionar las variables que tienen el coeficiente absoluto más alto; el número podría basarse en la proporción del número de variables (por ejemplo, mantener solo el 10% superior de las variables ), o un límite fijo (por ejemplo, considerando un umbral en los coeficientes normalizados). Este enfoque tiene cierta semejanza con el operador Lasso en la regresión penalizada (o regresión PLS ). Sin embargo, ni el valor de ni el número de componentes a retener son elecciones obvias.j<pjpj

El problema con el uso de PCA es que (1) las mediciones de todas las variables originales se usan en la proyección hacia el espacio dimensional inferior, (2) solo se consideran las relaciones lineales y (3) los métodos basados ​​en PCA o SVD, también como métodos de cribado univariados (prueba t, correlación, etc.), no tenga en cuenta la naturaleza multivariada potencial de la estructura de datos (p. ej., interacción de orden superior entre variables).

Sobre el punto 1, se han propuesto algunos métodos de cribado más elaborados, por ejemplo , análisis de características principales o método por etapas, como el utilizado para el ' afeitado genético ' en estudios de expresión génica. Además, la PCA dispersa podría usarse para realizar la reducción de dimensiones y la selección de variables según las cargas variables resultantes. Sobre el punto 2, es posible usar el kernel PCA (usando el truco del kernel ) si se necesita incrustar relaciones no lineales en un espacio dimensional inferior. Los árboles de decisión , o mejor el algoritmo de bosque aleatorio , probablemente estén mejor capacitados para resolver el Punto 3. Este último permite derivar medidas basadas en Gini- o permutación de importancia variable .

Un último punto: si tiene la intención de realizar una selección de características antes de aplicar un modelo de clasificación o regresión, asegúrese de validar de manera cruzada todo el proceso (consulte §7.10.2 de los Elementos de aprendizaje estadístico , o Ambroise y McLachlan, 2002 ).


Como parece estar interesado en la solución R, recomendaría echar un vistazo al paquete de intercalación que incluye muchas funciones útiles para el preprocesamiento de datos y la selección de variables en un contexto de clasificación o regresión.

chl
fuente
1
Aquí hay mucha buena información, pero me sorprende que no se mencione EFA. Creo que el análisis factorial es apropiado para la selección de características / reducción de dimensionalidad, y PCA como realmente solo es apropiado para representar de nuevo sus datos de modo que las variables no estén correlacionadas. ¿Supongo que no estás de acuerdo?
gung - Restablece a Monica
3
Soy reacio a recomendar EFA sin saber qué tipo de datos estamos tratando: la introducción de un modelo para los errores (que PCA no tiene) ciertamente tiene su ventaja cuando se trata de variables latentes específicas, o más generalmente cuando se trata de descubrir latentes estructuras, pero PCA (con sus advertencias) se usa principalmente para realizar la reducción de dimensiones o la selección de características en grandes dimensiones, AFAICT. En el caso , la EPT sería inapropiada mientras existen métodos sofisticados para la selección de variables. No conozco el caso del OP, así que no puedo decir más, pero este es un buen comentario. np
chl
Es claramente un tema difícil y matizado. Como sabes mucho más sobre eso que yo, me interesó tu opinión. +1, por cierto.
gung - Restablece a Monica
2
Dos comentarios Primero, mencionas kPCA como una posible solución a tu punto 2. Pero, ¿cómo se puede usar kPCA para la selección de características, cuando los vectores propios / cargas no están disponibles allí? Hay una pregunta adicional sobre eso, y argumentaba que no puede . En segundo lugar, su segundo párrafo anterior al último podría mejorar mucho si menciona LASSO, como una forma preferida (?) De hacer la selección de características en la regresión. Este hilo sigue siendo muy popular y muchas preguntas están cerradas como duplicados, por lo que es importante que su respuesta sea lo mejor posible.
ameba dice Reinstate Monica
@chl, gracias por tu respuesta informativa. Hablas de "decidir mantener solo el primer componente". ¿Por qué solo el primer componente? Con un componente es fácil clasificar características / variables. ¿Cómo haría eso con múltiples componentes, digamos 3? ¿Cómo clasifica las variables entre los componentes? Supongo que podría pasar por cada componente principal y elegir la característica con la carga más grande de ese componente principal, del conjunto de características que aún no se han seleccionado. Estos nuevamente pueden ser seleccionados por un número (j) o por un umbral de coeficientes normalizados. ¿Estás de acuerdo?
Sother
6

Dado un conjunto de N características, un análisis de PCA producirá (1) la combinación lineal de las características con la mayor varianza (primer componente de PCA), (2) la combinación lineal con la mayor varianza en el subespacio ortogonal al primer componente de PCA, etc. (bajo la restricción de que los coeficientes de la combinación forman un vector con unidad de norma) Si la combinación lineal con la varianza máxima es una característica "buena" realmente depende de lo que intente predecir. Por esta razón, diría que ser un componente de PCA y ser una "buena" característica son (en general) dos nociones no relacionadas.

mepuzza
fuente
(-1) No veo cómo esto responde a la pregunta original en absoluto.
ameba dice Reinstate Monica
-1

No puede ordenar las características de acuerdo con su varianza, ya que la varianza utilizada en PCA es básicamente una entidad multidimensional. Solo puede ordenar entidades por la proyección de la varianza a cierta dirección que elija (que normalmente es el primer componente principal). Entonces, en otras palabras, si una entidad tiene más varianza que otra depende de cómo elija su dirección de proyección.

James LI
fuente
2
No entiendo: cada característica original tiene una variación, por lo que ciertamente se puede "ordenar las características de acuerdo con su variación". Además, no entiendo cómo se pueden ordenar "por la proyección de la varianza en la dirección que elijas". ¿Qué quieres decir con eso?
ameba dice Reinstate Monica
De hecho, puede usar la variación para ordenar características, solo que luego tiene algo que ver con PCA, que trata todas las características juntas.
James LI
Acerca de la proyección: si tiene n características, un vector de dirección es solo un vector unitario en el espacio n-dimensional; la proyección de sus vectores de instancias m es el producto a escala del vector de instancias con ese vector unitario, que da como resultado un vector tridimensional. Y la varianza de este vector m-dimensional es esa "proyección" de la varianza del conjunto de datos en la dirección elegida.
James LI
1
-1. Creo que cada una de las tres oraciones en su respuesta es incorrecta o tan poco clara que es engañosa. Estoy de acuerdo con todo lo que escribió en los comentarios, pero no tengo idea de cómo se puede interpretar que su respuesta significa eso. "No puede ordenar las características de acuerdo con su variación" - ?? "Solo puede ordenar características mediante la proyección de la varianza a cierta dirección" - ?? "si una característica tiene más variación ... depende ..." - ?? Todo eso está mal.
ameba dice Reinstate Monica
2
No sabía que esta pregunta se había hecho hace mucho tiempo; y estoy de acuerdo con la mayoría de estas respuestas. Mi punto es: PCA no es apropiado para la selección de funciones. Simplemente nadie aquí quiere decir esto directamente.
James LI