Introdução
t-SNE (t-Distributed Stochastic Neighbor Embedding) é uma técnica de redução de dimensionalidade usada para visualizar conjuntos de dados de alta dimensionalidade. Este tutorial guiará você pelo processo de usar o t-SNE para visualizar conjuntos de dados usando a biblioteca scikit-learn do Python.
Dicas da Máquina Virtual
Após o término da inicialização da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.
Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação de operações não pode ser automatizada devido a limitações no Jupyter Notebook.
Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para você.
Importar Bibliotecas
Começamos importando as bibliotecas necessárias para este tutorial.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import NullFormatter
from sklearn import manifold, datasets
from time import time
Criar Dados
Criaremos três conjuntos de dados diferentes para ilustrar o uso do t-SNE. O primeiro conjunto de dados será dois círculos concêntricos.
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
Visualizar Dados
Podemos visualizar o conjunto de dados de círculos concêntricos usando um gráfico de dispersão.
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")
Aplicar t-SNE aos Dados
Em seguida, aplicaremos t-SNE ao conjunto de dados de círculos concêntricos.
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()
Visualizar Resultados do t-SNE
Finalmente, podemos visualizar os resultados do t-SNE usando um gráfico de dispersão.
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")
Repetir para Outros Conjuntos de Dados
Podemos repetir as etapas 2-5 para outros conjuntos de dados, como uma curva em S e uma grade uniforme 2D.
Resumo
Este tutorial forneceu um guia passo a passo para usar o t-SNE para visualizar conjuntos de dados de alta dimensionalidade usando a biblioteca scikit-learn do Python. Aprendemos como criar dados, visualizar dados, aplicar t-SNE aos dados e visualizar os resultados do t-SNE.