Scopri come la riduzione della dimensionalità ottimizza i flussi di lavoro ML. Esplora tecniche come PCA e t-SNE per migliorare le prestazioni Ultralytics e la visualizzazione dei dati.
La riduzione della dimensionalità è una tecnica trasformativa nel machine learning (ML) e nella scienza dei dati utilizzata per ridurre il numero di variabili di input, spesso denominate caratteristiche o dimensioni, in un set di dati, conservando al contempo le informazioni più critiche. Nell'era dei big data, i set di dati contengono spesso migliaia di variabili, portando a un fenomeno noto come maledizione della dimensionalità. Questo fenomeno può rendere l' addestramento dei modelli computazionalmente oneroso, soggetto a sovradattamento e difficile da interpretare. Proiettando i dati ad alta dimensionalità in uno spazio a dimensionalità inferiore, i professionisti possono migliorare l'efficienza, la visualizzazione e le prestazioni predittive.
Ridurre la complessità dei dati è un passo fondamentale nelle pipeline di pre-elaborazione dei dati. Offre diversi vantaggi tangibili per la creazione di sistemi di intelligenza artificiale (AI) robusti :
I metodi per la riduzione delle dimensioni sono generalmente classificati in base al fatto che preservino la struttura lineare globale o la varietà non lineare locale dei dati.
La tecnica lineare più consolidata è l' analisi delle componenti principali (PCA). La PCA funziona identificando le "componenti principali", ovvero assi ortogonali che catturano la massima varianza nei dati. Proietta i dati originali su questi nuovi assi, scartando efficacemente le dimensioni che contribuiscono con poche informazioni. Si tratta di un elemento fondamentale nei flussi di lavoro di apprendimento non supervisionato.
Per strutture di dati complesse, come immagini o incorporamenti di testo, sono spesso necessari metodi non lineari. Tecniche come t-Distributed Stochastic Neighbor Embedding (t-SNE) e UMAP (Uniform Manifold Approximation and Projection) eccellono nel preservare i vicinati locali, rendendole ideali per la visualizzazione di cluster ad alta dimensionalità. Inoltre, gli autoencoder sono reti neurali addestrate a comprimere gli input in una rappresentazione dello spazio latente e a ricostruirli, apprendendo in modo efficace una codifica compatta dei dati.
La riduzione della dimensionalità è fondamentale in vari ambiti del deep learning (DL):
È importante distinguere questo concetto dalla selezione delle caratteristiche, poiché entrambi raggiungono obiettivi simili attraverso meccanismi diversi:
L'esempio seguente illustra come prendere un output ad alta dimensione (che simula un vettore di incorporamento di immagini) e ridurlo utilizzando la PCA. Si tratta di un flusso di lavoro comune quando si visualizza come un modello come YOLO26 raggruppa classi simili.
import numpy as np
from sklearn.decomposition import PCA
# Simulate high-dimensional embeddings (e.g., 10 images, 512 features each)
# In a real workflow, these would come from a model like YOLO26n
embeddings = np.random.rand(10, 512)
# Initialize PCA to reduce from 512 dimensions to 2
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(embeddings)
# Output shape is now (10, 2), ready for 2D plotting
print(f"Original shape: {embeddings.shape}") # (10, 512)
print(f"Reduced shape: {reduced_data.shape}") # (10, 2)