Visualizando Dados de Alta Dimensão

11

Eu tenho amostras de duas classes que são vetores no espaço de alta dimensão e quero plotá-las em 2D ou 3D.

Conheço as técnicas de redução de dimensionalidade, mas preciso de uma ferramenta realmente simples e fácil de usar (em matlab, python ou um .exe pré-construído).

Também me pergunto se a representação em 2D será "significativa"? (Por exemplo, como duas classes se cruzam ou podem ser separáveis).

Mrgloom
fonte

Respostas:

8

Você poderia tentar tSNE . É bastante simples de usar. Funciona com o Octave, além do Matlab e Python. Dê uma olhada no guia para obter um primeiro enredo em um minuto.

jpmuc
fonte
10

Uma ferramenta pré- criada para visualizar dados de alta dimensão é o ggobi . Permite colorir os pontos para representar grupos e, em seguida, tem algumas opções para reduzir as dimensões altas para uma representação bidimensional. Uma ferramenta particularmente interessante é o grand tour 2D que basicamente gira a nuvem de dados em várias dimensões e mostra uma animação da projeção 2D da rotação. Você pode diminuir a velocidade ou pausar a rotação quando vir padrões interessantes.

Greg Snow
fonte
Uma ferramenta muito boa de fato, que também trabalha com R.
Yves
2

A abordagem clássica seria usar o PCA ( Principal Component Analysis ) para realizar uma redução linear da dimensionalidade. Essencialmente, isso projeta seus dados em um espaço de menor dimensão (no caso 2D, isso é simplesmente um plano), preservando o máximo possível da variação dos dados.

A execução do PCA geralmente envolve a execução de um único comando na maioria das linguagens de programação, portanto, é muito simples.

Lembre-se de que é possível que seus dados não possam ser representados com precisão em 2 ou 3 dimensões. O PCA fornecerá automaticamente uma estimativa quantitativa disso: informará qual porcentagem da variação é capturada pela representação dimensional dimensional resultante. Isso lhe dará uma sensação da quantidade de informações que você perde ao observar essa visualização simplificada.

Bit a bit
fonte
1

A probabilidade de associação à classe é um ótimo método de redução de dimensão. A probabilidade de participação em A vs. B varia de 0 a 1. Você pode fazer um gráfico de vs para todas as suas amostras. p ( B | x i )p(A|xi)p(B|xi)

Considere o exemplo a seguir para opções de exibição. http://www.mathworks.com/help/stats/gmdistribution.cluster.html

EngrStudent
fonte
1

Além da sugestão do @ juampa, você também deve tentar o NeRV (Neighbour Retrieval Visualizer), que " é uma abordagem baseada em recuperação de informações baseada em princípios para a redução não linear da dimensionalidade ", e o SNE / t-SNE pode ser visto como casos especiais de NeRV. O ponto principal do NeRV é minimizar a troca do recall e a precisão entre o espaço original e a exibição. O NeRV é fornecido como uma ferramenta de linha de comando escrita em C ++.

Uma imagem de demonstração em seu site: o resultado da esquerda enfatiza mais o recall (menos "erros"), enquanto o da direita enfatiza mais a precisão (menos "falsos vizinhos").

insira a descrição da imagem aqui

ziyuang
fonte
1

Se você não se opõe ao software comercial, pode experimentar o software VisuMap, que implementa dezenas de algoritmos de mapeamento linear e não linear para dados de alta dimensão, incluindo métodos como PCA, LDA, SMACOF, TSNE, CCA, Sammon, Kohonen Map etc.

James LI
fonte