t-SNE для 2-вимірних карт

Наглядове навчання в Python

Benjamin Wilson

Director of Research at lateral.io

t-SNE для 2-вимірних карт

  • t-SNE = «t-distributed stochastic neighbor embedding»
  • Відображає вибірки у 2D-простір (або 3D)
  • Відображення приблизно зберігає близькість вибірок
  • Чудово для огляду наборів даних
Наглядове навчання в Python

t-SNE для набору даних iris

  • Набір даних Iris має 4 вимірювання, тож вибірки 4-вимірні
  • t-SNE відображає вибірки у 2D-простір
  • t-SNE «не знала» про різні види
  • ... проте здебільшого розділила види

точкова діаграма t-SNE для набору Iris

Наглядове навчання в Python

Інтерпретація точкових діаграм t-SNE

  • «versicolor» і «virginica» важче розрізнити між собою
  • Узгоджується з графіком інерції k-means: можна обґрунтувати 2 або 3 кластери

точкова діаграма t-SNE для набору Iris

Наглядове навчання в Python

t-SNE у sklearn

  • 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]]
  • Список species з мітками видів як числа (0, 1 або 2)
print(species)
[0, 0, 1, 2, ..., 0]
Наглядове навчання в Python

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

точкова діаграма t-SNE для набору Iris

Наглядове навчання в Python

У t-SNE лише fit_transform()

  • Має метод fit_transform()
  • Одночасно навчає модель і перетворює дані
  • Немає окремих методів fit() чи transform()
  • Неможливо розширити карту новими вибірками
  • Щоразу треба починати спочатку!
Наглядове навчання в Python

Швидкість навчання в t-SNE

  • Доберіть швидкість навчання під набір даних
  • Хибний вибір: точки злипаються
  • Спробуйте значення між 50 і 200
Наглядове навчання в Python

Щоразу по-іншому

  • Ознаки t-SNE щоразу відрізняються
  • Вина П'ємонту: 3 запуски — 3 різні діаграми розсіяння!
  • ... однак: сорти вин (=кольори) мають ту саму відносну позицію

 

3 точкові діаграми t-SNE для набору вин, виконані тричі

Наглядове навчання в Python

Давайте потренуємось!

Наглядове навчання в Python

Preparing Video For Download...