Czy słyszałeś o Uniform Manifold Approximation and Projection (UMAP) ?
UMAP (Uniform Manifold Approximation and Projection) to nowatorska różnorodna technika uczenia się do nieliniowej redukcji wymiarów. UMAP jest zbudowany z teoretycznego szkieletu opartego na geometrii Riemanniana i topologii algebraicznej. Rezultatem jest praktyczny skalowalny algorytm, który stosuje się do danych w świecie rzeczywistym. Algorytm UMAP konkuruje z t-SNE pod względem jakości wizualizacji i prawdopodobnie zachowuje więcej globalnej struktury z doskonałą wydajnością w czasie wykonywania. Ponadto, UMAP, jak opisano, nie ma żadnych ograniczeń obliczeniowych dotyczących osadzania wymiarów, co czyni go użytecznym jako technika redukcji wymiarów ogólnego zastosowania w uczeniu maszynowym.
Sprawdź ich kod i oryginał w celu uzyskania listy zalet i wad, jest bardzo łatwy w użyciu.
Najważniejsze fakty: UMAP może obsługiwać duże zestawy danych i jest szybszy niż t-SNE, a także obsługuje dopasowanie do rzadkich danych matrycowych i, w przeciwieństwie do t-SNE, ogólnej techniki redukcji wymiarów, co oznacza, że nie tylko można jej użyć do wizualizacji, ale także do zmniejszenia przestrzeni funkcji do wprowadzania do innych modeli uczenia maszynowego.
Konkretne przykłady: porównałem metodę i porównałem ją z niektórymi innymi notebookami z porównawczymi technikami redukcji wymiarów , jeśli są zainteresowani, aby rzucić okiem i szybko zacząć.
Na wypadek, gdyby ludzie napotykający ten post stwierdzili, że UMAP nie jest wystarczająco wydajny, oto kilka innych technik, które napotkałem, które są jeszcze bardziej wydajne (ale nie tak wysokiej jakości):
Rzutowanie losowe: Zasadniczo utwórz losową macierz kształtu gdzie to pierwotna wymiarowość, a to pożądana wymiarowość, i pomnóż macierz danych przez macierz projekcji, aby uzyskać zredukowany zestaw danych. ma pewne implementacje tego. Jeśli rozmiar i rozkład matrycy rzutowej jest odpowiedni, wówczas pary odległości między punktami są prawie zachowane w rzutowanej przestrzeni.d × m d m
sklearn.random_projection
Mieszanie cech: Weź skrót wartości cech, weź moduł gdzie jest pożądaną wymiarowością. Kolizje mieszania są rozwiązywane przez zebranie sumy zderzających się wartości. Możesz myśleć o tym jako o tasowaniu kolejności elementów, dzieleniu macierzy danych na serię pionowych segmentów i dodawaniu ich wszystkich do siebie elementarnie. W przypadku rzadkich danych kolizje występują dość rzadko. jest implementacją, która (jak sądzę) działa tylko na wejściach łańcuchowych; Wydaje mi się, że zwykle jest używany do danych tekstowych typu bag-of-words.m m
sklearn.feature_extraction.FeatureHasher
źródło