Existem casos em que o PCA é mais adequado que o t-SNE?


39

Quero ver como 7 medidas de comportamento de correção de texto (tempo gasto corrigindo o texto, número de pressionamentos de tecla etc.) se relacionam. As medidas estão correlacionadas. Executei um PCA para ver como as medidas projetavam no PC1 e PC2, o que evitava a sobreposição de executar testes de correlação bidirecional separados entre as medidas.

Perguntaram-me por que não usar o t-SNE, já que o relacionamento entre algumas das medidas pode ser não linear.

Eu posso ver como permitir a não linearidade melhoraria isso, mas me pergunto se existe algum bom motivo para usar o PCA nesse caso, e não o t-SNE? Não estou interessado em agrupar os textos de acordo com a relação deles com as medidas, mas com o relacionamento entre as próprias medidas.

(Eu acho que o EFA também poderia ter uma abordagem melhor / outra, mas essa é uma discussão diferente.) Comparado a outros métodos, existem poucas postagens aqui sobre o t-SNE, então a pergunta parece valer a pena.


3
O t-SNE não se adapta bem ao tamanho do conjunto de dados, enquanto o PCA. Isso é fruto da experiência na execução de ambos em grandes conjuntos de dados usando a implementação do scikit-learn.
Mai

@Mai presumivelmente isso se aplica principalmente a grandes conjuntos de dados? Meu conjunto de dados está no lado pequeno (algumas centenas de pontos de dados).
user3744206

Respostas:


65

-SNE é um ótimo aprendizado de máquina, mas é possível encontrar muitos motivos para usar o PCA em vez dele. Do topo da minha cabeça, vou mencionar cinco. Como a maioria das outras metodologias computacionais em uso, o t- SNE não é umabala de pratae existem algumas razões para torná-lo uma opção abaixo do ideal em alguns casos. Deixe-me mencionar alguns pontos em breve:tt

  1. Estocástico da solução final . PCA é determinístico; -SNE não é. A pessoa obtém uma boa visualização e, em seguida, seu colega obtém outra visualização e, em seguida, eles ficam artísticos, o que parece melhor e se uma diferença de 0,03 % na divergência K L ( P | | Q ) é significativa ... No PCA, a resposta correta para a questão colocada é garantida. O t -SNE pode ter vários mínimos que podem levar a diferentes soluções. Isso exige várias execuções e levanta questões sobre a reprodutibilidade dos resultados.t0,03%Keu(P||Q)t

  2. Interpretabilidade do mapeamento . Isso está relacionado ao ponto acima, mas vamos supor que uma equipe tenha concordado em uma semente / execução aleatória específica. Agora, a pergunta passa a ser o que isso mostra ... SNE tenta mapear apenas local / vizinhos corretamente, para que nossas percepções dessa incorporação sejam muito cautelosas; as tendências globais não são representadas com precisão (e isso pode ser potencialmente uma grande coisa para visualização). Por outro lado, o PCA é apenas uma rotação diagonal de nossa matriz de covariância inicial e os vetores próprios representam um novo sistema axial no espaço medido por nossos dados originais. Podemos explicar diretamente o que um PCA em particular faz.t

  3. Aplicação a dados novos / não vistos . -SNE não está aprendendo uma função do espaço original para o novo dimensional (inferior) e isso é um problema. Sobre esse assunto, t- SNE é um algoritmo de aprendizado não paramétrico, portanto, a aproximação com o algoritmo paramétrico é um problema incorreto. A incorporação é aprendida movendo diretamente os dados pelo espaço de baixa dimensão. Isso significa que não é possível obter um vetor próprio ou uma construção semelhante para usar em novos dados. Por outro lado, usando o PCA, os vetores próprios oferecem um novo sistema de eixos que pode ser usado diretamente para projetar novos dados. [Aparentemente pode-se tentar treinar um-rede profunda de aprender o ttttMapeamento de PND (você pode ouvir o Dr. van der Maaten aos ~ 46 'deste vídeo sugerindo algo nesse sentido), mas claramente não existe uma solução fácil.]

  4. Dados incompletos . Nativamente -SNE não lida com dados incompletos. Para ser justo, o PCA também não lida com eles, mas inúmeras extensões do PCA para dados incompletos (por exemplo, PCA probabilístico ) estão disponíveis e são rotinas de modelagem quase padrão . Atualmente, o t -SNE não pode manipular dados incompletos (além de obviamente treinar um PCA probabilístico primeiro e passar as pontuações do PC para o t -SNE como entradas).ttt

  5. O não é (também) caso pequeno. k SNE resolve um problema conhecido como problema de aglomeração, efetivamente que pontos um tanto semelhantes em dimensões mais altas desmoronam umas sobre as outras em dimensões mais baixas (mais aqui ). Agora, à medida que você aumenta as dimensões usadas, o problema de aglomeração fica menos grave, isto é. o problema que você está tentando resolver com o uso do t- SNE é atenuado. Você pode solucionar esse problema, mas não é trivial. Portanto, se você precisar de um vetor dimensional k, já que o conjunto reduzido ek não é muito pequeno, a otimização da solução de produção está em questão. PCA sobre o outro, oferecer sempre a kttkkkmelhor combinação linear em termos de variância explicada. (Obrigado a @amoeba por perceber que fiz uma bagunça ao tentar esboçar esse ponto.)

Não mencionei questões sobre requisitos computacionais (por exemplo, velocidade ou tamanho da memória) nem questões sobre a seleção de hiperparâmetros relevantes (por exemplo, perplexidade). Penso que estas são questões internas da metodologia SNE e são irrelevantes quando comparadas com outro algoritmo.t

ttt


tk=2,3,4

@amoeba: Obrigado por mencionar. Eu atualizei minha resposta de acordo.
usεr11852 diz Reinstate Monic

3
Com relação ao seu ponto 3: aqui está o artigo de 2009 sobre o parâmetro paramétrico t-sne lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf . Parece que realmente não decolou (tem 25 vezes menos citações do que o artigo original t-sne), mas, na verdade, é bastante fácil de implementar com as tecnologias / bibliotecas atuais. Eu o tenho instalado e funcionando em Keras; Estive trabalhando na investigação (e possivelmente na extensão) das últimas semanas.
Ameba diz Reinstate Monica

Legal! (+1) Se você receber uma pré-impressão do arXiv flutuante, informe-me (aqui ou 10 vezes), ficarei muito curioso sobre os resultados. Sim, eu já vi esse artigo no momento em que escrevi essa resposta (na verdade, eu diria que é um artigo bem conhecido), mas como você disse, ele não parecia ser aceito. Além disso, o ponto 3 permanece perfeitamente válido: você precisa construir um DNN para obter algo que o PCA oferece através de um único produto cruzado de matriz.
usεr11852 diz Reinstate Monic

12

https://stats.stackexchange.com/a/249520/7828

é uma excelente resposta geral.

Gostaria de me concentrar um pouco mais no seu problema. Você aparentemente quer ver como suas amostras se relacionam com relação às suas 7 variáveis ​​de entrada. Isso é algo que o t-SNE não faz. A idéia do SNE e do t-SNE é colocar vizinhos próximos um do outro, (quase) ignorando completamente a estrutura global.

Isso é excelente para visualização, porque itens semelhantes podem ser plotados um ao lado do outro (e não um por cima do outro, por exemplo, aglomeração).

Isso não é bom para análises posteriores. A estrutura global é perdida, alguns objetos podem ter sido impedidos de se mover para seus vizinhos e a separação entre diferentes grupos não é preservada quantitativamente. É por isso que, por exemplo, agrupar-se na projeção geralmente não funciona muito bem.

PCA é exatamente o oposto. Ele tenta preservar as propriedades globais (vetores próprios com alta variação) enquanto pode perder desvios de baixa variação entre vizinhos.


Ah, isso é exatamente o que eu assumi. Não estou interessado em como os pontos de dados estão localizados no espaço, mas em como as próprias medidas estão relacionadas entre si. Essas duas coisas estão conectadas, é claro, mas em termos de visualização e interpretação desses relacionamentos, suspeito que apenas o PCA faça o que quero. Por exemplo, existem relações positivas e negativas entre as medidas e o que realmente me interessa é o valor absoluto das associações, que novamente acho mais fácil de interpretar / ver se uso o PCA.
precisa saber é o seguinte

1
Para esse caso de uso, talvez seja melhor observar a própria matriz de correlação, ou seja, fazer comparações apenas em pares. Depois, você também pode lidar com a não linearidade, por exemplo, usando a correlação de spearman.
Anony-Mousse

Podemos usar o T-SNE para problemas de cluster? pelo que entendi, podemos projetar um novo ponto de chegada e tentar agrupar nas dimensões mais baixas? É possível ?
Catbuilts

Não. Como o tSNE não é linear, você não pode computá-lo apenas para novos dados (veja acima). E houve uma discussão minuciosa de que também pode ser enganoso agrupar os dados projetados.
Anony-Mousse

1

Para dar um ângulo aplicado, o PCA e o t-SNE não são mutuamente exclusivos. Em alguns campos da biologia, estamos lidando com dados altamente dimensionais (por exemplo, o scRNA-seq é milhares de dimensões) onde o t-SNE simplesmente não é dimensionado. Portanto, usamos o PCA primeiro para reduzir a dimensionalidade dos dados e, pegando os principais componentes principais, calculamos o gráfico de vizinhança e, em seguida, incorporamos o gráfico em duas dimensões usando t-SNE (ou uma abordagem de redução de dimensionalidade não linear semelhante) como UMAP) para visualizar os dados.

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.