Zum Inhalt springen

tSNE: t-distributed stochastic neighbor embedding

Das t-distributed stochastic neighbor embedding (kurz: tSNE) ist ein unsupervised Algorithmus zur Dimensionsreduktion in großen Datensätzen. Dazu werden traditioneller Weise entweder die Principal Component Analysis (PCA) bei linearen Zusammenhängen oder Neuronale Netzwerke bei nicht-relationalen Zusammenhängen genutzt. Der tSNE Algorithmus stellt hierfür eine Alternative dar, die deutlich simpler ist im Vergleich zu den genannten Alternativen.

Warum benötigt man die Dimensionsreduktion?

Verschiedene Algorithmen, wie beispielsweise die Lineare Regression haben Probleme, wenn der Datensatz Variablen hat, die miteinander korreliert sind, also voneinander abhängen. Um dieser Problematik aus dem Weg zu gehen, kann es Sinn machen, die Variablen aus dem Datensatz zu entfernen, die mit einer anderen Variablen korrelieren. Gleichzeitig aber sollen die Daten auch nicht ihren ursprünglichen Informationsgehalt verlieren bzw. sollen so viel Information wie möglich behalten.

Eine weitere Anwendung haben wir bei Clusteranalysen, wie beispielsweise dem k-Means Clustering, bei welchem wir die Anzahl der Cluster im Vorhinein definieren müssen. Die Dimensionalität des Datensatzes zu verringern hilft uns dabei, einen ersten Eindruck von den Informationen zu bekommen und beispielsweise abschätzen zu können, welches die wichtigsten Variablen sind und wie viele Cluster der Datensatz haben könnte. Wenn wir es beispielsweise schaffen, den Datensatz auf drei Dimensionen zu reduzieren, können wir die Datenpunkte in einem Diagramm visualisieren. Daraus lässt sich dann möglicherweise schon die Anzahl der Cluster ablesen.

Zusätzlich bieten große Datensätze mit vielen Variablen auch die Gefahr, dass das Modell overfitted. Das bedeutet einfach erklärt, dass das Modell sich im Training zu stark an die Trainingsdaten anpasst und dadurch nur schlechte Ergebnisse für neue, ungesehene Daten liefert. Daher kann es beispielsweise bei Neuronalen Netzwerken Sinn machen, das Modell erst mit den wichtigsten Variablen zu trainieren und dann Stück für Stück neue Variablen hinzuzunehmen, die möglicherweise die Performance des Modell weiter erhöhen ohne Overfitting.

Wie funktioniert tSNE?

Der Ansatz von tSNE ist in der Theorie relativ einfach. Angenommen wir haben einen hochdimensionalen Datensatz, dann definieren wir ein Abstandsmaß zwischen den Datenpunkten. Dabei kann es sich um bekannte Abstandsmaße handeln, aber auch um eigene Funktionen, die definiert werden. In vielen Fällen wird dazu die Entfernung normalisiert, damit es auf die Unterschiede in den Datenpunkten ankommt und nicht auf den tatsächlichen Abstand im Raum.

Der tSNE Algorithmus versucht dann einen niedrigdimensionalen Raum zu finden in dem diese Abstände so gut wie möglich erhalten bleiben. Dazu nutzt er das sogenannte Gradientenverfahren, um die Ergebnisse schrittweise zu verbessern.

Welche Anwendungen nutzen das Verfahren?

tSNE hat verschiedene Anwendungen in der Datenanalyse und -visualisierung, darunter:

  • Visualisierung hochdimensionaler Daten: Das Verfahren kann verwendet werden, um die Dimensionalität hochdimensionaler Daten auf einen zwei- oder dreidimensionalen Raum zu reduzieren, was eine einfachere Visualisierung und Interpretation ermöglicht.
  • Clustering: tSNE kann zur Identifizierung von Clustern in Daten verwendet werden, indem ähnliche Datenpunkte im reduzierten dimensionalen Raum näher beieinander abgebildet werden.
  • Erkennung von Anomalien: Die Dimensionsreduktion kann verwendet werden, um Ausreißer oder Anomalien in Daten zu identifizieren, indem sie weit entfernt vom Hauptcluster abgebildet werden.
  • Bildanalyse: tSNE wurde bei Bildanalyseaufgaben wie Objekterkennung, Klassifizierung und Segmentierung eingesetzt.
  • Verarbeitung natürlicher Sprache: tSNE wurde zur Visualisierung von Worteinbettungen und zur Themenmodellierung bei der Verarbeitung natürlicher Sprache eingesetzt.
  • Genomik: tSNE wurde für die Visualisierung und Analyse hochdimensionaler Genexpressionsdaten in der Genomikforschung eingesetzt.
  • Neurowissenschaft: Die Dimensionsreduktion wurde für die Analyse und Visualisierung großer neuronaler Aufzeichnungen in der neurowissenschaftlichen Forschung eingesetzt.
  • Empfehlungssysteme: tSNE wurde in Empfehlungssystemen zum Clustern ähnlicher Produkte und zur Visualisierung von Benutzerpräferenzen eingesetzt.

Insgesamt ist tSNE ein vielseitiges Werkzeug, das für ein breites Spektrum von Datenanalyseaufgaben eingesetzt werden kann.

Welche Faktoren verbessern das Ergebnis?

Wie wir bereits erfahren haben, nutzt dieser Algorithmus einen Ansatz bei dem man sich dem Ergebnis schrittweise annähert. Das kennen wir bereits aus dem Bereich des Machine Learnings. Entsprechend gibt es auch sogenannte Hyperparameter, deren Wert einen großen Einfluss auf die Qualität des Ergebnis haben kann. Folgende Parameter müssen beachtet werden:

  • Anzahl der Iterationen: Im Allgemeinen wird sich der Algorithmus mit mehr Iterationen einem immer besseren Ergebnis annähern. Dabei nimmt die Verbesserung jedoch mit jeder Iteration ab, das heißt das Ergebnis wird nur sehr langsam besser. Somit muss eine Abwägung zwischen der Güte des Ergebnis und der Trainingszeit getroffen werden.
  • Lernrate: Die Lernrate beeinflusst die Größe der Änderungen in jeder Iteration. Eine niedrige Lernrate führt dazu, dass das Ergebnis nur sehr langsam konvergiert, während eine hohe Lernrate dazu führen kann, dass der Algorithmus gar nicht konvergiert, also sich keinem eindeutigen Ergebnis annähert.
  • Perplexity: Die Perplexity entscheidet einfach gesagt darüber, wie die Gewichtung zwischen lokalen und globalen Abhängigkeiten aussehen soll. In vielen Fällen bedeutet eine höhere Komplexität deutlich klarer getrennte Cluster, während bei einer niedrigen Perplexity die Daten noch relativ eng beeinander bleiben.

tSNE vs. Principal Component Analysis

Obwohl das Ziel von PCA und tSNE erstmal dasselbe ist, nämlich die Dimensionsreduzierung, gibt es einige Unterschiede in den Algorithmen. Zum einen funktioniert tSNE für einen Datensatz sehr gut, kann jedoch nicht auf neue Datenpunkte angewandt werden, da sich dadurch die Abstände zwischen den Datenpunkten verändern und ein neues Ergebnis errechnet werden muss. PCA hingegen erstellt als Ergebnis eine Regel, die auch auf neue Datenpunkte angewandt werden können, die während dem Training noch nicht Teil des Datensatzes waren.

Der t-distributed stochastic neighbor embedding Algorithmus kann auch genutzt werden, wenn die Zusammenhänge zwischen den Datenpunkten nicht-linear sind. Die Principal Component Analysis kann hingegen nur lineare Zusammenhänge erkennen und in die Trennung einbeziehen. Für nicht-lineare Abhängigkeiten kann man auch Neuronale Netzwerke nutzen, deren Aufwand und Training ist jedoch zeitaufwändig. Obwohl tSNE im Vergleich zu PCA auch eine relativ lange Trainingsphase hat, ist sie meist immer noch kürzer als bei Neuronalen Netzwerken und stellt somit einen guten Kompromiss dar.

Das Bild zeigt ein zweidimensionales Diagramm mit verschiedenen orangenen Punkten und einer blauen Linie, die durch die Punktewolke verläuft. Dies ist die Gerade der Linearen Regression.
Hauptkomponentenanalyse | Quelle: Autor

Ein weiterer wichtiger Unterschied zwischen PCA und tSNE ist der Fokus auf die Datenverteilung. Bei der Principal Component Analysis wird versucht, die globale Anordnung der Datenpunkte auch in weniger Dimensionen beizubehalten. tSNE hingegen fokussiert sich eher auf lokale Abstände und Zusammenhänge, welche auch in niedrigeren Dimensionen beibehalten werden sollen. Deshalb kann es den Anschein machen, dass nach einer Dimensionsreduktion durch tSNE die Daten so aussehen, als seien sie auch schon in Cluster aufgeteilt worden.

Welche Grenzen hat tSNE?

Obwohl sich tSNE als leistungsfähiges Werkzeug zur Visualisierung hochdimensionaler Daten erwiesen hat, ist es nicht ohne Einschränkungen. Einige der wichtigsten Einschränkungen von tSNE sind:

  • Empfindlichkeit gegenüber Hyperparametern: Die Leistung von tSNE hängt stark von der Wahl der Hyperparameter ab, insbesondere vom Perplexitätswert. Die Wahl des falschen Perplexitätswertes kann zu schlechten Ergebnissen führen, und es gibt keine allgemein akzeptierte Methode zur Auswahl eines geeigneten Wertes.
  • Schwierigkeit bei der Interpretation der Ergebnisse: Obwohl tSNE visuell überzeugende Ergebnisse liefern kann, kann es schwierig sein, die Bedeutung der resultierenden Visualisierung zu interpretieren, insbesondere wenn es um komplexe oder verrauschte Daten geht.
  • Anfälligkeit für Overfitting: Wie viele Techniken des maschinellen Lernens ist auch tSNE anfällig für eine Überanpassung, insbesondere bei kleinen Datensätzen oder Datensätzen mit geringem Signal-Rausch-Verhältnis.
  • Skalierbarkeit: Obwohl tSNE in der Lage ist, hochdimensionale Daten zu visualisieren, kann es rechenintensiv und zeitaufwendig sein, wenn es auf großen Datensätzen ausgeführt wird.
  • Mögliche Irreführung der Ergebnisse: In einigen Fällen kann tSNE zu irreführenden Ergebnissen führen, insbesondere bei Daten, die komplexe oder nicht lineare Beziehungen zwischen Variablen aufweisen.

Trotz dieser Einschränkungen bleibt tSNE ein wertvolles Werkzeug für die Visualisierung und Analyse hochdimensionaler Daten. Um mögliche Fallstricke zu vermeiden und die besten Ergebnisse zu erzielen, ist es wichtig, die Hyperparameter sorgfältig auszuwählen, die Ergebnisse mit anderen Techniken zu validieren und die Ergebnisse mit Vorsicht zu interpretieren.

Wie kann man tSNE in Python implementieren?

tSNE lässt sich mithilfe von wenigen Zeilen Code in Python umsetzen. Dazu definieren wir vier zufällige NumPy Arrays, die vier Dimensionen haben. Diese Dimensionen wollen wir auf zwei reduzieren. Dazu importieren wir aus Scikit-Learn die Funktion TSNE.

In dieser Funktion können wir die gewünschte Zahl der Komponenten, also der schlussendlichen Dimensionen definieren. Die Learning Rate soll automatisch bestimmt werden, außerdem setzen wir eine Perplexity von 3. Nach kurzer Wartezeit erhalten wir nun vier Numpy Arrays mit jeweils nur zwei Dimensionen, wie gewünscht. Gleichzeitig fällt auf, dass sich die Zahlenwerte um einiges vergrößert haben im Vergleich zu den Ausgangswerten. Dies war jedoch anzunehmen, da wie bereits erwähnt, lediglich versucht wird der Abstand zwischen den Datenpunkten gleich zu halten und nicht die globale Positionierung.

Das Beispiel wurde zu großen Teil aus der Dokumentation von Scikit-Learn zu tSNE übernommen.

Das solltest Du mitnehmen

  • Das t-distributed stochastic neighbor embedding (kurz: tSNE) ist ein unsupervised Algorithmus zur Dimensionsreduktion in großen Datensätzen.
  • Es wird benötigt, um Datensätze in der Dimension zu reduzieren und so mögliches Overfitting von Modellen zu verhindern.
  • Der Hauptunterschied zur Principal Component Analysis ist, dass es auch für nicht-lineare Zusammenhänge zwischen den Datenpunkten verwendet werden kann.

Andere Beiträge zum Thema tSNE

Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner