Gostaria de acrescentar meus dois centavos a isso, pois achei que as respostas existentes estavam incompletas.
A execução do PCA pode ser especialmente útil antes de treinar uma floresta aleatória (ou LightGBM, ou qualquer outro método baseado em árvore de decisão) por uma razão específica que ilustrei na foto abaixo.
Basicamente, ele pode facilitar muito o processo de encontrar o limite de decisão perfeito, alinhando seu conjunto de treinamento ao longo das direções com maior variação.
As árvores de decisão são sensíveis à rotação dos dados, pois o limite de decisão que eles criam é sempre vertical / horizontal (ou seja, perpendicular a um dos eixos). Portanto, se seus dados se parecerem com a foto da esquerda, será necessária uma árvore muito maior para separar esses dois clusters (nesse caso, é uma árvore de 8 camadas). Mas se você alinhar seus dados ao longo de seus principais componentes (como na foto à direita), poderá obter uma separação perfeita com apenas uma camada!
Obviamente, nem todos os conjuntos de dados são distribuídos assim, portanto, o PCA nem sempre pode ajudar, mas ainda é útil tentar e verificar se existe. E apenas um lembrete, não esqueça de normalizar seu conjunto de dados para a variação da unidade antes de executar o PCA!
PS: Quanto à redução de dimensionalidade, eu concordo com o resto das pessoas, pois geralmente não é um problema tão grande para florestas aleatórias quanto para outros algoritmos. Ainda assim, isso pode ajudar a acelerar um pouco o seu treinamento. O tempo de treinamento da árvore de decisão é O (n m log (m)), onde n é o número de instâncias de treinamento, m - número de dimensões. E embora as florestas aleatórias selecionem aleatoriamente um subconjunto de dimensões para cada árvore a ser treinada, quanto menor a fração do número total de dimensões que você escolher, mais árvores você precisará treinar para obter um bom desempenho.
mtry
parâmetro) para construir cada árvore. Há também uma técnica de eliminação de recurso recursivo construída sobre o algoritmo de RF (consulte o pacote varSelRF R e as referências nele). No entanto, é certamente possível adicionar um esquema inicial de redução de dados, embora deva fazer parte do processo de validação cruzada. Portanto, a pergunta é: você deseja inserir uma combinação linear de seus recursos na RF?