t-SNE för tvådimensionella kartor

Oövervakad inlärning i Python

Benjamin Wilson

Director of Research at lateral.io

t-SNE för tvådimensionella kartor

  • t-SNE = "t-distributed stochastic neighbor embedding"
  • Mappar urval till 2D-rymd (eller 3D)
  • Kartan bevarar i stort sett närheten mellan urval
  • Utmärkt för att inspektera datamängder
Oövervakad inlärning i Python

t-SNE på Iris-datamängden

  • Iris-datamängden har 4 mätvärden, så urval är 4-dimensionella
  • t-SNE mappar urval till 2D-rymd
  • t-SNE visste inte att det fanns olika arter
  • ... men höll ändå arterna i stort sett åtskilda

spridningsdiagram för t-SNE utfört på Iris-datamängden

Oövervakad inlärning i Python

Tolka t-SNE-spridningsdiagram

  • "versicolor" and "virginica" harder to distinguish from one another
  • Consistent with k-means inertia plot: could argue for 2 clusters, or for 3

scatter plot of t-SNE performed on Iris dataset

Oövervakad inlärning i Python

t-SNE i 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]]
  • Lista species med arternas etiketter som tal (0, 1 eller 2)
print(species)
[0, 0, 1, 2, ..., 0]
Oövervakad inlärning i Python

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

spridningsdiagram för t-SNE utfört på Iris-datamängden

Oövervakad inlärning i Python

t-SNE har bara fit_transform()

  • Har en fit_transform()-metod
  • Anpassar modellen och transformerar data samtidigt
  • Har ingen separat fit()- eller transform()-metod
  • Kan inte utöka kartan med nya dataurval
  • Måste börja om varje gång!
Oövervakad inlärning i Python

t-SNE:s inlärningshastighet

  • Välj inlärningshastighet för datamängden
  • Fel val: punkterna klumpar ihop sig
  • Testa värden mellan 50 och 200
Oövervakad inlärning i Python

Olika varje gång

  • t-SNE ger olika resultat varje gång
  • Piemontviner, 3 körningar, 3 olika spridningsdiagram!
  • ... men: vinsorterna (=färgerna) har samma position i förhållande till varandra

 

3 spridningsdiagram för t-SNE utfört på vinsdatamängden vid 3 olika tillfällen

Oövervakad inlärning i Python

Nu kör vi en övning!

Oövervakad inlärning i Python

Preparing Video For Download...