05 · Bez nadzoru · 5 min czytania · aktualizacja
PCA, t-SNE czy UMAP — której metody redukcji wymiaru użyć?
W skrócie
PCA to szybki, liniowy rzut zachowujący wariancję, dobry do potoków. t-SNE i UMAP to nieliniowe mapy do oglądania sąsiedztw, nie do mierzenia odległości.
Co to jest
PCA wybierz do kompresji, przyspieszenia innych modeli i zachowania globalnej struktury (odległości, kierunki zmienności); t-SNE albo UMAP — do wizualizacji w 2D, gdy chcesz zobaczyć, które punkty są do siebie podobne i czy tworzą skupiska. UMAP jest zwykle szybszy od t-SNE i ma metodę dla nowych punktów, ale obie metody zniekształcają odległości między skupiskami i ich rozmiary, więc ich map nie wolno czytać jak wykresu z osiami.
PCA (analiza składowych głównych) obraca układ współrzędnych tak, by pierwsze osie niosły jak najwięcej wariancji, i odcina resztę. To rzut liniowy: ten sam dla każdego punktu, odwracalny w przybliżeniu, z interpretowalnymi osiami (kombinacjami cech).
t-SNE i UMAP budują mapę, na której punkty bliskie w oryginalnej przestrzeni mają być bliskie także na płaszczyźnie. Nie zależy im na zachowaniu dużych odległości, tylko sąsiedztw. Dlatego potrafią „rozplątać” zakrzywione struktury, których żaden rzut liniowy nie rozdzieli.
Mechanizm — dlaczego tak działa
PCA maksymalizuje wariancję. Składowe to wektory własne macierzy kowariancji, uporządkowane według wartości własnych. Rzut na pierwsze k składowych jest najlepszym liniowym przybliżeniem danych w sensie błędu kwadratowego. Duże odległości dominują błąd kwadratowy, więc PCA dobrze zachowuje globalny układ, a słabo lokalne sąsiedztwa, gdy struktura jest nieliniowa. Jest deterministyczne, szybkie i ma transform dla nowych danych.
t-SNE dopasowuje prawdopodobieństwa sąsiedztwa. W oryginalnej przestrzeni każdy punkt wybiera sąsiadów z prawdopodobieństwem malejącym jak rozkład Gaussa z odległością; szerokość tego rozkładu ustala perpleksja (efektywna liczba sąsiadów). Na mapie używa się rozkładu t-Studenta o ciężkich ogonach i minimalizuje dywergencję KL między oboma układami. Ciężkie ogony pozwalają rozsunąć skupiska daleko od siebie, ale przez to odległości między skupiskami i ich rozmiary tracą znaczenie. Wynik zależy od ziarna losowości i inicjalizacji; nie ma transform dla nowych punktów.
UMAP buduje graf sąsiedztwa i układa go na płaszczyźnie. Najpierw łączy każdy punkt z jego n_neighbors sąsiadami ważonymi krawędziami, potem szuka położenia w 2D, które zachowuje ten graf (entropia krzyżowa zamiast KL). W praktyce jest szybszy od t-SNE na dużych zbiorach i można nim rzutować nowe punkty. Często mówi się, że lepiej zachowuje strukturę globalną; Kobak i Linderman (2021) pokazali jednak, że ta różnica wynika głównie z inicjalizacji — t-SNE startujący z PCA zachowuje globalny układ podobnie dobrze.
Wspólne ograniczenie map nieliniowych. Optymalizacja na płaszczyźnie może tworzyć skupiska tam, gdzie w danych jest ciągłość, i rozdzielać grupy, które w rzeczywistości się stykają. Klastrowanie na współrzędnych t-SNE czy UMAP jest więc ryzykowne, a wnioski z mapy trzeba potwierdzać w oryginalnej przestrzeni.
Na przykładzie
Digits: 1797 cyfr 8×8, czyli punkty w 64 wymiarach. Dla każdej mapy 2D mierzę: trafność kNN (5 sąsiadów, 5-krotna warstwowa walidacja z tasowaniem) na współrzędnych mapy — czy sąsiedzi mają tę samą cyfrę; trustworthiness dla 10 sąsiadów (1 = sąsiedzi na mapie byli sąsiadami w oryginale); korelację Spearmana wszystkich odległości par — czy zachowany jest układ globalny.
| Metoda (2D) | kNN na mapie | Trustworthiness | Korelacja odległości | Czas |
|---|---|---|---|---|
| Oryginalne 64 wymiary | 0,986 | — | — | — |
| PCA | 0,633 | 0,830 | 0,582 | < 0,01 s |
| t-SNE, perpleksja 5 | 0,989 | 0,991 | 0,529 | ok. 6 s |
| t-SNE, perpleksja 30 | 0,989 | 0,993 | 0,506 | ok. 4 s |
| t-SNE, perpleksja 100 | 0,982 | 0,990 | 0,498 | ok. 5 s |
| t-SNE, perpleksja 30, start losowy | 0,987 | 0,992 | 0,425 | — |
Dwie osie PCA niosą tylko 28,5% wariancji (90% wymaga 21 składowych) i cyfry na nich nachodzą na siebie: kNN 0,633. t-SNE oddziela cyfry niemal idealnie — sąsiedztwo na mapie jest tak samo informatywne jak w 64 wymiarach. Za to układ globalny lepiej zachowuje PCA (0,582), a t-SNE z losowym startem traci go najbardziej (0,425 wobec 0,506 przy starcie z PCA) — dokładnie efekt opisany przez Kobaka i Lindermana.
Pułapka rozmiarów: w oryginale najbardziej zwarta cyfra ma średnią odległość wewnątrz grupy równą 0,66 tej najbardziej rozproszonej; na PCA 0,53, na t-SNE już 0,31. Rozmiar wysp na mapie t-SNE nie mówi, która cyfra jest pisana bardziej różnorodnie. UMAP nie należy do scikit-learn i nie był liczony w tym zestawieniu; na zbiorach cyfr, takich jak MNIST, daje mapy jakościowo podobne do t-SNE (McInnes i in., 2018).
Dane: Digits (ręcznie pisane cyfry 8×8)
W praktyce
Reguła wyboru:
- Kompresja, odszumianie, przyspieszenie modelu, cechy do dalszej analizy →
make_pipeline(StandardScaler(), PCA(n_components=0.95))(tyle składowych, ile trzeba do 95% wariancji). - Wizualizacja do kilkudziesięciu tysięcy punktów →
TSNE(n_components=2, perplexity=30, init="pca", random_state=0); sprawdź 2–3 perpleksje. - Duże zbiory, potrzeba rzutowania nowych punktów →
umap.UMAP(n_neighbors=15, min_dist=0.1, random_state=0)z pakietuumap-learn. - Bardzo wiele wymiarów (tysiące) → najpierw PCA do ok. 50 składowych, potem t-SNE lub UMAP — szybciej i z mniejszym szumem.
- Nie klastruj na współrzędnych t-SNE/UMAP i nie interpretuj odległości między wyspami ani ich rozmiarów; skupiska potwierdzaj w oryginalnej przestrzeni (np. sylwetką).
- PCA i t-SNE dopasowuj tylko na danych treningowych, jeśli wynik ma trafić do modelu predykcyjnego — inaczej to przeciek.
Najczęstsze pytania
- Czy t-SNE lub UMAP mogą służyć jako cechy do modelu?
- Mogą, ale rzadko warto. t-SNE nie przekształci nowych punktów, a obie metody są niestabilne względem ziarna i parametrów. Do cech lepiej nadaje się PCA albo autoenkoder; t-SNE i UMAP zostaw do oglądania danych.
- Jaką perpleksję wybrać w t-SNE?
- Typowo 5–50; domyślne 30 to dobry start. Mała perpleksja podkreśla drobną strukturę lokalną, duża — większe skupiska. Wnioski, które nie przetrwają zmiany perpleksji i ziarna, są artefaktem metody, nie cechą danych.
- Czy UMAP jest po prostu lepszym t-SNE?
- Jest zwykle szybszy i ma `transform`, a przy domyślnych ustawieniach daje bardziej zwarte skupiska. Jakość lokalnych sąsiedztw jest podobna, a przewaga w strukturze globalnej zależy głównie od inicjalizacji. Wybór między nimi to częściej kwestia skali danych i narzędzi niż jakości.
Źródła
- Pearson K. „On lines and planes of closest fit to systems of points in space”, Philosophical Magazine 2(11), 1901, s. 559–572.
- van der Maaten L., Hinton G. „Visualizing Data using t-SNE”, Journal of Machine Learning Research 9, 2008, s. 2579–2605.
- McInnes L., Healy J., Melville J. „UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction”, arXiv:1802.03426, 2018.
- Kobak D., Linderman G. C. „Initialization is critical for preserving global data structure in both t-SNE and UMAP”, Nature Biotechnology 39, 2021, s. 156–157.
- Wattenberg M., Viégas F., Johnson I. „How to Use t-SNE Effectively”, Distill, 2016: https://distill.pub/2016/misread-tsne/