Dimensionality Reduction

[dimensionaliti ridùction]

Tecniche per ridurre il numero di feature di un dataset preservandone la struttura. Utile per visualizzare, comprimere, accelerare modelli.

La riduzione di dimensionalità è l'arte di prendere dati con tante feature (centinaia, migliaia) e comprimerli in pochi numeri preservando l'informazione importante.

Perché serve:

  • Visualizzazione: occhio umano vede 2D-3D. Per guardare un dataset da 100 dimensioni servono trucchi.
  • Velocità: meno feature = meno calcolo, modelli più veloci.
  • Curse of dimensionality: in alta dimensionalità tutto diventa lontano, distanze perdono senso. Comprimere aiuta.
  • Denoising: spesso le dimensioni in più sono rumore. Comprimere = pulire.

Tecniche principali:

  • PCA (Principal Component Analysis): lineare. Trova le direzioni di massima varianza. Veloce, classica, da decenni. Fai sempre PCA prima di altre cose, anche solo per esplorare.
  • t-SNE: non-lineare. Bravissima a preservare cluster locali. Standard per visualizzare dataset complessi (immagini, testi). Lenta, parametri delicati.
  • UMAP: alternativa a t-SNE, più veloce, preserva sia struttura locale che globale. Negli ultimi anni ha quasi soppiantato t-SNE.
  • Autoencoder: rete neurale che impara compressione/decompressione. Vedi autoencoder.
  • Random projection: proiezione casuale. Sorprendentemente efficace per certi compiti.

Caso d'uso classico: hai 1024 embedding di parole. Vuoi vedere se i sinonimi si raggruppano. Applichi UMAP a 2D, fai un grafico, vedi cluster. Bingo, capisci che il modello ha imparato.

Trappola: la riduzione di dimensionalità deforma sempre qualcosa. Dataset apparentemente sensato in 2D potrebbe essere artefatto della tecnica usata. Cambiare iperparametri produce viste diverse. Va presa con grano di sale.