T Sne.pt

T Sne.pt

Atualizado 2026-02-24 Leitura 2 min
Resumo
  • O t-SNE preserva as vizinhanças locais ao corresponder similaridades de pares entre alta e baixa dimensão.
  • É otimizado para visualização e frequentemente revela a estrutura de clusters com clareza.
  • Os resultados dependem de perplexity, taxa de aprendizagem e inicialização aleatória, então verificações de estabilidade são importantes.

Intuição #

O t-SNE prioriza quem está perto de quem, não distâncias globais fiéis. É melhor interpretado como um mapa de vizinhança para análise exploratória.

Explicação Detalhada #

1. Intuição #

  • Construir similaridades de pares (P_{ij}) no espaço original (kernel Gaussiano por ponto, controlado pelo perplexity).
  • Definir similaridades (Q_{ij}) no espaço de baixa dimensão usando uma distribuição Student-t de cauda pesada.
  • Minimizar a divergência de Kullback–Leibler (\mathrm{KL}(P \parallel Q)) via descida de gradiente.
  • A distribuição de cauda pesada evita o efeito de aglomeração ao dar a pontos distantes influência não desprezível.

2. Exemplo em Python #

import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
from sklearn.datasets import load_digits
from sklearn.manifold import TSNE
from sklearn.preprocessing import StandardScaler

X, y = load_digits(return_X_y=True)
X = StandardScaler().fit_transform(X)

model = TSNE(n_components=2, perplexity=30, learning_rate=200, random_state=0)
emb = model.fit_transform(X)

plt.figure(figsize=(8, 6))
plt.scatter(emb[:, 0], emb[:, 1], c=y, cmap="tab10", s=15)
plt.colorbar(label="digit")
plt.title("t-SNE embedding of handwritten digits")
plt.tight_layout()
plt.show()

Exemplo t-SNE


3. Hiperparâmetros #

  • perplexity: contagem efetiva de vizinhos (tipicamente 5-50). Valores mais altos capturam mais estrutura global.
  • learning_rate: muito baixo prende a otimização, muito alto faz os pontos se dispersarem; 100-1000 geralmente funciona.
  • n_iter: pelo menos 1000 iterações mais uma fase de aquecimento early_exaggeration.

4. Dicas #

  • Padronize as características e remova duplicatas; o t-SNE é sensível à escala e ao ruído.
  • Para grandes conjuntos de dados, use Barnes-Hut (method="barnes_hut") ou implementações aceleradas por FFT (openTSNE, FIt-SNE).
  • Interprete as distâncias qualitativamente; o t-SNE preserva vizinhos locais mas não a geometria global.

5. Notas #

  • O t-SNE é melhor para inspeção visual do que para modelagem subsequente.
  • Execute-o várias vezes com diferentes seeds/perplexities para confirmar que os padrões são estáveis.
  • Considere UMAP quando precisar de incorporações mais rápidas ou um transformador definido para novas amostras.