Utilizando Análise de Componentes Principais (PCA) para Seleção de Recursos

54

Eu sou novo na seleção de recursos e estava pensando em como você usaria o PCA para executar a seleção de recursos. O PCA calcula uma pontuação relativa para cada variável de entrada que você pode usar para filtrar variáveis ​​de entrada não informativas? Basicamente, desejo poder solicitar os recursos originais nos dados por variação ou quantidade de informações contidas.

Michael
fonte

Respostas:

75

A idéia básica ao usar o PCA como uma ferramenta para a seleção de recursos é selecionar variáveis ​​de acordo com a magnitude (do maior para o menor em valores absolutos) de seus coeficientes ( cargas ). Você deve se lembrar que o PCA procura substituir variáveis (mais ou menos correlacionadas) por combinações lineares não correlacionadas (projeções) das variáveis ​​originais. Vamos ignorar como escolher um ideal para o problema em questão. Esses componentes principais são classificados por importância por meio da variação explicada e cada variável contribui com graus variados para cada componente. Usar os maiores critérios de variação seria semelhante à extração de recursosk < p k k j < p j p jpk<pkk , em que o componente principal é usado como novos recursos, em vez das variáveis ​​originais. No entanto, podemos decidir manter apenas o primeiro componente e selecionar as variáveis que possuem o maior coeficiente absoluto; o número pode ser baseado na proporção do número de variáveis ​​(por exemplo, mantenha apenas os 10% superiores das variáveis ) ou em um ponto de corte fixo (por exemplo, considerando um limite nos coeficientes normalizados). Essa abordagem tem alguma semelhança com o operador Lasso na regressão penalizada (ou regressão PLS ). Porém, nem o valor de nem o número de componentes a serem retidos são escolhas óbvias.j<pjpj

O problema com o uso de PCA é que (1) medições de todas as variáveis ​​originais são usadas na projeção para o espaço dimensional inferior, (2) apenas relações lineares são consideradas e (3) métodos baseados em PCA ou SVD, também como métodos de triagem univariados (teste t, correlação etc.), não levam em consideração a natureza multivariada potencial da estrutura de dados (por exemplo, interação de ordem superior entre variáveis).

Sobre o ponto 1, alguns métodos de triagem mais elaborados foram propostos, por exemplo , análise de características principais ou método passo a passo, como o usado para " raspar genes " nos estudos de expressão gênica. Além disso, o PCA esparso pode ser usado para executar a redução de dimensão e a seleção de variáveis ​​com base nas cargas variáveis ​​resultantes. Sobre o ponto 2, é possível usar o PCA do kernel (usando o truque do kernel ) se for necessário incorporar relacionamentos não lineares em um espaço dimensional inferior. As árvores de decisão , ou melhor, o algoritmo de floresta aleatória , provavelmente são mais capazes de resolver o ponto 3. O último permite derivar medidas baseadas em Gini ou permutação de importância variável .

Um último ponto: se você pretende executar a seleção de características antes de aplicar um modelo de classificação ou regressão, certifique-se de validar cruzadamente todo o processo (consulte o §7.10.2 dos Elementos de aprendizagem estatística , ou Ambroise e McLachlan, 2002 ).


Como você parece estar interessado na solução R, eu recomendaria dar uma olhada no pacote de intercalação , que inclui várias funções úteis para pré-processamento de dados e seleção de variáveis ​​em um contexto de classificação ou regressão.

chl
fonte
11
Há muitas informações boas aqui, mas estou surpreso que não haja menção ao EFA. Penso que a análise fatorial é apropriada para caracterizar a redução de seleção / dimensionalidade, e o PCA como realmente adequado apenas para re-representar seus dados, de modo que as variáveis ​​não sejam correlacionadas. Eu acho que você discorda?
gung - Restabelece Monica
3
Estou relutante em recomendar o EFA sem saber com que tipo de dados estamos lidando: a introdução de um modelo para os erros (o que o PCA não faz) certamente tem sua vantagem ao lidar com variáveis ​​latentes direcionadas ou, geralmente, ao tentar descobrir latentes estruturas, mas o PCA (com suas ressalvas) é usado principalmente para realizar redução de dimensão ou seleção de recurso em grande dimensão, AFAICT. No caso , o EFA seria inapropriado enquanto existirem métodos sofisticados para seleção de variáveis. Como não conheço o caso do OP, não posso dizer mais nada, mas essa é uma boa observação. np
28412 chl
É claramente uma questão difícil e sutil. Como você sabe muito mais sobre isso do que eu, fiquei interessado em sua opinião. +1, entre.
gung - Restabelece Monica
2
Dois comentários Primeiro, você menciona o kPCA como uma solução possível para o seu ponto 2. Mas como o kPCA pode ser usado para a seleção de recursos, quando os autovetores / cargas não estão disponíveis lá? Há uma pergunta extra sobre isso, e eu argumentei lá que não pode . Segundo, seu segundo antes do último parágrafo pode melhorar muito se você mencionar o LASSO, como uma maneira preferida (?) De fazer a seleção de recursos na regressão. Esse tópico permanece muito popular e muitas perguntas são encerradas como duplicatas; portanto, é importante que sua resposta seja a mais excelente possível!
ameba diz Restabelecer Monica
@chl, obrigado por sua resposta informativa. Você fala sobre "decidir manter apenas o primeiro componente". Por que apenas o primeiro componente? Com um componente, é fácil classificar recursos / variáveis. Como você faria isso com vários componentes, digamos 3? Como você classifica variáveis ​​entre componentes? Suponho que você possa passar por cada componente principal e escolher o recurso com o maior carregamento desse componente principal, do conjunto de recursos que ainda não foram selecionados. Estes novamente podem ser selecionados por um número (j) ou por um limiar de coeficientes normalizados. Você concorda?
Sother
6

Dado um conjunto de recursos N, uma análise PCA produzirá (1) a combinação linear dos recursos com maior variação (primeiro componente PCA), (2) a combinação linear com a maior variação no subespaço ortogonal ao primeiro componente PCA, etc. (sob a restrição de que os coeficientes da combinação formam um vetor com norma unitária) Se a combinação linear com variação máxima é um recurso "bom" depende realmente do que você está tentando prever. Por esse motivo, eu diria que ser um componente do PCA e ser um "bom" recurso são (em geral) duas noções não relacionadas.

mepuzza
fonte
(-1) Não vejo como isso responde à pergunta original.
ameba diz Restabelecer Monica
-1

Você não pode solicitar recursos de acordo com sua variação, pois a variação usada no PCA é basicamente uma entidade multidimensional. Você só pode solicitar recursos pela projeção da variação na direção que você escolher (que normalmente é o primeiro componente principal). Portanto, em outras palavras, se um recurso tem mais variação do que o outro depende de como você escolhe a direção da projeção.

James LI
fonte
2
Eu não entendo: cada recurso original tem uma variação e, portanto, é possível "ordenar os recursos de acordo com sua variação". Além disso, não entendo como alguém pode ordená-los "pela projeção da variação na determinada direção que você escolher". O que você quer dizer com isso?
Ameba diz Reinstate Monica
Você pode realmente usar a variação para solicitar recursos, mas isso tem algo a ver com o PCA, que trata todos os recursos juntos.
James LI
Sobre a projeção: Se você possui n recursos, um vetor de direção é apenas um vetor de unidade no espaço n-dimensional; a projeção de seus vetores de instância m é o produto em escala do vetor de instância com esse vetor unitário, o que resulta em um vetor dimensional. E a variação deste vetor m-dimensional é aquela "projeção" da variação do conjunto de dados na direção escolhida.
James LI
11
-1. Acho que cada uma das três frases da sua resposta está errada ou não é tão clara que é enganosa. Concordo com tudo o que você escreveu nos comentários, mas não tenho idéia de como sua resposta pode ser interpretada como significando isso. "Você não pode solicitar recursos de acordo com a variação" - ?? "Você só pode solicitar recursos pela projeção da variação para determinada direção" - ?? "se um recurso tem mais variação ... depende ..." - ?? Tudo isso está errado.
Ameba diz Reinstate Monica
2
Eu não sabia que essa pergunta foi feita há muito tempo; e eu concordo com a maioria dessas respostas. Meu argumento é: o PCA não é apropriado para a seleção de recursos. Apenas ninguém aqui quer dizer isso diretamente.
James LI