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.