t-SNE dla map 2-wymiarowych

Uczenie nienadzorowane w Pythonie

Benjamin Wilson

Director of Research at lateral.io

t-SNE dla map 2-wymiarowych

  • t-SNE = „t-distributed stochastic neighbor embedding"
  • Mapuje próbki do przestrzeni 2D (lub 3D)
  • Mapa przybliżenie zachowuje bliskość próbek
  • Przydatne do eksploracji zbiorów danych
Uczenie nienadzorowane w Pythonie

t-SNE na zbiorze Iris

  • Zbiór Iris ma 4 pomiary, więc próbki są 4-wymiarowe
  • t-SNE mapuje próbki do przestrzeni 2D
  • t-SNE nie wiedział o istnieniu różnych gatunków
  • ... a mimo to zachował gatunki w większości oddzielnie

wykres punktowy t-SNE na zbiorze Iris

Uczenie nienadzorowane w Pythonie

Interpretacja wykresów punktowych t-SNE

  • „versicolor" i „virginica" trudniejsze do odróżnienia od siebie
  • Zgodne z wykresem bezwładności k-means: można argumentować za 2 lub 3 klastrami

wykres punktowy t-SNE na zbiorze Iris

Uczenie nienadzorowane w Pythonie

t-SNE w sklearn

  • Tablica 2D 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]]
  • Lista species z gatunkami jako liczby (0, 1 lub 2)
print(species)
[0, 0, 1, 2, ..., 0]
Uczenie nienadzorowane w Pythonie

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

wykres punktowy t-SNE na zbiorze Iris

Uczenie nienadzorowane w Pythonie

t-SNE ma tylko fit_transform()

  • Posiada metodę fit_transform()
  • Jednocześnie dopasowuje model i transformuje dane
  • Nie ma osobnych metod fit() ani transform()
  • Nie można rozszerzyć mapy o nowe próbki
  • Za każdym razem trzeba zaczynać od nowa!
Uczenie nienadzorowane w Pythonie

Współczynnik uczenia t-SNE

  • Należy dobrać współczynnik uczenia dla zbioru danych
  • Zły dobór: punkty skupiają się razem
  • Wypróbować wartości od 50 do 200
Uczenie nienadzorowane w Pythonie

Za każdym razem inny wynik

  • Cechy t-SNE są za każdym razem inne
  • Wina z Piemontu, 3 uruchomienia, 3 różne wykresy punktowe!
  • ... jednak: odmiany win (= kolory) zachowują te same położenia względem siebie

 

3 wykresy punktowe t-SNE na zbiorze win wykonane 3 razy

Uczenie nienadzorowane w Pythonie

Czas na ćwiczenia!

Uczenie nienadzorowane w Pythonie

Preparing Video For Download...