master-degree-notes/Foundation of data science/notes/6 PCA.md

51 lines
4.2 KiB
Markdown

**Definizione**
- **Analisi dei Componenti Principali (PCA)** è un metodo di riduzione della dimensionalità utilizzato in statistica ed elaborazione dei dati.
- Lo scopo principale del PCA è trasformare una serie di variabili correlate in un numero inferiore di variabili non correlate, detti "Componenti Principali", che spiegano la maggior parte della varianza nel set di dati originale.
**Processo**
1. **Standardizzazione dei Dati:** I dati vengono standardizzati in modo che abbiano una media di 0 e deviazione standard di 1. $$Z = \frac{X-\mu}{\sigma}$$
2. **Calcolo della Matrice di Covarianza:**
- si calcola la matrice di covarianza $$\text{cov}(x_1, x_2) = \frac{\sum_{i=1}^{n} (x_{1i} - \bar{x_1})(x_{2i} - \bar{x_2})}{n-1}$$
- la covarianza può essere:
- **positiva:** se x1 aumenta, aumenta pure x2
- **negativa:** se x1 aumenta, x2 diminuisce
- **zero:** non c'è una relazione diretta tra x1 e x2
3. **Calcolo degli autovettori e degli autovalori:**
- gli autovettori rappresentano le direzioni principali (componenti principali) lungo cui i dati mostrano la massima variazione
- gli autovalori corrispondenti indicano la quantità di varianza "contenuta" in una direzione
4. **Selezione dei Componenti Principali:**
- Si selezionano i primi k autovettori corrispondenti ai più grandi autovalori (k < numero di variabili originali).
- k lo posso scegliere o sulla base delle dimensioni finali che voglio avere, o, guardando la "explained variance": la percentuale di varianza dei dati trattenuta da un determinato componente principale `explained_var = np.cumsum(eigenvalues) / np.sum(eigenvalues)`
- l'array in output contiene alla posizione i la percentuale di varianza che preserverò scegliendo i componenti (k = i)
5. **Trasformazione dei Dati:**
- I dati originali vengono proiettati lungo questi nuovi assi per ottenere le componenti principali.
**Componenti Principali**
- Le componenti principali sono combinazioni lineari delle variabili originali, ordinate in base alla quantità di varianza spiegata.
- La prima componente principale è quella che spiega la maggior parte della varianza nei dati e così via.
**Formula per le Componenti Principali**
$$Z_i = \sum_{j=1}^p X_j \cdot v_{ij}$$
dove
- $Z_i$ è il valore del i-esimo componente principale.
- $X_j$ sono i valori delle variabili originali.
- $v_{ij}$ sono gli elementi del j-esimo autovettore.
- **Visualizzazione dei Dati:** Per ridurre la dimensionalità e aiutare nella visualizzazione di dati multivariabili.
- **Riduzione del Rumore:** Per eliminare rumori presenti nei dati originali, in particolare quando i dati sono interrelati.
- **Preprocessing per Modelli Di Machine Learning:** Riduce la dimensionalità dei dati mantenendo al massimo il contenuto informativo.
**Considerazioni e limitazioni**
- **Interpretazione:** Ogni componente rappresenta una combinazione lineare di tutte le variabili originali, il che può rendere difficile l'interpretazione dei risultati.
- Il primo componente principale è quello che cattura la varianza maggiore nei dati.
- Per ottimizzare il processo, vogliamo che non ci sia correlazione tra gli assi risultanti dopo la proiezione dei dati. In altre parole, vogliamo che il secondo componente catturi la varianza **ortogonale** al primo componente, e così via.
- **Perdita di informazione:** stiamo letteralmente comprimendo i dati, cerchiamo di farlo perdendo meno informazione possibile ma qualcosa si perde. La scelta del numero k delle componenti principali richiede un equilibrio tra la varianza che si vuole preservare e la dimensionalità.
- In PCA si assume che l'informazione si trovi nella varianza delle feature: più alta è la varianza in una feature, più importanti saranno le informazioni contenute in quella feature.
- PCA assume che la relazione tra le variabili sia lineare. In caso contrario PCA potrebbe non funzionare bene.
- Può essere computazionalmente molto costoso per dataset grandi, soprattutto se il numero di variabili nel dataset è largo.
### Conclusione
Il PCA è uno strumento di analisi dati molto utile quando si ha a che fare con molti dati interrelati. Tuttavia, come per ogni tecnica statistica, richiede attenta considerazione del contesto applicativo e delle ipotesi di base.