t-SNE pro 2D mapy

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

t-SNE pro 2D mapy

  • t-SNE = „t-distributed stochastic neighbor embedding“
  • Mapuje vzorky do 2D (nebo 3D) prostoru
  • Mapa přibližně zachovává blízkost vzorků
  • Skvělé pro prozkoumávání datových sad
Unsupervised Learning in Python

t-SNE na datové sadě Iris

  • Datová sada Iris má 4 měření, vzorky jsou tedy 4rozměrné
  • t-SNE mapuje vzorky do 2D prostoru
  • t-SNE nevědělo, že existují různé druhy
  • ... přesto je z velké části oddělilo

bodový graf t-SNE na datové sadě Iris

Unsupervised Learning in Python

Interpretace bodových grafů t-SNE

  • „versicolor“ a „virginica“ se od sebe rozlišují hůře
  • V souladu s grafem inertia u k-means: lze obhájit 2 i 3 shluky

bodový graf t-SNE na datové sadě Iris

Unsupervised Learning in Python

t-SNE ve sklearn

  • 2D pole NumPy 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]]
  • Seznam species udává druhy jako čísla (0, 1 nebo 2)
print(species)
[0, 0, 1, 2, ..., 0]
Unsupervised Learning in Python

t-SNE ve 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()

bodový graf t-SNE na datové sadě Iris

Unsupervised Learning in Python

t-SNE má pouze fit_transform()

  • Má metodu fit_transform()
  • Současně modelu učí a transformuje data
  • Nemá samostatné metody fit() ani transform()
  • Mapu nelze rozšířit o nové vzorky
  • Vždy je nutné začít znovu!
Unsupervised Learning in Python

Learning rate u t-SNE

  • Zvolte learning rate podle datové sady
  • Špatná volba: body se shlukují
  • Zkuste hodnoty mezi 50 a 200
Unsupervised Learning in Python

Pokaždé jiný výsledek

  • Příznaky t-SNE jsou pokaždé jiné
  • Piedmontská vína, 3 běhy, 3 různé bodové grafy!
  • ... přesto: odrůdy vín (= barvy) mají vůči sobě stejnou polohu

 

3 bodové grafy t-SNE na datové sadě vín ve 3 různých bězích

Unsupervised Learning in Python

Pojďme cvičit!

Unsupervised Learning in Python

Preparing Video For Download...