PCA y bosques aleatorios


12

Para una competencia reciente de Kaggle, definí (manualmente) 10 características adicionales para mi conjunto de entrenamiento, que luego se usarían para entrenar un clasificador aleatorio de bosques. Decidí ejecutar PCA en el conjunto de datos con las nuevas características, para ver cómo se comparaban entre sí. Descubrí que ~ 98% de la varianza fue transportada por el primer componente (el primer vector propio). Luego entrené al clasificador varias veces, agregando una característica a la vez, y utilicé la validación cruzada y el error RMS para comparar la calidad de la clasificación. Descubrí que las clasificaciones mejoraron con cada característica adicional, y que el resultado final (con las 10 nuevas características) fue mucho mejor que la primera ejecución con (digamos) 2 características.

  • Dado que PCA afirmó que ~ 98% de la variación estaba en el primer componente de mi conjunto de datos, ¿por qué mejoró tanto la calidad de las clasificaciones?

  • ¿Sería esto cierto para otros clasificadores? RF escala a través de múltiples núcleos, por lo que es mucho más rápido entrenar que (digamos) SVM.

  • ¿Qué pasaría si hubiera transformado el conjunto de datos en el espacio "PCA" y ejecute el clasificador en el espacio transformado? ¿Cómo cambiarían mis resultados?


2
¿Normalizó sus datos antes de ejecutar PCA? Si tuviera que adivinar, pensaría que una de sus características estaba en una escala mucho mayor que las demás ...
Marc Shivers

1
La función PCA normaliza automáticamente todo al hacer el cálculo.
Vishal

1
Tal vez solo soy yo, pero ¿podría aclarar lo siguiente: su primer paso consistió en agregar 10 características (en bruto), una a la vez, o trabajó directamente con los componentes de PCA? Como se dijo, entiendo que este es el primer caso y se pregunta si podría trabajar directamente con los resultados de PCA. En cualquier caso, ¿aplicó el PCA en todas las variables, incluidas las nuevas características, o solo en la última?
chl

Apliqué el PCA a la matriz original con las 10 características adicionales. Luego entrené al clasificador, agregando una característica a la vez, para poder medir la mejora incremental proporcionada con la adición de cada característica. Mi pregunta era qué pasaría si transformara el conjunto de datos (con las 10 nuevas características) en el espacio PCA, y luego ejecutara el clasificador directamente en el conjunto de datos en el espacio PCA
Vishal

Respuestas:


7

Al realizar el modelado predictivo, intenta explicar la variación en la respuesta, no la variación en las características. No hay ninguna razón para creer que agrupar la mayor parte de la variación de características en una sola característica nueva capturará una gran cantidad del poder predictivo de las características en su conjunto.

Esto a menudo se explica como la diferencia entre la regresión del componente principal en lugar de los mínimos cuadrados parciales.


"No hay ninguna razón para creer que agrupar la mayor parte de la variación de características en una sola característica nueva capturará una gran cantidad del poder predictivo de las características en su conjunto". ¡Ese nunca fue el punto, y hacer esto resultaría en un clasificador muy confuso! El objetivo era tener una gama de características, todas ilustrando diferentes aspectos del conjunto de datos, con la intención de reducir el error de generalización. El punto de tomar el PCA fue ver cuán diferentes eran las características. Y mi punto de publicación fue que mis características no eran tan diferentes, sin embargo, los resultados de RF aún mejoraron.
Vishal

1
La misma lógica aún puede aplicarse. Una nueva característica es altamente colinnear con una característica anterior todavía puede traer más poder predictivo. Específicamente para un bosque aleatorio: si la característica casi duplicada es importante en general, ahora es más probable que se seleccione una versión u otra como candidatos divididos.
Shea Parkes

Esto plantea la pregunta de seguimiento, ¿cómo selecciona a priori las características de su clasificador de bosques aleatorio para mejorar la clasificación, sin ejecutar realmente el clasificador? ¿Hay un proceso de selección? ¿Cómo lo haces? :)
Vishal

No conozco ningún método útil de selección a priori. Puede hacer muchos bucles anidados de importancia y selección a través de algunos paquetes de R como Boruta. Tampoco los he encontrado útiles. No me parece razonable creer que una característica dada no tenga efecto. Puedo creer que enfatizar ciertas características sobre otras podría ser útil, pero el algoritmo base randomForest ya lo hace bastante bien. Si está tan metido en el modelado y desea más rendimiento, le sugiero apilar otros algoritmos, algunos como algunos árboles impulsados, con su bosque aleatorio.
Shea Parkes

1
A priori, podría calcular algunas medidas de separabilidad para sus clases en función de sus características (distancia de Jeffries-Matusita, divergencia, etc.). Esto podría ayudarlo a descubrir en general qué características lo ayudan a distinguir entre clases, pero debido al funcionamiento de RF, no es fácil elegir aquí qué características proporcionan el mejor conjunto para la clasificación. Un obstáculo claro aquí es que RF encuentra interacciones variables por sí mismo.
JEquihua

6

El primer componente principal es una combinación lineal de todas sus características. El hecho de que explique casi toda la variabilidad solo significa que la mayoría de los coeficientes de las variables en el primer componente principal son significativos.

Ahora los árboles de clasificación que genera también son un poco diferentes a los animales. Hacen divisiones binarias en variables continuas que mejor separan las categorías que desea clasificar. Eso no es exactamente lo mismo que encontrar combinaciones lineales ortogonales de variables continuas que dan la dirección de mayor varianza. De hecho, hemos discutido recientemente un documento sobre CV en el que se usó PCA para el análisis de conglomerados y los autores encontraron que existen situaciones en las que la mejor separación no se encuentra en los primeros componentes principales, sino en los últimos.


3
"De hecho, hemos discutido recientemente un documento sobre CV donde PCA" ¿tiene un enlace a esto? Estoy muy interesado :)
user603

Buscaré la discusión.
Michael R. Chernick

¿Serás tan amable de echar un vistazo a la pregunta relacionada ?
nadya
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.