Czy istnieją przypadki, w których PCA jest bardziej odpowiednie niż t-SNE?

39

Chcę zobaczyć, jak 7 miar zachowania korekty tekstu (czas spędzony na poprawianiu tekstu, liczba naciśnięć klawiszy itp.) Odnoszą się do siebie. Miary są skorelowane. Uruchomiłem PCA, aby zobaczyć, jak miary rzutują się na PC1 i PC2, co pozwoliło uniknąć nakładania się osobnych testów dwukierunkowej korelacji między miarami.

Zapytano mnie, dlaczego nie stosować t-SNE, ponieważ związek między niektórymi miarami może być nieliniowy.

Widzę, w jaki sposób poprawienie tej nieliniowości poprawiłoby to, ale zastanawiam się, czy istnieje jakiś dobry powód, aby użyć PCA w tym przypadku, a nie t-SNE? Nie interesuje mnie grupowanie tekstów według ich związku ze środkami, ale raczej związek między samymi środkami.

(Wydaje mi się, że EFA może również być lepszym / innym podejściem, ale to inna dyskusja.) W porównaniu z innymi metodami, jest tu niewiele postów na temat t-SNE, więc pytanie wydaje się warte zadania.

użytkownik3744206
źródło
3
t-SNE nie skaluje się dobrze z rozmiarem zestawu danych, podczas gdy PCA ma. Wynika to z doświadczenia w prowadzeniu obu na dużym zbiorze danych przy użyciu implementacji scikit-learn.
Mai
@Mai przypuszczalnie dotyczy to głównie dużych zbiorów danych? Mój zestaw danych jest niewielki (kilkaset punktów danych).
user3744206,

Odpowiedzi:

65

t SNE to świetny element uczenia maszynowego, ale można znaleźć wiele powodów, aby używać PCA zamiast niego. Ze szczytu mojej głowy wymienię pięć. Podobnie jak większość innych stosowanych metod obliczeniowych, SNE nie jest srebrną kulą i istnieje kilka powodów, które sprawiają, że w niektórych przypadkach jest to optymalny wybór. Pozwolę sobie krótko wspomnieć o kilku punktach:t

  1. Stochastyczność końcowego rozwiązania . PCA jest deterministyczna; SNE nie jest. Jedna dostaje ładną wizualizację, a następnie jej koleżanka dostaje kolejną wizualizację, a następnie stają się artystyczne, co wygląda lepiej i jeśli różnica w rozbieżności jest znacząca ... W PCA poprawna odpowiedź na postawione pytanie jest gwarantowane. SNE może mieć wiele minimów, które mogą prowadzić do różnych rozwiązań. Wymaga to wielu przebiegów, a także rodzi pytania dotyczące odtwarzalności wyników.t0.03%KL(P||Q)t

  2. Interpretowalność mapowania . Odnosi się to do powyższego punktu, ale załóżmy, że zespół zgodził się na konkretny losowy start / bieg. Teraz pojawia się pytanie, co to pokazuje ... SNE próbuje poprawnie odwzorować tylko lokalnych / sąsiadów, więc nasze spostrzeżenia z tego osadzenia powinny być bardzo ostrożne; globalne trendy nie są dokładnie reprezentowane (a to może być potencjalnie świetną rzeczą do wizualizacji). Z drugiej strony, PCA jest tylko diagonalnym obrotem naszej początkowej macierzy kowariancji, a wektory własne reprezentują nowy układ osiowy w przestrzeni rozpiętej przez nasze oryginalne dane. Możemy bezpośrednio wyjaśnić, co robi konkretny PCA.t

  3. Zastosowanie do nowych / niewidocznych danych . SNE nie uczy się funkcji z pierwotnej przestrzeni do nowej (niższej) wymiarowej i to jest problem. W tej kwestii SNE jest nieparametrycznym algorytmem uczenia się, więc aproksymacja z algorytmem parametrycznym jest złym problemem. Osadzanie uczy się poprzez bezpośrednie przenoszenie danych w przestrzeni niskiego wymiaru. Oznacza to, że nie dostaje się wektora własnego lub podobnej konstrukcji do użycia w nowych danych. Natomiast za pomocą PCA wektory własne oferują nowy system osi, który można bezpośrednio wykorzystać do projekcji nowych danych. [Najwyraźniej można by ćwiczyć sieć głęboką, aby nauczyć sięttt-Sne mapowanie (możesz usłyszeć Dr. van der Maaten na ~ 46 'tego filmu sugerującego coś w tym stylu), ale najwyraźniej nie ma łatwego rozwiązania.]

  4. Niekompletne dane . Natywnie SNE nie zajmuje się niekompletnymi danymi. Szczerze mówiąc, PCA nie zajmuje się nimi, ale istnieją liczne rozszerzenia PCA dla niekompletnych danych (np. Probabilistyczne PCA ) i są to prawie standardowe procedury modelowania. SNE obecnie nie jest w stanie obsłużyć niekompletnych danych (pomijając oczywiście szkolenie najpierw probabilistycznego PCA i przekazywanie wyników PC do SNE jako danych wejściowych).ttt

  5. nie jest (zbyt) mały przypadek. k SNE rozwiązuje problem zwany problemem zatłoczenia, skutecznie polegając na tym, że nieco podobne punkty w wyższym wymiarze zapadają się na siebie w niższych wymiarach (więcej tutaj ). Teraz, gdy zwiększasz stosowane wymiary, problem zatłoczenia staje się mniej poważny, tj. problem, który próbujesz rozwiązać za pomocą SNE, zostaje osłabiony. Możesz obejść ten problem, ale nie jest to trywialne. Dlatego jeśli potrzebujesz wektora wymiarowego jako zbioru zredukowanego, a nie jest całkiem mały, to kwestionowana jest optymalność produkowanego rozwiązania. Z drugiej strony PCA oferuje zawszettkkkwyjaśniono najlepszą kombinację liniową pod względem wariancji. (Podziękowania dla @amoeba za to, że zauważyłem, że zrobiłem bałagan, kiedy pierwszy raz zarysowałem ten punkt).

Nie wspominam o problemach dotyczących wymagań obliczeniowych (np. Szybkości lub wielkości pamięci), ani o wyborze odpowiednich hiperparametrów (np. Zakłopotania). Myślę, że są to wewnętrzne problemy metodologii SNE i nie mają znaczenia przy porównywaniu jej z innym algorytmem.t

Podsumowując, SNE jest świetny, ale ponieważ wszystkie algorytmy mają swoje ograniczenia, jeśli chodzi o jego zastosowanie. Używam SNE prawie w każdym nowym zestawie danych, który dostaję jako wyjaśniające narzędzie do analizy danych. Wydaje mi się, że ma pewne ograniczenia, które nie sprawiają, że jest on prawie tak odpowiedni jak PCA. Chciałbym podkreślić, że PCA też nie jest doskonały; na przykład wizualizacje oparte na PCA są często gorsze niż w przypadku SNE.ttt

usεr11852 mówi Reinstate Monic
źródło
@amoeba: Usunąłem tę kwestię, ponieważ robiła się zbyt pracochłonna; Najbardziej motywował mnie pomysł, aby SNE miał problemy z problemem zatłoczenia, który był mniej dotkliwy przy użyciu wyższych wymiarów (zamiast ), a tym samym oferował niejasne spostrzeżenia, ale pomyliłem punkt, w którym byłem próbować zrobić. Ponadto, skoro rekonstrukcja jest możliwa z LLE (Roweis i Saul, 2000), dlaczego nie byłoby możliwe przez t-SNE? tk=2,3,4
usεr11852 mówi: Przywróć Monic
@amoeba: Dziękujemy za wzmiankę o tym. Zaktualizowałem odpowiednio swoją odpowiedź.
usεr11852 mówi: Przywróć Monic
3
Jeśli chodzi o twój punkt 3: oto artykuł z 2009 roku na temat parametrycznego t-sne lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf . Wygląda na to, że tak naprawdę nie wystartował (ma 25 razy mniej cytatów niż oryginalny papier T-sne), ale w rzeczywistości jest dość łatwy do wdrożenia w dzisiejszych technologiach / bibliotekach. Mam go uruchomionego w Keras; W ciągu ostatnich tygodni pracowałem nad zbadaniem (i prawdopodobnie przedłużeniem) tego.
ameba mówi Przywróć Monikę
Chłodny! (+1) Jeśli otrzymasz pływający wydruk prefiksu arXiv, daj mi znać (tutaj lub 10-krotnie), będę bardzo ciekawy wyników. Tak, widziałem ten artykuł w momencie pisania tej odpowiedzi (powiedziałbym, że jest to dobrze znany artykuł), ale jak powiedziałeś, nie wydaje się, aby został podjęty. Również punkt # 3 pozostaje w pełni aktualny: musisz zbudować DNN, aby wydobyć coś, co oferuje PCA za pośrednictwem jednego macierzy krzyżowego.
usεr11852 mówi: Przywróć Monic
12

https://stats.stackexchange.com/a/249520/7828

jest doskonałą odpowiedzią ogólną.

Chciałbym się bardziej skupić na twoim problemie. Najwyraźniej chcesz zobaczyć, jak twoje próbki odnoszą się do twoich 7 zmiennych wejściowych. To jest coś, czego t-SNE nie robi. Ideą SNE i t-SNE jest umieszczenie sąsiadów blisko siebie (prawie) całkowicie ignorując globalną strukturę.

Jest to doskonałe do wizualizacji, ponieważ podobne przedmioty mogą być nanoszone obok siebie (a nie jedna na drugiej, jeśli się tłoczy).

To nie jest dobre do dalszej analizy. Globalna struktura została utracona, niektóre obiekty mogły zostać zablokowane przed przemieszczaniem się do sąsiadów, a separacja między różnymi grupami nie jest zachowana ilościowo. I w dużej mierze dlatego np. Grupowanie projekcji zwykle nie działa zbyt dobrze.

PCA jest wręcz przeciwnie. Stara się zachować globalne właściwości (wektory własne o dużej wariancji), a jednocześnie może utracić odchylenia o niskiej wariancji między sąsiadami.

Anony-Mus
źródło
Ach, właśnie to założyłem. Nie interesuje mnie, jak punkty danych są rozmieszczone w przestrzeni, ale raczej to, jak same miary są ze sobą powiązane. Te dwie rzeczy są oczywiście ze sobą powiązane, ale jeśli chodzi o wizualizację i interpretację tych relacji, podejrzewam, że tylko PCA robi to, co chcę. Na przykład istnieją zarówno pozytywne, jak i negatywne związki między miarami, a tym, co naprawdę mnie interesuje, jest bezwzględna wartość skojarzeń, które, jak sądzę, są łatwiejsze do interpretacji / sprawdzenia, czy używam PCA.
user3744206,
1
Dla tego przypadku użycia lepiej może przyjrzeć się samej macierzy korelacji, tzn. Wykonać tylko porównania parami. Następnie możesz również obsłużyć nieliniowość, np. Używając korelacji Spearmana.
Anony-Mousse,
Czy możemy używać T-SNE do problemów z klastrami? o ile rozumiem, możemy zaprojektować nowy punkt i spróbować skupić się na niższych wymiarach? Czy to możliwe ?
Catbuilts
Nie. Ponieważ tSNE nie jest liniowy, nie można go po prostu obliczyć dla nowych danych (patrz wyżej). I odbyła się legalna dyskusja, która może również wprowadzać w błąd wprowadzanie klastrów w prognozowane dane.
Anony-Mousse
1

Aby podać jeden zastosowany kąt, PCA i t-SNE nie wykluczają się wzajemnie. W niektórych dziedzinach biologii mamy do czynienia z danymi wysoce wymiarowymi (np. ScRNA-seq to tysiące wymiarów), w których t-SNE po prostu nie skaluje się. Dlatego najpierw używamy PCA, aby zmniejszyć wymiarowość danych, a następnie, biorąc pod uwagę najważniejsze składniki, obliczamy wykres sąsiedztwa, a następnie osadzamy go w 2 wymiarach za pomocą t-SNE (lub podobnego nieliniowego podejścia do zmniejszania wymiarowości jak UMAP) w celu wizualizacji danych.

Chris_Rands
źródło