t-SNE pentru hărți bidimensionale

Învățare nesupervizată în Python

Benjamin Wilson

Director of Research at lateral.io

t-SNE pentru hărți bidimensionale

  • t-SNE = „t-distributed stochastic neighbor embedding"
  • Mapează eșantioanele în spațiu 2D (sau 3D)
  • Harta păstrează aproximativ apropierea dintre eșantioane
  • Excelent pentru inspecția seturilor de date
Învățare nesupervizată în Python

t-SNE pe setul de date Iris

  • Setul de date Iris are 4 măsurători, deci eșantioanele sunt 4-dimensionale
  • t-SNE mapează eșantioanele în spațiu 2D
  • t-SNE nu știa că există specii diferite
  • ... totuși a separat speciile în mare parte

grafic scatter t-SNE aplicat pe setul de date Iris

Învățare nesupervizată în Python

Interpretarea graficelor scatter t-SNE

  • „versicolor" și „virginica" sunt mai greu de diferențiat
  • Consistent cu graficul inerției k-means: se pot argumenta 2 sau 3 clustere

grafic scatter t-SNE aplicat pe setul de date Iris

Învățare nesupervizată în Python

t-SNE în sklearn

  • Array NumPy 2D 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]]
  • Lista species cu etichetele speciilor ca număr (0, 1 sau 2)
print(species)
[0, 0, 1, 2, ..., 0]
Învățare nesupervizată în Python

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

grafic scatter t-SNE aplicat pe setul de date Iris

Învățare nesupervizată în Python

t-SNE are doar fit_transform()

  • Are o metodă fit_transform()
  • Antrenează modelul și transformă datele simultan
  • Nu are metode separate fit() sau transform()
  • Nu poate extinde harta cu noi eșantioane
  • Trebuie reluat de la zero de fiecare dată!
Învățare nesupervizată în Python

Rata de învățare t-SNE

  • Alegeți rata de învățare pentru set de date
  • Alegere greșită: punctele se aglomerează
  • Încercați valori între 50 și 200
Învățare nesupervizată în Python

Diferit la fiecare rulare

  • Caracteristicile t-SNE diferă la fiecare rulare
  • Vinuri din Piemont, 3 rulări, 3 grafice diferite!
  • ... totuși: soiurile de vin (=culori) au aceeași poziție relativă

 

3 grafice scatter t-SNE aplicate pe setul de date cu vinuri, 3 rulări diferite

Învățare nesupervizată în Python

Să exersăm!

Învățare nesupervizată în Python

Preparing Video For Download...