Actualmente estoy investigando la visualización de datos de alta dimensión usando t-SNE. Tengo algunos datos con variables mixtas binarias y continuas y los datos parecen agrupar los datos binarios con demasiada facilidad. Por supuesto, esto se espera para datos escalados (entre 0 y 1): la distancia euclidiana siempre será mayor / menor entre las variables binarias. ¿Cómo se debe tratar con conjuntos de datos binarios / continuos mixtos usando t-SNE? ¿Deberíamos soltar las columnas binarias? ¿Hay algo diferente metric
que podamos usar?
Como ejemplo, considere este código de Python:
x1 = np.random.rand(200)
x2 = np.random.rand(200)
x3 = np.r_[np.ones(100), np.zeros(100)]
X = np.c_[x1, x2, x3]
# plot of the original data
plt.scatter(x1, x2, c=x3)
# … format graph
entonces mis datos en bruto son:
donde el color es el valor de la tercera característica (x3): en 3D los puntos de datos se encuentran en dos planos (x3 = 0 plano y x3 = 1 plano).
Luego realizo t-SNE:
tsne = TSNE() # sci-kit learn implementation
X_transformed = StandardScaler().fit_transform(X)
tsne = TSNE(n_components=2, perplexity=5)
X_embedded = tsne.fit_transform(X_transformed)
con la trama resultante:
y, por supuesto, los datos están agrupados por x3. Mi instinto es que debido a que una métrica de distancia no está bien definida para las características binarias, deberíamos descartarlas antes de realizar cualquier t-SNE, lo cual sería una pena, ya que estas características pueden contener información útil para generar los clústeres.
Respuestas:
Descargo de responsabilidad: solo tengo conocimiento tangencial sobre el tema, pero como nadie más respondió, lo intentaré
La distancia es importante
Cualquier técnica de reducción de dimensionalidad basada en distancias (tSNE, UMAP, MDS, PCoA y posiblemente otras) es tan buena como la métrica de distancia que utiliza. Como @amoeba señala correctamente, no puede haber una solución única para todos, debe tener una métrica de distancia que capture lo que considera importante en los datos, es decir, que las filas que consideraría similares tienen una distancia pequeña y las filas que tendría Considere diferente tener gran distancia.
¿Cómo se elige una buena distancia métrica? Primero, déjame hacer un poco de diversión:
Ordenación
Mucho antes de los días gloriosos del aprendizaje automático moderno, los ecologistas comunitarios (y muy probablemente otros) han intentado hacer buenas tramas para el análisis exploratorio de datos multidimensionales. Llaman a la ordenación del proceso y es una palabra clave útil para buscar en la literatura sobre ecología que se remonta al menos a los años 70 y aún hoy sigue siendo fuerte.
Lo importante es que los ecologistas tienen un conjunto de datos muy diverso y manejan mezclas de características binarias, enteras y de valor real (por ejemplo, presencia / ausencia de especies, número de muestras observadas, pH, temperatura). Han pasado mucho tiempo pensando en distancias y transformaciones para que las ordenaciones funcionen bien. No entiendo muy bien el campo, pero, por ejemplo, la revisión realizada por Legendre y la diversidad Beta de De Cáceres como la varianza de los datos de la comunidad: los coeficientes de disimilitud y la partición muestran una abrumadora cantidad de distancias posibles que puede desear verificar.
Escalamiento multidimensional
La herramienta de acceso para la ordenación es el escalado multidimensional (MDS), especialmente la variante no métrica (NMDS) que le recomiendo que pruebe además de t-SNE. No sé sobre el mundo de Python, pero la implementación de R en
metaMDS
función delvegan
paquete hace muchos trucos para usted (por ejemplo, ejecutar varias ejecuciones hasta que encuentre dos que sean similares).Esto se ha discutido, vea los comentarios: la parte buena de MDS es que también proyecta las características (columnas), por lo que puede ver qué características impulsan la reducción de la dimensionalidad. Esto le ayuda a interpretar sus datos.
Tenga en cuenta que t-SNE ha sido criticado como una herramienta para derivar la comprensión, por ejemplo, esta exploración de sus trampas : he oído que UMAP resuelve algunos de los problemas, pero no tengo experiencia con UMAP. Tampoco dudo que parte de la razón por la cual los ecologistas usan NMDS es cultura e inercia, tal vez UMAP o t-SNE sean realmente mejores. Sinceramente no lo sé.
Extendiendo tu propia distancia
Una palabra de precaución
Todo el tiempo debe tener en cuenta que, dado que tiene tantos botones para sintonizar, puede caer fácilmente en la trampa de la afinación hasta que vea lo que quería ver. Esto es difícil de evitar por completo en el análisis exploratorio, pero debe ser cauteloso.
fuente
metaMDS
tanto muestras como características (ver, por ejemplo, esta viñeta: cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf )vegan
paquete allí, pero MDS / NMDS es un método no lineal y no paramétrico (exactamente como t-SNE), y no hay una forma "interna" de hacer coincidir las características originales con las dimensiones de MDS. Me imagino que están calculando correlaciones entre características originales y dimensiones MDS; Si es así, esto podría hacerse para cualquier incrustación, incluido t-SNE. Sería interesante saber quévegan
hace exactamente .