t-SNE con variabili miste continue e binarie


10

Attualmente sto studiando la visualizzazione di dati ad alta dimensione usando t-SNE. Ho alcuni dati con variabili binarie e continue miste e i dati sembrano raggruppare i dati binari troppo prontamente. Naturalmente questo è previsto per i dati in scala (tra 0 e 1): la distanza euclidea sarà sempre massima / minima tra le variabili binarie. Come si dovrebbero gestire set di dati binari / continui misti usando t-SNE? Dovremmo eliminare le colonne binarie? C'è un diverso metricche possiamo usare?

Ad esempio, considera questo codice 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

quindi i miei dati non elaborati sono:

RAW_DATA

dove il colore è il valore della terza caratteristica (x3) - in 3D i punti dati si trovano su due piani (x3 = piano 0 e x3 = 1 piano).

Quindi eseguo 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 risultante:

tsne_data

e i dati sono ovviamente raggruppati in x3. Il mio istinto è che, poiché una metrica della distanza non è ben definita per le caratteristiche binarie, dovremmo lasciarle cadere prima di eseguire qualsiasi t-SNE, il che sarebbe un peccato poiché queste caratteristiche potrebbero contenere informazioni utili per la generazione dei cluster.


1
Nota: sono ancora interessato a sentire commenti su questo e anche sull'applicabilità di UMAP a questo spazio.
FChm,

Grazie per la generosità, ancora una volta interessati ma non ho trascorso molto tempo a esaminare questo per essere onesti. Potrei avere del tempo oggi per fare alcune ricerche iniziali e aggiungere aggiornamenti se applicabile.
FChm,

2
Ho riscontrato questo problema in pratica. Penso che non sia specifico per tSNE, ma influenzerà ugualmente qualsiasi algoritmo di apprendimento non supervisionato basato sulla distanza (incluso il clustering). Penso anche che la soluzione appropriata dipenderà fortemente da ciò che rappresentano le caratteristiche binarie e da un giudizio esperto su quanto siano importanti. Quindi sto cercando una risposta che possa discutere di varie possibili situazioni. Sono sicuro che non esiste una soluzione unica per tutti.
ameba,

Risposte:


8

Disclaimer: ho solo conoscenze tangenziali sull'argomento, ma dato che nessun altro ha risposto, ci proverò

La distanza è importante

Qualsiasi tecnica di riduzione della dimensionalità basata sulle distanze (tSNE, UMAP, MDS, PCoA e possibilmente altri) è valida solo quanto la metrica della distanza utilizzata. Come sottolineato correttamente da @amoeba, non ci può essere una soluzione unica per tutti, è necessario disporre di una metrica della distanza che catturi ciò che ritieni importante nei dati, ovvero che le righe che considereresti simili hanno una piccola distanza e le righe che vorresti considerare diverso avere una grande distanza.

Come si sceglie una buona metrica della distanza? Prima di tutto, lasciami fare un piccolo diversivo:

Ordinazione

Ben prima dei giorni di gloria dell'apprendimento automatico moderno, gli ecologisti della comunità (e molto probabilmente altri) hanno cercato di fare delle belle trame per l'analisi esplorativa di dati multidimensionali. Chiamano l' ordinazione del processo ed è una parola chiave utile da cercare nella letteratura ecologica che risale almeno agli anni '70 e continua ancora oggi.

L'importante è che gli ecologi dispongano di set di dati molto diversi e si occupino di miscele di caratteristiche binarie, intere e con valori reali (ad es. Presenza / assenza di specie, numero di campioni osservati, pH, temperatura). Hanno trascorso molto tempo a pensare a distanze e trasformazioni per far funzionare bene le ordinazioni. Non capisco molto bene il campo, ma ad esempio la recensione di Legendre e De Cáceres Beta sulla diversità come varianza dei dati della comunità: i coefficienti di dissimilarità e il partizionamento mostrano un numero schiacciante di possibili distanze che potresti voler controllare.

Ridimensionamento multidimensionale

Lo strumento per l'ordinazione è il ridimensionamento multidimensionale (MDS), in particolare la variante non metrica (NMDS) che vi incoraggio a provare oltre a t-SNE. Non conosco il mondo Python, ma l'implementazione di R in metaMDSfunzione del veganpacchetto fa molti trucchi per te (ad es. Eseguire più corse fino a quando non ne trova due simili).

Questo è stato contestato, vedere i commenti: La parte bella di MDS è che proietta anche le funzionalità (colonne), in modo da poter vedere quali funzioni guidano la riduzione della dimensionalità. Questo ti aiuta a interpretare i tuoi dati.

Tieni presente che t-SNE è stato criticato come uno strumento per derivare la comprensione, vedi ad esempio questa esplorazione delle sue insidie : ho sentito che UMAP risolve alcuni dei problemi, ma non ho esperienza con UMAP. Inoltre, non dubito che parte del motivo per cui gli ecologisti usano NMDS sia la cultura e l'inerzia, forse UMAP o t-SNE sono effettivamente migliori. Onestamente non lo so.

Stendere la tua distanza

Se comprendi la struttura dei tuoi dati, le distanze e le trasformazioni già pronte potrebbero non essere le migliori per te e potresti voler costruire una metrica della distanza personalizzata. Anche se non so cosa rappresentino i tuoi dati, potrebbe essere sensato calcolare la distanza separatamente per le variabili con valore reale (ad esempio usando la distanza euclidea se questo ha senso) e per le variabili binarie e aggiungerle. Le distanze comuni per i dati binari sono ad esempio la distanza di Jaccard o la distanza del coseno . Potrebbe essere necessario pensare ad un coefficiente moltiplicativo per le distanze poiché Jaccard e Coseno hanno entrambi valori in indipendentemente dal numero di elementi mentre l'entità della distanza euclidea riflette il numero di elementi.[0,1]

Un avvertimento

Ogni volta che dovresti tenere a mente che dato che hai così tante manopole da sintonizzare, puoi facilmente cadere nella trappola dell'accordatura fino a quando non vedi ciò che volevi vedere. Questo è difficile da evitare completamente nell'analisi esplorativa, ma dovresti essere cauto.


1
+1. Molti aspetti positivi qui, e mi piacciono i riferimenti alla letteratura "ordinazione" più antica. Una cosa che ha attirato la mia attenzione: "La cosa bella di MDS è che proietta anche le funzionalità (colonne), in modo da poter vedere quali funzioni guidano la riduzione della dimensionalità" - ne sei sicuro? Questo non è vero, per quanto ho capito; almeno non è più vero per MDS che per t-SNE.
ameba,

@amoeba È qui che arrivano le mie conoscenze limitate :-) Tutto quello che so è che il metodo di stampa predefinito per tracciare metaMDSsia campioni che caratteristiche (vedi ad esempio questa vignetta: cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf )
Martin Modrák,

Grazie per le tue risposte e approfondimenti. Ora mi sto concentrando maggiormente su UMAP e penso che definire alcune misure di somiglianza come la distanza di Jaccard sia forse un buon modo per gestire tipi di variabili miste. Non ho usato MDS, ma ne sono consapevole. Dovrò dedicare un po 'di tempo a capire se è utile.
FChm,

1
@ MartinModrák Non so cosa veganci faccia esattamente il pacchetto, ma MDS / NMDS è un metodo non lineare e non parametrico (esattamente come t-SNE) e non esiste un modo "interno" per abbinare le caratteristiche originali alle dimensioni MDS. Posso immaginare che stiano calcolando le correlazioni tra caratteristiche originali e dimensioni MDS; in tal caso, ciò potrebbe essere fatto per qualsiasi incorporamento, incluso t-SNE. Sarebbe interessante sapere cosa veganfa esattamente .
ameba,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.