t-SNE für zweidimensionale Repräsentationen

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

t-SNE für zweidimensionale Repräsentationen

  • t-SNE = "t-distributed stochastic neighbor embedding"
  • Bildet Proben auf zwei oder drei Dimensionen ab
  • Die Darstellung behält die Abstände zwischen den Proben ungefähr bei.
  • Großartig zum überprüfen von Datensätzen
Unsupervised Learning in Python

t-SNE auf dem Iris-Datensatz

  • Der Iris-Datensatz hat vier Messungen, also sind die Proben vierdimensional.
  • t-SNE ordnet Proben einem zweidimensionalen Raum zu.
  • t-SNE wusste vorab nicht, dass es verschiedene Arten gibt.
  • ... aber die Arten wurden trotzdem größtenteils getrennt gehalten

Streudiagramm von t-SNE, erstellt anhand des Iris-Datensatzes

Unsupervised Learning in Python

Interpretation von t-SNE-Streudiagrammen

  • „versicolor“ und „virginica“ sind schwerer voneinander zu unterscheiden.
  • Passend zum k-Means-Inertia-Plot: könnte für zwei oder für drei Cluster sprechen

Streudiagramm von t-SNE, erstellt anhand des Iris-Datensatzes

Unsupervised Learning in Python

t-SNE in sklearn

  • 2D-NumPy-Array samples
print(samples)
[[ 5.   3.3  1.4  0.2]
 [ 5.   3.5  1.3  0.3]
 [ 4.9  2.4  3.3  1. ]
 [ 6.3  2.8  5.1  1.5]
 ...
 [ 4.9  3.1  1.5  0.1]]
  • Liste species mit Label-Arten als Nummer (0, 1 oder 2)
print(species)
[0, 0, 1, 2, ..., 0]
Unsupervised Learning in Python

t-SNE in sklearn

import matplotlib.pyplot as plt
from sklearn.manifold import TSNE
model = TSNE(learning_rate=100)

transformed = model.fit_transform(samples) xs = transformed[:,0] ys = transformed[:,1] plt.scatter(xs, ys, c=species) plt.show()

Streudiagramm von t-SNE, erstellt anhand des Iris-Datensatzes

Unsupervised Learning in Python

t-SNE: ausschließlich fit_transform()

  • Hat eine fit_transform()-Methode
  • Passt das Modell an und wandelt die Daten gleichzeitig um
  • Hat keine separaten Methoden für fit() oder transform().
  • Die Visualisierung kann nicht erweitert werden, um neue Datenproben einzubeziehen.
  • Man muss jedes Mal von vorne beginnen!
Unsupervised Learning in Python

t-SNE-Lernrate

  • Wähle die Lernrate für den Datensatz aus.
  • Falsche Wahl: Punkte dicht gedrängt
  • Probiere Werte zwischen 50 und 200 aus.
Unsupervised Learning in Python

Jedes Mal anders

  • Die t-SNE-Merkmale sind jedes Mal anders.
  • Weine aus dem Piemont, drei Durchläufe, drei verschiedene Streudiagramme!
  • ... aber: Die Weinsorten (=Farben) haben die gleiche relative Position zueinander.

 

3 Streudiagramme von t-SNE, die zu drei verschiedenen Zeitpunkten mit dem Weindatensatz erstellt wurden

Unsupervised Learning in Python

Lass uns üben!

Unsupervised Learning in Python

Preparing Video For Download...