Dimensionsreduktion
Aus tausend Spalten zwei machen, ohne das Wesentliche zu verlieren: PCA, UMAP und warum man aus einer schönen Karte wenig ablesen darf.
Die Idee
Ein Gegenstand wirft einen Schatten. Der Schatten hat zwei Dimensionen statt drei und ist trotzdem oft erkennbar. Dimensionsreduktion sucht die Richtung, aus der der Schatten am meisten verrät.
Wozu es gut ist
- Tausend Merkmale auf fünfzig verdichten, damit ein Modell schneller lernt.
- Einen Datenbestand auf zwei Achsen zeichnen, um überhaupt einen Eindruck zu bekommen.
- Rauschen entfernen, indem man die schwächsten Richtungen wegwirft.
Wann welches Verfahren
| Zweck | Verfahren | Warum |
|---|---|---|
| Vorverarbeitung für ein Modell | PCA | Linear, schnell, auf neue Daten anwendbar |
| Rauschen entfernen | PCA, Truncated SVD | Schwache Richtungen sind meist Rauschen |
| Darstellung, lokale Struktur | UMAP | Erhält Nachbarschaften gut |
| Darstellung, kleine Datenmengen | t-SNE | Trennt Gruppen deutlich, langsam |
| Sehr dünn besetzte Matrizen | Truncated SVD | Braucht die Matrix nicht zu zentrieren |
import numpy as np
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
rng = np.random.default_rng(0)
X = StandardScaler().fit_transform(rng.normal(size=(2000, 60)))
p = PCA().fit(X)
kum = np.cumsum(p.explained_variance_ratio_)
print("Komponenten fuer 95 % Varianz:", int(np.searchsorted(kum, 0.95) + 1))
# PCA immer auf standardisierten Daten rechnen, sonst bestimmt
# die Spalte mit der groessten Einheit die erste Hauptkomponente.PCA formal
In der Praxis rechnet man die Singulärwertzerlegung X = U S Vᵀ statt der
Eigenzerlegung von XᵀX: numerisch stabiler, und V enthält die
Hauptkomponenten direkt.
Der Dimensionsfluch, quantifiziert
Für gleichverteilte Punkte im d-dimensionalen Einheitswürfel gilt
Bei d = 2 liegt dieses Verhältnis typisch bei mehreren hundert Prozent, bei
d = 100 im einstelligen Prozentbereich. Praktische Folge: eine
Nächste-Nachbarn-Suche auf rohen hochdimensionalen Merkmalen ist wenig
aussagekräftig. Embeddings umgehen das, weil ihre Punkte nicht gleichverteilt
sind, sondern auf einer viel niedrigdimensionalen Mannigfaltigkeit liegen.
UMAP-Karten richtig lesen
- Nachbarschaften sind meist verlässlich, globale Abstände nicht.
- Die Größe einer Gruppe auf der Karte sagt nichts über ihre Streuung im Original.
- Zwei Läufe mit anderem Startwert ergeben andere Bilder. Immer mehrere ansehen.
- Nie auf der Karte clustern und das Ergebnis als Befund melden, im Originalraum clustern und die Karte nur zum Zeigen benutzen.
Passende Kurse und Quellen
MIT 18.065 Matrixmethoden
Singulärwertzerlegung, Hauptkomponenten und Optimierung, angewandt auf Daten. Die Brücke zwischen linearer Algebra und dem, was Modelle tatsächlich rechnen.
Für den Schritt von der reinen Mathematik zu dem, was Modelle tatsächlich rechnen.