t-SNE z mieszanymi zmiennymi ciągłymi i binarnymi

10

Obecnie badam wizualizację danych wielowymiarowych za pomocą t-SNE. Mam pewne dane z mieszanymi zmiennymi binarnymi i ciągłymi, a dane wydają się zbyt łatwo grupować dane binarne. Oczywiście jest to oczekiwane w przypadku danych skalowanych (od 0 do 1): odległość euklidesowa zawsze będzie największa / najmniejsza między zmiennymi binarnymi. Jak należy radzić sobie z mieszanymi zestawami danych binarnych / ciągłych za pomocą t-SNE? Czy powinniśmy upuścić kolumny binarne? Czy jest inny, metricktórego możemy użyć?

Jako przykład rozważmy ten kod 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

więc moje nieprzetworzone dane to:

raw_data

gdzie kolor jest wartością trzeciej cechy (x3) - w 3D punkty danych leżą w dwóch płaszczyznach (płaszczyzna x3 = 0 i płaszczyzna x3 = 1).

Następnie wykonuję 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)

z otrzymanym działką:

tsne_data

a dane są oczywiście grupowane przez x3. Moją instynktem jest to, że ponieważ metryka odległości nie jest dobrze zdefiniowana dla funkcji binarnych, powinniśmy je upuścić przed wykonaniem jakiegokolwiek t-SNE, co byłoby wstydem, ponieważ te funkcje mogą zawierać przydatne informacje do generowania klastrów.

FChm
źródło
1
Uwaga: Nadal jestem zainteresowany słyszeniem komentarzy na ten temat, a także na temat możliwości zastosowania UMAP w tej przestrzeni.
FChm
Dziękuję za nagrodę, ponownie zainteresowaną, ale nie spędziłem dużo czasu na analizowaniu tego, aby być sprawiedliwym. Może mam dziś trochę czasu na przeprowadzenie wstępnych badań i w razie potrzeby dodam aktualizacje.
FChm
2
W praktyce napotkałem ten problem. Myślę, że nie jest to specyficzne dla tSNE, ale w równym stopniu wpłynie na dowolny algorytm uczenia się bez nadzoru na odległość (w tym klastrowanie). Myślę również, że odpowiednie rozwiązanie będzie silnie zależeć od tego, co reprezentują cechy binarne, oraz od pewnej oceny eksperckiej na temat ich znaczenia. Szukam więc odpowiedzi, która omówiłaby różne możliwe sytuacje. Jestem pewien, że nie ma tutaj jednego uniwersalnego rozwiązania.
ameba

Odpowiedzi:

8

Zastrzeżenie: Mam tylko wiedzę styczną na ten temat, ale ponieważ nikt inny nie odpowiedział, spróbuję

Odległość jest ważna

Każda technika redukcji wymiarów oparta na odległościach (tSNE, UMAP, MDS, PCoA i ewentualnie inne) jest tak dobra, jak używana przez ciebie metryka odległości. Jak słusznie wskazuje @amoeba, nie może istnieć jedno uniwersalne rozwiązanie, musisz mieć metrykę odległości, która uchwyci to, co uważasz za ważne w danych, tj. Wiersze, które uważasz za podobne, mają małą odległość i rzędy uważają, że różne mają dużą odległość.

Jak wybrać dobrą metrykę odległości? Najpierw pozwól mi zrobić małą dywersję:

Wyświęcenie

Na długo przed dniami świetności współczesnego uczenia maszynowego, ekolodzy społeczni (i prawdopodobnie inni) próbowali stworzyć ładne wykresy do eksploracyjnej analizy danych wielowymiarowych. Nazywają to wyświęcaniem procesu i jest to przydatne słowo kluczowe, którego należy szukać w literaturze ekologii, sięgającej co najmniej lat 70. i wciąż silnej do dziś.

Ważne jest to, że ekolodzy mają bardzo zróżnicowane zbiory danych i zajmują się mieszankami cech binarnych, liczb całkowitych i wartości rzeczywistych (np. Obecność / brak gatunków, liczba zaobserwowanych okazów, pH, temperatura). Spędzili dużo czasu zastanawiając się nad odległościami i transformacjami, aby święcenia działały dobrze. Nie rozumiem zbyt dobrze tej dziedziny, ale na przykład przegląd różnorodności Legendre i De Cáceres Beta jako wariancji danych społeczności: odmienne współczynniki i partycjonowanie pokazuje przeważającą liczbę możliwych odległości, które możesz chcieć sprawdzić.

Skalowanie wielowymiarowe

Narzędziem do wyświęcania jest skalowanie wielowymiarowe (MDS), zwłaszcza wariant niemetryczny (NMDS), do którego zachęcam was do wypróbowania oprócz t-SNE. Nie wiem o świecie Python, ale implementacja R w metaMDSfunkcji veganpakietu robi dla ciebie wiele sztuczek (np. Uruchamianie wielu uruchomień, aż znajdzie dwa podobne).

To zostało zakwestionowane, patrz komentarze: Przyjemną częścią MDS jest to, że wyświetla on także elementy (kolumny), dzięki czemu można zobaczyć, które elementy powodują zmniejszenie wymiarów. Pomaga to w interpretacji danych.

Należy pamiętać, że t-SNE został skrytykowany jako narzędzie do zrozumienia, patrz np. Eksploracja jego pułapek - słyszałem, że UMAP rozwiązuje niektóre problemy, ale nie mam doświadczenia z UMAP. Nie wątpię też, że część powodów, dla których ekolodzy używają NMDS, to kultura i bezwładność, być może UMAP lub t-SNE są w rzeczywistości lepsze. Naprawdę nie wiem.

Rozwijanie własnego dystansu

Jeśli rozumiesz strukturę swoich danych, gotowe odległości i transformacje mogą nie być dla Ciebie najlepsze i możesz chcieć zbudować niestandardową miarę odległości. Chociaż nie wiem, co reprezentują twoje dane, rozsądne może być obliczenie odległości osobno dla zmiennych o wartościach rzeczywistych (np. Użycie odległości euklidesowej, jeśli ma to sens) oraz dla zmiennych binarnych i dodanie ich. Typowymi odległościami dla danych binarnych są na przykład odległość Jaccard lub odległość Cosinus . Być może trzeba pomyśleć o pewnym współczynniku multiplikatywnym dla odległości, ponieważ Jaccard i Cosine mają wartości w[0,1] niezależnie od liczby elementów, a wielkość odległości euklidesowej odzwierciedla liczbę elementów.

Słowo ostrzeżenia

Cały czas powinieneś pamiętać, że skoro masz tyle pokręteł do dostrojenia, możesz łatwo wpaść w pułapkę strojenia, dopóki nie zobaczysz tego, co chcesz zobaczyć. Trudno tego całkowicie uniknąć w analizie eksploracyjnej, ale należy zachować ostrożność.

Martin Modrák
źródło
1
+1. Wiele dobrych punktów tutaj i podobają mi się odniesienia do starszej literatury „święceń”. Jedną z rzeczy, które zwróciły moją uwagę: „Przyjemną stroną MDS jest to, że wyświetla on także funkcje (kolumny), dzięki czemu można zobaczyć, które funkcje powodują zmniejszenie wymiarów” - czy jesteś tego pewien? O ile rozumiem, to nieprawda; przynajmniej nie jest to bardziej prawdziwe dla MDS niż dla t-SNE.
ameba
@amoeba W tym miejscu pojawia się moja ograniczona wiedza :-) Wiem tylko, że domyślna metoda kreślenia metaMDSzarówno próbek, jak i elementów (patrz np. ta winieta: cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf )
Martin Modrák
Dzięki za odpowiedzi i wgląd. Teraz skupiam się bardziej na UMAP i myślę, że zdefiniowanie pewnych miar podobieństwa, takich jak odległość Jaccard, może być dobrym sposobem na radzenie sobie z mieszanymi typami zmiennych. Nie korzystałem z MDS, ale jestem tego świadomy. Będę musiał poświęcić trochę czasu na zrozumienie, jeśli będzie to przydatne.
FChm
1
@ MartinModrák Nie wiem, co dokładnie veganrobi pakiet, ale MDS / NMDS jest nieliniową i nieparametryczną metodą (dokładnie tak jak t-SNE) i nie ma „wewnętrznego” sposobu na dopasowanie oryginalnych elementów do wymiarów MDS. Mogę sobie wyobrazić, że obliczają korelacje między oryginalnymi elementami a wymiarami MDS; jeśli tak, można to zrobić dla każdego osadzania, w tym t-SNE. Byłoby ciekawie wiedzieć, co dokładnie veganrobi.
ameba