t-SNE: Por que valores de dados iguais não são visualmente próximos?

9

Eu tenho 200 pontos de dados que têm os mesmos valores em todos os recursos.

Após a redução da dimensão t-SNE, eles não parecem mais tão iguais, assim: insira a descrição da imagem aqui

Por que eles não estão no mesmo ponto na visualização e até parecem estar distribuídos em dois grupos diferentes?

ScientiaEtVeritas
fonte
4
Certifique-se de ler distill.pub/2016/misread-tsne
Emre
Isso pode ser causado pela precisão (double / float) que você está usando?
El Burro
A maioria dos valores são números inteiros. E é muito escasso, cerca de 500 recursos com a maioria zeros. Não sei se isso pode ser causado por precisão. Mas a distância entre esses clusters e entre esses pontos de dados é relativamente grande.
ScientiaEtVeritas
Quais clusters? Eu pensei que todos são iguais - ou você quer dizer o enredo?
El Burro
Sim, quero dizer os agrupamentos na trama.
ScientiaEtVeritas

Respostas:

3

Você está certo de que os mesmos valores no T-SNE podem ser distribuídos em diferentes pontos; a razão pela qual isso acontece é clara se você der uma olhada no algoritmo que o T-SNE percorre.

Para resolver sua primeira preocupação sobre os pontos realmente não serem os mesmos depois que o algoritmo foi aplicado ao conjunto de dados. Vou deixar você com um exercício para verificar por si mesmo, considere uma matriz simples e x 2 = [ 0 , 1 ] e execute o algoritmo real contra ele e verifique por si mesmo que os pontos resultantes não são realmente idêntico. Você pode fazer referência cruzada da sua resposta contra isso.x1=[0,1]x2=[0,1]

import numpy as np from sklearn.manifold import TSNE m = TSNE(n_components=2, random_state=0) m.fit_transform(np.array([[0,1],[0,1]]))

Você também observaria que alterar as random_staterealmente modifica as coordenadas de saída do modelo. Não existe uma correlação real entre as coordenadas reais e seus resultados. Desde o primeiro passo do TSNE calcula a probabilidade condicional.

xixjpj|i=exp(||xjxi||22σ2)kiexp(||xjxi||22σ2)pij=pi|j+pj|i2Npijxixj

R2

Portanto, a verdade é que, em vez de olhar para os dois grupos, observe as distâncias entre eles, porque isso transmite mais informações do que as próprias coordenadas.

Espero que isto responda a sua pergunta :)

PSub
fonte