t-SNE para mapas en 2D

Aprendizaje no supervisado en Python

Benjamin Wilson

Director of Research at lateral.io

t-SNE para mapas en 2D

  • t-SNE = "t-distributed stochastic neighbor embedding"
  • Proyecta muestras a 2D (o 3D)
  • La proyección preserva aproximadamente la vecindad
  • Útil para explorar datasets
Aprendizaje no supervisado en Python

t-SNE en el dataset Iris

  • Iris tiene 4 medidas, así que las muestras son 4D
  • t-SNE proyecta a 2D
  • t-SNE no sabía que había especies distintas
  • ... aun así, las separó en gran medida

diagrama de dispersión de t-SNE en el dataset Iris

Aprendizaje no supervisado en Python

Interpretar dispersiones de t-SNE

  • "versicolor" y "virginica" se distinguen peor entre sí
  • Consistente con la inercia de k-means: se puede defender 2 clústeres o 3

diagrama de dispersión de t-SNE en el dataset Iris

Aprendizaje no supervisado en Python

t-SNE en sklearn

  • Array 2D de 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 con las etiquetas de especie como número (0, 1 o 2)
print(species)
[0, 0, 1, 2, ..., 0]
Aprendizaje no supervisado en Python

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

diagrama de dispersión de t-SNE en el dataset Iris

Aprendizaje no supervisado en Python

t-SNE solo tiene fit_transform()

  • Tiene fit_transform()
  • Ajusta y transforma a la vez
  • No tiene fit() ni transform() por separado
  • No puede ampliar el mapa con datos nuevos
  • ¡Hay que empezar de cero cada vez!
Aprendizaje no supervisado en Python

Tasa de aprendizaje en t-SNE

  • Elige la tasa de aprendizaje para el dataset
  • Si es mala: los puntos se amontonan
  • Prueba valores entre 50 y 200
Aprendizaje no supervisado en Python

Cada vez es distinto

  • Las características de t-SNE cambian en cada ejecución
  • Vinos del Piamonte: 3 ejecuciones, ¡3 dispersiones distintas!
  • ... pero: Las variedades (=colores) mantienen posiciones relativas similares

 

3 diagramas de dispersión de t-SNE en el dataset de vinos, ejecutado 3 veces

Aprendizaje no supervisado en Python

¡Vamos a practicar!

Aprendizaje no supervisado en Python

Preparing Video For Download...