t-SNE con variables mixtas continuas y binarias

10

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 metricque 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:

raw_data

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:

tsne_data

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.

FChm
fuente
1
Nota: Todavía estoy interesado en escuchar comentarios sobre esto y también sobre la aplicabilidad de UMAP a este espacio.
FChm
Gracias por la recompensa, nuevamente interesado, pero no he pasado mucho tiempo buscando que esto sea justo. Es posible que tenga algo de tiempo hoy para hacer una investigación inicial y agregaré actualizaciones si corresponde.
FChm
2
Encontré este problema en la práctica. Creo que no es específico de tSNE, pero afectará igualmente a cualquier algoritmo de aprendizaje no supervisado basado en la distancia (incluido el agrupamiento). También creo que la solución adecuada dependerá en gran medida de lo que representen las características binarias, y de algún juicio experto sobre su importancia. Así que estoy buscando una respuesta que discuta varias situaciones posibles. Estoy seguro de que no hay una solución única para todos aquí.
ameba

Respuestas:

8

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 metaMDSfunción del veganpaquete 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

[0 0,1] independientemente de la cantidad de características, mientras que la magnitud de la distancia euclidiana refleja la cantidad de características.

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.

Martin Modrák
fuente
1
+1. Muchos puntos buenos aquí, y me gustan las referencias a la literatura más antigua sobre "ordenación". Una cosa que me llamó la atención: "Lo bueno de MDS es que también proyecta las características (columnas), para que pueda ver qué características impulsan la reducción de la dimensionalidad", ¿está seguro de eso? Eso no es cierto, por lo que yo entiendo; al menos no es más cierto para MDS que para t-SNE.
ameba
@amoeba Aquí es donde entra mi conocimiento limitado :-) Todo lo que sé es que el método de trazado predeterminado para trazar metaMDStanto muestras como características (ver, por ejemplo, esta viñeta: cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf )
Martin Modrák
Gracias por sus respuestas y comprensión. Ahora me estoy centrando más en UMAP, y creo que definir alguna medida de similitud como la distancia Jaccard puede ser una buena manera de manejar tipos de variables mixtas. No he usado MDS, pero soy consciente de ello. Tendré que pasar un tiempo entendiendo si es útil.
FChm
1
@ MartinModrák No sé qué hace exactamente el veganpaquete 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é veganhace exactamente .
ameba