Introduction
t-SNE (t-Distribué Embedding de Voisins Stochastiques) est une technique de réduction de dimension utilisée pour visualiser des ensembles de données à haute dimension. Ce tutoriel vous guidera tout au long du processus d'utilisation de t-SNE pour visualiser des ensembles de données à l'aide de la bibliothèque scikit-learn de Python.
Conseils sur la VM
Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.
Importation des bibliothèques
Nous commençons par importer les bibliothèques nécessaires pour ce tutoriel.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import NullFormatter
from sklearn import manifold, datasets
from time import time
Création des données
Nous allons créer trois ensembles de données différents pour illustrer l'utilisation de t-SNE. Le premier ensemble de données sera deux cercles concentriques.
n_samples = 150
n_components = 2
X, y = datasets.make_circles(
n_samples=n_samples, factor=0.5, noise=0.05, random_state=0
)
red = y == 0
green = y == 1
Visualisation des données
Nous pouvons visualiser l'ensemble de données de cercles concentriques à l'aide d'un graphique à points.
ax = plt.subplot(1, 1, 1)
ax.scatter(X[red, 0], X[red, 1], c="r")
ax.scatter(X[green, 0], X[green, 1], c="g")
ax.xaxis.set_major_formatter(NullFormatter())
ax.yaxis.set_major_formatter(NullFormatter())
plt.axis("tight")
Appliquer t-SNE aux données
Ensuite, nous allons appliquer t-SNE à l'ensemble de données de cercles concentriques.
t0 = time()
tsne = manifold.TSNE(
n_components=n_components,
init="random",
random_state=0,
perplexity=perplexity,
n_iter=300,
)
Y = tsne.fit_transform(X)
t1 = time()
Visualiser les résultats de t-SNE
Enfin, nous pouvons visualiser les résultats de t-SNE à l'aide d'un graphique à points.
ax = plt.subplot(1, 1, 1)
ax.scatter(Y[red, 0], Y[red, 1], c="r")
ax.scatter(Y[green, 0], Y[green, 1], c="g")
ax.xaxis.set_major_formatter(NullFormatter())
ax.yaxis.set_major_formatter(NullFormatter())
plt.axis("tight")
Répéter pour d'autres ensembles de données
Nous pouvons répéter les étapes 2 - 5 pour d'autres ensembles de données, tels qu'une courbe en S et une grille uniforme 2D.
Sommaire
Ce tutoriel a fourni un guide étape par étape pour utiliser t-SNE pour visualiser des ensembles de données à haute dimension à l'aide de la bibliothèque scikit-learn de Python. Nous avons appris à créer des données, à visualiser des données, à appliquer t-SNE à des données et à visualiser les résultats de t-SNE.