t-SNE voor 2D-kaarten

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

t-SNE voor 2D-kaarten

  • t-SNE = "t-distributed stochastic neighbor embedding"
  • Mapt samples naar 2D-ruimte (of 3D)
  • Kaart behoudt ongeveer nabijheid van samples
  • Handig om datasets te verkennen
Unsupervised Learning in Python

t-SNE op de Iris-dataset

  • Iris-dataset heeft 4 metingen, dus samples zijn 4D
  • t-SNE mapt samples naar 2D
  • t-SNE wist niet dat er verschillende soorten waren
  • ... maar hield de soorten grotendeels gescheiden

scatterplot van t-SNE op de Iris-dataset

Unsupervised Learning in Python

t-SNE-scatterplots interpreteren

  • "versicolor" en "virginica" zijn lastiger te onderscheiden
  • Consistent met k-means-inertiagrafiek: je kunt 2 of 3 clusters bepleiten

scatterplot van t-SNE op de Iris-dataset

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]]
  • Lijst species met labels als nummers (0, 1 of 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()

scatterplot van t-SNE op de Iris-dataset

Unsupervised Learning in Python

t-SNE heeft alleen fit_transform()

  • Heeft een fit_transform()-methode
  • Past het model en transformeert tegelijk
  • Geen aparte fit() of transform()
  • Kan de kaart niet uitbreiden met nieuwe samples
  • Steeds opnieuw beginnen!
Unsupervised Learning in Python

Learning rate voor t-SNE

  • Kies een learning rate per dataset
  • Foute keuze: punten klonteren samen
  • Probeer waardes tussen 50 en 200
Unsupervised Learning in Python

Elke keer anders

  • t-SNE-features verschillen elke run
  • Piëmont-wijnen: 3 runs, 3 verschillende scatterplots!
  • ... maar: de rassen (=kleuren) hebben dezelfde relatieve posities

 

3 scatterplots van t-SNE op het wijnendataset, 3 keer uitgevoerd

Unsupervised Learning in Python

Laten we oefenen!

Unsupervised Learning in Python

Preparing Video For Download...