PCA quando a dimensionalidade for maior que o número de amostras

21

Eu me deparei com um cenário em que tenho 10 sinais / pessoa para 10 pessoas (então 100 amostras) contendo 14000 pontos de dados (dimensões) que preciso passar para um classificador. Gostaria de reduzir a dimensionalidade desses dados e o PCA parece ser o caminho para fazê-lo. No entanto, só consegui encontrar exemplos de PCA em que o número de amostras é maior que o número de dimensões. Estou usando um aplicativo PCA que localiza os PCs usando SVD. Quando passo o meu conjunto de dados 100x14000, 101 PCs são retornados, portanto a grande maioria das dimensões é obviamente ignorada. O programa indica que os 6 primeiros PCs contêm 90% da variação.

É uma suposição razoável que esses 101 PCs contenham essencialmente toda a variação e as dimensões restantes sejam negligenciáveis?

Um dos artigos que li afirma que, usando um conjunto de dados semelhante (embora de qualidade um pouco menor) que o meu, eles foram capazes de reduzir 4500 dimensões para 80, mantendo 96% da informação original. As ondas de papel sobre os detalhes da técnica de PCA usada, apenas 3100 amostras estavam disponíveis, e eu tenho razões para acreditar em menos amostras do que as usadas para realmente executar a PCA (para remover o viés da fase de classificação).

Estou faltando alguma coisa ou é realmente assim que o PCA é usado com um conjunto de dados de alta dimensionalidade e tamanho de amostra baixo? Qualquer comentário seria muito apreciado.

James
fonte
2
Se você não possui muito mais dados do que dimensões, é difícil encontrar uma direção que remova a maior parte da variabilidade, que é o que o primeiro componente principal deve fazer. Em geral, há a maldição da dimensionalidade. Os dados tendem a se afastar do centro em altas dimensões. Bellman escreveu sobre isso na década de 1960.
Michael R. Chernick
Muito relacionado: stats.stackexchange.com/questions/123318 .
Ameba diz Reinstate Monica

Respostas:

9

Eu olhava o problema de um ângulo um pouco diferente: quão complexo um modelo você pode pagar com apenas 10 indivíduos / 100 amostras?

E essa pergunta eu costumo responder com: muito menos de 100 PCs. Observe que eu trabalho em um tipo diferente de dados (espectros vibracionais), portanto as coisas podem variar um pouco. No meu campo, uma configuração comum usaria 10, 25 ou 50 PCs calculados a partir de O (1000) espectros de O (10) sujeitos.

Aqui está o que eu faria:

  • Veja a variação coberta por esses 100 PCs. Normalmente, acho que apenas alguns componentes realmente contribuem para a variação de nossos dados.

  • Eu prefiro o PLS como pré-tratamento para classificação do PCA, pois ele faz um trabalho muito melhor na classificação de direções com alta variação que não ajuda na classificação (no meu caso, podem ser variações de foco, diferentes espessuras da amostra). ..) Na minha experiência, geralmente recebo classificadores semelhantes com 10 variáveis ​​latentes PLS ou 25 a 50 PCs.

  • As amostras de validação precisam ser processadas com a rotação do PCA calculada apenas a partir do conjunto de treinamento, caso contrário, a validação pode (e em casos extremos como o seu provavelmente terá) um grande viés super-otimista.
    Em outras palavras, se você fizer uma validação sem inicialização ou cruzada, o pré-processamento do PCA ou PLS precisará ser calculado para cada combinação de trem / conjunto de testes separadamente.

cbeleites suporta Monica
fonte
Obrigado pelas postagens muito informativas. Estou trabalhando com dados de sinais biométricos. Para executar uma classificação com desempenho razoável, preciso de menos de 100 PCs, algo entre 25 e 50 seria bom. Eu considerei reduzir minha taxa de amostragem para reduzir o número de amostras que preciso examinar, mas você esperaria que o compromisso da resolução valesse a pena ou terá algum efeito, dado que o treinamento com o mesmo tamanho permanece o mesmo ? Embora eu precise que o PCA seja consistente com outros estudos de campo, definitivamente analisarei o PLS como uma abordagem secundária.
James
1
@ James: Receio que a questão da taxa de amostragem não possa ser respondida sem conhecer seus dados. Essencialmente, é a questão do tamanho efetivo da amostra. Sem saber mais nada, só podemos dizer que está em algum lugar entre n (pessoas) en (amostras). Se todas as 10 amostras de 1 pessoa forem muito mais semelhantes entre si do que as amostras de uma pessoa diferente, mais amostras não adicionarão muita informação ao conjunto de dados. Você pode verificar isso criando um modelo com todas as amostras e um segundo modelo com apenas uma amostra por pessoa e comparando seu desempenho.
Cbeleites suporta Monica
@ James: (parte 2) Se você acha que as amostras de uma pessoa são bastante parecidas entre si, certifique-se de que os conjuntos de validação e treinamento não compartilhem pessoas (ou seja, todas as amostras de uma pessoa estão em treinamento ou em treinamento). Conjunto de teste).
Cbeleites suporta Monica
Obrigado por voltar para mim. Meus dados têm um alto grau de variabilidade, com sobreposição significativa no espaço da amostra entre as classes de usuários. Mas desculpe, em vez de reduzir as amostras, eu quis dizer reduzir a resolução nos 14000 pontos de dados, digamos que apenas todos os pontos 2, 3 ou 4 foram usados ​​no PCA, mas com o mesmo número de amostras de usuários reais. Fiquei curioso para saber se seria de esperar que essa queda na resolução tivesse um impacto positivo, negativo ou nenhum impacto nos resultados do PCA, pois minhas dimensões já são muito maiores que minhas amostras.
James
1
th
9

npnpnn1

ttnphns
fonte
2
2
@ ttnphns: Você conhece uma citação que afirma o que você diz aqui?
Patrick
4

Chegando a isso de um ângulo diferente:

kk

k

Stumpy Joe Pete
fonte