PCA em dados de texto de alta dimensão antes da classificação aleatória da floresta?


13

Faz sentido fazer o PCA antes de executar uma Classificação Florestal Aleatória?

Estou lidando com dados de texto de alta dimensão e quero reduzir os recursos para evitar a maldição da dimensionalidade, mas as florestas aleatórias já não têm algum tipo de redução de dimensão?


7
O algoritmo de RF realmente não sofre com um grande número de preditores, uma vez que são necessários apenas um subconjunto aleatório deles (o chamado mtryparâ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?
chl

Quantas características / dimensões, F? > 1K? > 10K? Os recursos são discretos ou contínuos, por exemplo, termo-frequência, tfidf, métricas de similaridade, vetores de palavras ou o quê? PCA tempo de execução é quadrática para F.
SMCI


Respostas:


12

Leo Brieman escreveu que "a dimensionalidade pode ser uma bênção". Em geral, florestas aleatórias podem ser executadas em grandes conjuntos de dados sem problemas. Qual é o tamanho dos seus dados? Diferentes campos lidam com as coisas de maneiras diferentes, dependendo do conhecimento do assunto. Por exemplo, nos estudos de expressão gênica, os genes geralmente são descartados com base na baixa variação (sem espiar o resultado) em um processo às vezes chamado de filtragem não específica. Isso pode ajudar com o tempo de execução em florestas aleatórias. Mas isso não é obrigatório.

Seguindo o exemplo da expressão gênica, algumas vezes os analistas usam pontuações PCA para representar medições de expressão gênica. A idéia é substituir perfis semelhantes por uma pontuação que seja potencialmente menos confusa. Florestas aleatórias podem ser executadas tanto nas variáveis ​​originais quanto nas pontuações do PCA (um substituto para as variáveis). Alguns relataram melhores resultados com essa abordagem, mas não há boas comparações com o meu conhecimento.

Em suma, não há necessidade de executar o PCA antes de executar o RF. Mas você pode. A interpretação pode mudar dependendo dos seus objetivos. Se tudo o que você quer fazer é prever, a interpretação pode ser menos importante.


Obrigado pela resposta. A velocidade é um problema, mais porque tenho vários milhares de rótulos possíveis em um problema de vários rótulos. O aplicativo está classificando um corpus de dados de texto retirados da descrição de certos eventos do twitter e dos analistas. Estou usando a ponderação tf-idf e o modelo de saco de palavras.
Maus

8

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.

insira a descrição da imagem aqui


1

O PCA antes da floresta aleatória pode ser útil não para redução da dimensionalidade, mas para fornecer aos dados uma forma em que a floresta aleatória pode ter um desempenho melhor.

Tenho certeza absoluta de que, em geral, se você transformar seus dados com o PCA mantendo a mesma dimensionalidade dos dados originais, terá uma melhor classificação com floresta aleatória


O tempo de execução do PCA é quadrático em relação ao número de recursos F, portanto, nem sempre é barato.
smci

por perfomances eu quis dizer perfomances de previsão. Eu não estava me referindo ao tempo computacional
Donbeo 17/05

2
Você poderia adicionar alguma justificativa às suas reivindicações? Parece que o PCA nem sempre melhora os resultados. Por exemplo, quando o limite de decisão é invariável às rotações (por exemplo, um círculo), a execução do PCA apenas redimensiona e gira os dados (e, portanto, o círculo), mas a RF ainda precisará aproximar o limite elíptico com muitas divisões retangulares.
Sycorax diz Reinstate Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.