PCA en datos de texto de alta dimensión antes de la clasificación aleatoria del bosque?

13

¿Tiene sentido hacer PCA antes de llevar a cabo una Clasificación de bosque aleatorio?

Estoy tratando con datos de texto de alta dimensión, y quiero hacer una reducción de características para ayudar a evitar la maldición de la dimensionalidad, pero ¿Random Forests ya no tiene algún tipo de reducción de dimensión?

Maus
fuente
77
El algoritmo de RF realmente no sufre de un gran número de predictores, ya que solo se necesita un subconjunto aleatorio de ellos (llamado mtryparámetro) para construir cada árbol. También hay una técnica de eliminación de características recursivas construida sobre el algoritmo de RF (consulte el paquete varSelRF R y las referencias en él). Sin embargo, es ciertamente posible agregar un esquema de reducción de datos inicial, aunque debería ser parte del proceso de validación cruzada. Entonces la pregunta es: ¿desea ingresar una combinación lineal de sus características a RF?
chl
¿Cuántas características / dimensiones, F? > 1K? > 10K? ¿Las características son discretas o continuas, por ejemplo, frecuencia de término, tfidf, métricas de similitud, vectores de palabras o qué? El tiempo de ejecución de PCA es cuadrático para F.
smci
Muy relacionado: stats.stackexchange.com/questions/258938
dice Reinstate Monica

Respuestas:

12

Leo Brieman escribió que "la dimensionalidad puede ser una bendición". En general, los bosques aleatorios pueden ejecutarse en grandes conjuntos de datos sin problemas. ¿Qué tan grandes son sus datos? Los diferentes campos manejan las cosas de diferentes maneras dependiendo del conocimiento de la materia. Por ejemplo, en los estudios de expresión génica, los genes a menudo se descartan en función de una baja varianza (sin mirar el resultado) en un proceso que a veces se denomina filtrado no específico. Esto puede ayudar con el tiempo de ejecución en bosques aleatorios. Pero no es obligatorio.

Siguiendo con el ejemplo de expresión génica, a veces los analistas usan puntajes de PCA para representar mediciones de expresión génica. La idea es reemplazar perfiles similares con una puntuación que sea potencialmente menos desordenada. Los bosques aleatorios pueden ejecutarse tanto en las variables originales como en los puntajes de PCA (un sustituto de las variables). Algunos han reportado mejores resultados con este enfoque, pero no hay buenas comparaciones que yo sepa.

En resumen, no es necesario hacer PCA antes de ejecutar RF. Pero puedes. La interpretación puede cambiar según sus objetivos. Si todo lo que quiere hacer es predecir, la interpretación puede ser menos importante.

julio
fuente
Gracias por la respuesta. La velocidad es un problema, más porque tengo varios miles de etiquetas posibles en un problema de etiquetas múltiples. La aplicación está clasificando un corpus de datos de texto extraídos de la descripción de ciertos eventos de Twitter y de los analistas. Estoy usando la ponderación tf-idf y el modelo de bolsa de palabras.
Maus
8

Me gustaría agregar mis dos centavos a esto ya que pensé que las respuestas existentes estaban incompletas.

Realizar PCA puede ser especialmente útil antes de entrenar un bosque aleatorio (o LightGBM, o cualquier otro método basado en el árbol de decisión) por una razón particular que ilustré en la imagen a continuación.

Básicamente, puede hacer que el proceso de encontrar el límite de decisión perfecto sea mucho más fácil al alinear su conjunto de entrenamiento en las direcciones con la mayor variación.

Los árboles de decisión son sensibles a la rotación de los datos, ya que el límite de decisión que crean es siempre vertical / horizontal (es decir, perpendicular a uno de los ejes). Por lo tanto, si sus datos se parecen a la imagen de la izquierda, se necesitará un árbol mucho más grande para separar estos dos grupos (en este caso, es un árbol de 8 capas). Pero si alinea sus datos con sus componentes principales (como en la imagen de la derecha), ¡puede lograr una separación perfecta con solo una capa!

Por supuesto, no todos los conjuntos de datos se distribuyen de esta manera, por lo que PCA no siempre ayuda, pero aún así es útil probarlo y ver si lo hace. Y solo un recordatorio, ¡no olvide normalizar su conjunto de datos a la variación de la unidad antes de realizar PCA!

PD: En cuanto a la reducción de la dimensionalidad, estoy de acuerdo con el resto de la gente en que generalmente no es un problema tan grande para los bosques aleatorios como para otros algoritmos. Pero aún así, podría ayudar a acelerar un poco tu entrenamiento. El tiempo de entrenamiento del árbol de decisión es O (n m log (m)), donde n es el número de instancias de entrenamiento, m - número de dimensiones. Y aunque los bosques aleatorios seleccionan aleatoriamente un subconjunto de dimensiones para cada árbol en el que se entrenará, cuanto menor sea la cantidad total de dimensiones que elija, más árboles necesitará entrenar para lograr un buen rendimiento.

ingrese la descripción de la imagen aquí

Ivan Batalov
fuente
1

PCA antes del bosque aleatorio puede ser útil no para reducir la dimensionalidad, sino para darle a los datos una forma en la que el bosque aleatorio pueda tener un mejor rendimiento.

Estoy seguro de que, en general, si transforma sus datos con PCA manteniendo la misma dimensionalidad de los datos originales, tendrá una mejor clasificación con bosque aleatorio

Donbeo
fuente
El tiempo de ejecución de PCA es cuadrático para la cantidad de características F, por lo que no siempre es barato.
smci
por perfomances quise decir perfomances de predicción. No me refería al tiempo computacional
Donbeo
2
¿Podría agregar alguna justificación a sus reclamos? Parece que PCA no siempre mejorará los resultados. Por ejemplo, cuando el límite de decisión es invariable a las rotaciones (por ejemplo, un círculo), la realización de PCA solo cambiará la escala y rotará los datos (y, por lo tanto, el círculo), pero RF aún tendrá que aproximar el límite elíptico con muchas divisiones rectangulares.
Sycorax dice Reinstate Monica