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.
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?