O vizinho mais próximo faz algum sentido com o t-SNE?


10

As respostas aqui afirmaram que as dimensões no t-SNE não têm sentido e que as distâncias entre os pontos não são uma medida de semelhança .

No entanto, podemos dizer algo sobre um ponto com base nos vizinhos mais próximos no espaço t-SNE? Esta resposta para por que os pontos exatamente iguais não são agrupados sugere que a razão de distâncias entre pontos é semelhante entre representações dimensionais mais baixas e mais altas.

Por exemplo, a imagem abaixo mostra t-SNE em um dos meus conjuntos de dados (15 classes).

Posso dizer que cro 479(canto superior direito) é um erro externo? É fra 1353(canto inferior esquerdo) é mais parecido com cir 375o das outras imagens da fraclasse, etc? Ou poderiam ser apenas artefatos, por exemplo, fra 1353ficaram presos do outro lado de alguns grupos e não conseguiram abrir caminho para a outra fraclasse?

insira a descrição da imagem aqui



Respostas:


8

Não, não é necessário que seja esse o caso, no entanto, esse é, de maneira complicada, o objetivo do T-SNE.

Antes de entrar na questão da resposta, vamos dar uma olhada em algumas definições básicas, matematicamente e intuitivamente.

RdX1 1,...,XnRdxRd||X1 1-x||...||Xn-x||Rd

dyxddd+k. Portanto, temos nossa intuição de que a distância é mantida em diferentes dimensões, ou pelo menos, é para isso que almejamos. Vamos tentar justificá-lo com um pouco de matemática.

pj|i=exp(||xjxi||22σ2)kiexp(||xjxi||22σ2)Rk

Agora, finalmente, um exemplo de codificação puro que também demonstra esse conceito.

from sklearn.manifold import TSNE
from sklearn.neighbors import KNeighborsClassifier
X = [[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]]
y = [0,1,2,3,4,5,6,7,8,9]
neighs = KNeighborsClassifier(n_neighbors=3)
neighs.fit(X, y)
X_embedded = TSNE(n_components=1).fit_transform(X)
neighs_tsne = KNeighborsClassifier(n_neighbors=3)
neighs_tsne.fit(X_embedded, y)
print(neighs.predict([[1.1]]))
>>>[0]
print(neighs_tsne.predict([[1.1]]))
>>>[0]

Embora este seja um exemplo muito ingênuo e não reflita a complexidade, ele funciona por experimento para alguns exemplos simples.

EDIT: Além disso, adicionando alguns pontos com relação à pergunta em si, por isso não é necessário que seja esse o caso, pode ser, no entanto, racionalizá-la através da matemática provaria que você não tem um resultado concreto (sem sim ou não definitivo) .

Espero que isso tenha esclarecido algumas de suas preocupações com o TSNE.


Obrigado pela boa resposta. Resumindo: Pontos com alta similaridade têm alta probabilidade de permanecerem próximos. Estou supondo que o parâmetro perplexity controla quantos pontos são usados ​​para o cálculo da probabilidade, para que os clusters se tornem disjuntos se a perplexidade for baixa. Você pode comentar sobre o exagero precoce? Além disso, suponho que a probabilidade de os pontos serem discrepantes ou classificados incorretamente (tendo todos os NN em outra classe) usando o espaço TSNE, aumentaria se eles fossem consistentes após vários TSNE com inicialização aleatória?
geometrikal

Sim, a perplexidade é um dos principais fatores que afeta a proximidade entre os pontos. Exagero precoce, intuitivamente, é o quão estreitos os clusters no espaço original e quanto espaço haverá entre eles no espaço incorporado (portanto, é uma mistura de perplexidade e exagero precoce que afeta as distâncias entre os pontos. é sim, isso se deve à exponenciação da norma, que pode causar problemas no espaço de incorporação, para que haja uma chance de erros de classificação.
PSub
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.