¿El vecino más cercano tiene algún sentido con t-SNE?

10

Las respuestas aquí han declarado que las dimensiones en t-SNE no tienen sentido , y que las distancias entre puntos no son una medida de similitud .

Sin embargo, ¿podemos decir algo sobre un punto basado en sus vecinos más cercanos en el espacio t-SNE? Esta respuesta a por qué los puntos que son exactamente iguales no están agrupados sugiere que la relación de distancias entre puntos es similar entre las representaciones dimensionales más bajas y más altas.

Por ejemplo, la imagen a continuación muestra t-SNE en uno de mis conjuntos de datos (15 clases).

¿Puedo decir que cro 479(arriba a la derecha) es un valor atípico? ¿Es fra 1353(abajo a la izquierda) más similar a cir 375las otras imágenes de la fraclase, etc.? ¿O podrían ser simplemente artefactos, por ejemplo, quedar fra 1353atrapados en el otro lado de unos pocos grupos y no poder abrirse paso hacia la otra fraclase?

ingrese la descripción de la imagen aquí

Geometrikal
fuente

Respuestas:

8

No, no es necesario que este sea el caso, sin embargo, este es, de manera enrevesada, el objetivo de T-SNE.

Antes de entrar en el meollo de la respuesta, echemos un vistazo a algunas definiciones básicas, tanto matemática como intuitivamente.

RdX1,...,XnRdxRd||X1x||...||Xnx||Rd

dyxddd+k. Entonces, tenemos nuestra intuición, que es que la distancia se mantiene a través de diferentes dimensiones, o al menos, eso es lo que buscamos. Tratemos de justificarlo con algunas matemáticas.

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

Ahora, finalmente, un claro ejemplo de codificación que demuestra este concepto también.

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]

Aunque este es un ejemplo muy ingenuo y no refleja la complejidad, funciona mediante experimentos para algunos ejemplos simples.

EDITAR: Además, agregar algunos puntos con respecto a la pregunta en sí, por lo que no es necesario que este sea el caso, podría ser, sin embargo, racionalizarlo a través de las matemáticas demostraría que no tiene un resultado concreto (sin sí o no definitivo) .

Espero que esto haya aclarado algunas de sus preocupaciones con TSNE.

PSub
fuente
Gracias por la buena respuesta. Para resumir: los puntos que tienen una gran similitud tienen una alta probabilidad de permanecer cerca. Supongo que el parámetro de perplejidad controla cuántos puntos se usan para el cálculo de probabilidad, por lo que los grupos pueden ser disjuntos si la perplejidad es baja. ¿Puedes comentar sobre la exageración temprana? Además, supongo que la probabilidad de que los puntos sean atípicos o mal clasificados (con todos sus NN en otra clase) usando el espacio TSNE, ¿aumentaría si son consistentes después de TSNE múltiple con inicialización aleatoria?
geometrikal
Sí, la perplejidad es uno de los principales factores que afecta la distancia entre los puntos. La exageración temprana, intuitivamente, es cuán apretados se agrupan en el espacio original y cuánto espacio habrá entre ellos en el espacio incrustado (por lo que es una mezcla de perplejidad y exageración temprana que afecta las distancias entre puntos. Con respecto a su última pregunta, la respuesta es sí, esto es debido a la potenciación de la norma, lo que podría causar problemas en el espacio de la incrustación, por lo que existe la posibilidad de errores de clasificación.
PSUB