Scopri come t-SNE visualizza i dati ad alta dimensionalità. Impara a rivelare i cluster nelle caratteristiche di visione artificiale per Ultralytics e ottimizza i modelli di machine learning.
Il t-distributed Stochastic Neighbor Embedding (t-SNE) è un metodo statistico per visualizzare dati ad alta dimensionalità assegnando a ciascun punto dati una posizione in una mappa bidimensionale o tridimensionale. Questa tecnica, una forma di riduzione della dimensionalità non lineare, è ampiamente utilizzata nell'apprendimento automatico per esplorare set di dati che contengono centinaia o migliaia di caratteristiche. A differenza dei metodi lineari che si concentrano sulla conservazione delle strutture globali, il t-SNE eccelle nel mantenere vicine le istanze simili, rivelando cluster e varietà locali che altrimenti potrebbero rimanere nascosti. Questo lo rende uno strumento prezioso per tutto, dalla ricerca genomica alla comprensione della logica interna delle reti neurali profonde.
L'idea alla base del t-SNE consiste nel convertire le somiglianze tra i punti dati in probabilità congiunte. Nello spazio originario ad alta dimensionalità, l'algoritmo misura la somiglianza tra i punti utilizzando una distribuzione gaussiana. Se due punti sono vicini, hanno un'alta probabilità di essere "vicini". L'algoritmo quindi tenta di mappare questi punti in uno spazio a dimensione inferiore (di solito 2D o 3D) mantenendo queste probabilità.
Per ottenere questo risultato, definisce una distribuzione di probabilità simile nella mappa a dimensione inferiore utilizzando una distribuzione t di Student . Questa distribuzione specifica ha code più pesanti rispetto a una distribuzione gaussiana normale, il che aiuta ad affrontare il "problema dell'affollamento", un fenomeno in cui i punti nello spazio ad alta dimensione tendono a collassare l'uno sull'altro quando vengono proiettati verso il basso. Allontanando i punti dissimili nella visualizzazione, t-SNE crea cluster distinti e leggibili che rivelano la struttura sottostante dei dati di addestramento. L'algoritmo apprendono efficacemente la migliore rappresentazione della mappa attraverso l' apprendimento non supervisionato, riducendo al minimo la divergenza tra le distribuzioni di probabilità ad alta e bassa dimensionalità.
t-SNE è uno strumento standard per l' analisi esplorativa dei dati (EDA) e la diagnostica dei modelli. Consente agli ingegneri di "vedere" ciò che un modello sta apprendendo.
È importante distinguere t-SNE dall' analisi delle componenti principali (PCA), un'altra tecnica di riduzione comune.
Una best practice comune nella pre-elaborazione dei dati consiste nell'utilizzare prima la PCA per ridurre i dati a una dimensione gestibile (ad esempio, 50 dimensioni) e poi applicare la t-SNE per la visualizzazione finale . Questo approccio ibrido riduce il carico computazionale e filtra il rumore che potrebbe degradare il risultato della t-SNE .
L'esempio seguente mostra come utilizzare scikit-learn applicare t-SNE a un set di dati sintetici. Questo
flusso di lavoro rispecchia il modo in cui si potrebbero visualizzare le caratteristiche estratte da un modello di deep learning.
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.manifold import TSNE
# Generate synthetic high-dimensional data (100 samples, 50 features, 3 centers)
X, y = make_blobs(n_samples=100, n_features=50, centers=3, random_state=42)
# Apply t-SNE to reduce dimensions from 50 to 2
# 'perplexity' balances local vs global aspects of the data
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_embedded = tsne.fit_transform(X)
# Plot the result to visualize the 3 distinct clusters
plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=y)
plt.title("t-SNE Projection of High-Dimensional Data")
plt.show()
Sebbene potente, t-SNE richiede un'attenta messa a punto degli iperparametri. Il parametro "perplessità" è fondamentale; essenzialmente ipotizza quanti vicini ravvicinati ha ogni punto. Impostarlo su un valore troppo basso o troppo alto può portare a visualizzazioni fuorvianti. Inoltre, t-SNE non preserva bene le distanze globali, il che significa che la distanza tra due cluster distinti sul grafico non riflette necessariamente la loro distanza fisica nello spazio originale. Nonostante queste sfumature, rimane una tecnica fondamentale per convalidare le architetture di visione artificiale (CV) e comprendere set di dati complessi. Gli utenti che gestiscono set di dati su larga scala spesso sfruttano Ultralytics per organizzare i propri dati prima di eseguire tali analisi approfondite.