# t-Distributed Stochastic Neighbor Embedding (t-SNE)

t-SNE ist ein nicht lineares Verfahren zur Dimensionsreduktion, das besonders gut geeignet ist, um Daten in niedrigdimensionale Räume zu projizieren, während die relativen Entfernungen zwischen den Datenpunkten beibehalten werden.

Das grundlegende Vorgehen von t-SNE ist hier kurz beschrieben:

1. **Berechnung der Ähnlichkeitswahrscheinlichkeiten:** Wahrscheinlichkeiten ermitteln, mit denen Paare von Datenpunkten in den ursprünglichen und reduzierten Dimensionen ähnlich zueinander sind.
2. **Anpassung der Reduzierung:** Reduzierung der Daten anpassen, um die berechneten Wahrscheinlichkeiten zu maximieren.
3. **Projektion in niedrigdimensionalen Raum:** Daten in einen niedrigdimensionalen Raum projizieren, während die relativen Entfernungen zwischen den Datenpunkten beibehalten werden.

Im nachfolgenden Abschnitt werden die Vor- und Nachteile von t-SNE näher betrachtet:

**Vorteile:**

* **Erhaltung der lokalen Struktur:** t-SNE bewahrt die lokale Struktur der Datenpunkte in einem niedrigdimensionalen Raum, was eine bessere Visualisierung und Interpretation ermöglicht.
* **Geeignet für komplexe Datenstrukturen:** Aufgrund seiner nicht linearen Natur ist t-SNE gut geeignet, um komplexe Datenstrukturen zu erfassen, die von linearen Methoden möglicherweise nicht erfasst werden können.
* **Bewahrung der relativen Entfernungen:** Die Projektion der Datenpunkte in den reduzierten Raum versucht, die relativen Entfernungen zwischen den Punkten so gut wie möglich beizubehalten, was zu informativen Visualisierungen führt.

**Nachteile:**

* **Empfindlich gegenüber** [**Hyperparametern**](https://hahn-schickard.gitbook.io/embedml/2.8_neuronale_netze/2.8.3_training_neuronaler_netze_ablauf/2.8.3.2_modelltraining#hyperparameter-definieren)**:** Die Leistung von t-SNE ist stark von der Wahl der Hyperparameter abhängig, insbesondere der Perplexität, was die Optimierung schwierig machen kann.
* **Rechenintensiv:** Die Berechnung der Ähnlichkeitswahrscheinlichkeiten und die Anpassung der Reduzierung erfordern einen erheblichen Rechenaufwand, speziell bei großen Datensätzen.
* **Gefahr der Überinterpretation:** Bei der Interpretation von t-SNE-Ergebnissen besteht die Gefahr, dass die visuellen Unterschiede zwischen den Clustern überinterpretiert werden, vor allem, wenn die Dimensionalität stark reduziert ist.

In Abbildung 15 sind 10 verschiedene Klassen von hochdimensionalen Daten mit der Hilfe von t-SNE in einem zweidimensionalen Raum dargestellt. Ähnliche Datenpunkte liegen eng beieinander und Clusterstrukturen werden erkennbar.

![Abbildung 15: t-SNE Visualisierung 10 unterschiedlicher Klassen](https://1685596569-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtZj0m2hcxueXsQi9SHNM%2Fuploads%2Fgit-blob-64f457f25d48b852526c2c28f5c9a634b866c722%2Ftsne.svg?alt=media)

t-SNE ist besonders hilfreich für die Visualisierung von hochdimensionalen Daten in 2D oder 3D und trägt zur Verbesserung von Clustering- oder Klassifikationsalgorithmen bei.

Im folgenden Code wird der Iris-Datensatz mithilfe der t-SNE-Methode analysiert, wobei die Daten auf zwei Dimensionen reduziert werden, um eine anschauliche Visualisierung der Daten zu ermöglichen.

```python
from sklearn.datasets import load_iris
from sklearn.manifold import TSNE

# Laden des Iris-Datensatzes
iris = load_iris()

# Trainingsdaten und -label definieren
X,y = iris.data, iris.target

# t-SNE mit 2 Dimensionen
tsne = TSNE(n_components=2, random_state=0)
X_3d = tsne.fit_transform(X)
```

Mehr erfahren: [GeeksforGeeks/ML | T-distributed Stochastic Neighbor Embedding (t-SNE) Algorithm](https://www.geeksforgeeks.org/ml-t-distributed-stochastic-neighbor-embedding-t-sne-algorithm/), [DataCamp/Introduction to t-SNE](https://www.datacamp.com/tutorial/introduction-t-sne), [Medium/t-SNE clearly explained](https://towardsdatascience.com/t-sne-clearly-explained-d84c537f53a)
