¿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?
mtry
pará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?Respuestas:
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.
fuente
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.
fuente
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
fuente