Analisi Discriminante Lineare (LDA)¶
La Storia Dietro la Matematica¶
La storia dell'Analisi Discriminante Lineare inizia nel 1936, nell'improbabile contesto della ricerca agricola. Ronald Aylmer Fisher (1890-1962), lo statistico e genetista britannico che abbiamo già incontrato, lavorava alla Rothamsted Experimental Station vicino a Londra.
Fisher affrontava un problema tassonomico pratico: date le misurazioni di fiori di iris (lunghezza sepalo, larghezza sepalo, lunghezza petalo, larghezza petalo), poteva sviluppare un metodo matematico per classificarli in specie diverse (setosa, versicolor, virginica)?
Non era solo curiosità botanica. La domanda più ampia era fondamentale per tutte le scienze: Come possiamo usare misurazioni multiple per distinguere sistematicamente tra gruppi?
Nel suo articolo del 1936 "The Use of Multiple Measurements in Taxonomic Problems," Fisher introdusse quella che sarebbe diventata una delle tecniche più influenti in statistica e machine learning: l'Analisi Discriminante Lineare.
Intuizioni chiave di Fisher:
- Riduzione dimensionale: Invece di lavorare con tutte le misurazioni separatamente, trova una singola combinazione lineare che separa meglio i gruppi
- Massimizzare la separazione: Scegli la combinazione che rende i gruppi il più distanti possibile relativamente alla loro variazione interna
- Proiezione ottimale: Proietta dati ad alta dimensione su uno spazio a dimensione inferiore preservando la separazione tra classi
Fisher dimostrò che questa direzione ottimale poteva essere trovata risolvendo un problema agli autovalori — una connessione notevole tra statistica e algebra lineare.
Contesto storico: Fisher sviluppò l'LDA in parallelo al suo lavoro sulle Statistiche Basate su Likelihood e l'ANOVA. Era profondamente interessato a trovare procedure ottimali — metodi che estraessero la massima informazione dai dati. L'LDA era ottimale in un senso preciso: massimizzava il rapporto tra varianza tra classi e varianza entro le classi.
Oltre la botanica: Sebbene l'applicazione originale di Fisher fosse classificare fiori di iris, l'LDA si diffuse rapidamente in altri campi: - 1940-50: Riconoscimento facciale e riconoscimento caratteri (computer vision primitiva) - 1960-70: Diagnosi medica, discriminazione tra stati di malattia - 1980-90: Finanza (credit scoring), marketing (segmentazione clienti) - 2000-presente: Machine learning, genomica, neuroimaging
Significato moderno: Sebbene sviluppata quasi 90 anni fa, l'LDA rimane ampiamente utilizzata oggi. È apprezzata per la sua eleganza matematica, efficienza computazionale e forti prestazioni quando le sue assunzioni valgono. È anche un concetto fondamentale: comprendere l'LDA è essenziale per cogliere metodi più avanzati come l'Analisi Discriminante Quadratica (QDA), l'Analisi Discriminante Regolarizzata (RDA), e persino moderne architetture di deep learning.
Perché È Importante¶
L'Analisi Discriminante Lineare è una tecnica fondamentale per classificazione supervisionata e riduzione dimensionale. È utilizzata in:
- Medicina: Diagnosi di malattie da biomarcatori, stratificazione del rischio pazienti
- Biologia: Classificazione di specie, analisi dati genomici
- Computer Vision: Riconoscimento facciale, rilevamento oggetti (specialmente metodi primitivi)
- Finanza: Credit scoring, predizione fallimenti, rilevamento frodi
- Marketing: Segmentazione clienti, predizione abbandono
- Riconoscimento Vocale: Classificazione fonemi
- Chemiometria: Identificazione composti chimici da spettroscopia
- Neuroimaging: Classificazione stati cerebrali da dati fMRI/EEG
- Controllo Qualità: Classificazione difetti prodotti
- Biometria: Riconoscimento impronte digitali e iris
L'LDA fornisce sia un classificatore (assegna nuove osservazioni a classi) sia un estrattore di caratteristiche (trova rappresentazioni a bassa dimensione informative), rendendola versatile e interpretabile.
Prerequisiti¶
- Algebra lineare (Operazioni con Matrici, Autovalori e Autovettori)
- Probabilità base (Variabili Casuali, Probabilità Condizionale)
- Distribuzione Gaussiana (distribuzione normale multivariata)
- Concetti della matrice di Covarianza
- Varianza e Valore Atteso
- Teorema di Bayes
Concetti Fondamentali¶
Costruiremo l'LDA dai primi principi, partendo dal caso più semplice e generalizzando.
Il Problema di Classificazione¶
Abbiamo: - Dati di training: \(n\) osservazioni \(\{(\mathbf{x}_1, y_1), (\mathbf{x}_2, y_2), \ldots, (\mathbf{x}_n, y_n)\}\) - \(\mathbf{x}_i \in \mathbb{R}^p\): vettore di caratteristiche (es., \(p\) misurazioni) - \(y_i \in \{1, 2, \ldots, K\}\): etichetta di classe (\(K\) classi)
Obiettivo: Data una nuova osservazione \(\mathbf{x}_{\text{new}}\), predire la sua classe \(y_{\text{new}}\).
Approccio LDA: Assumere che ogni classe abbia una distribuzione Gaussiana multivariata con: - Medie diverse \(\boldsymbol{\mu}_k\) per ogni classe \(k\) - Matrice di covarianza condivisa \(\boldsymbol{\Sigma}\) (uguale per tutte le classi)
Questa assunzione è ciò che rende il discriminante lineare (vedremo perché).
LDA a Due Classi: Il Caso Più Semplice¶
Iniziamo con \(K = 2\) classi per costruire l'intuizione.
Notazione: - Classe 1: \(n_1\) osservazioni con media \(\boldsymbol{\mu}_1\) - Classe 2: \(n_2\) osservazioni con media \(\boldsymbol{\mu}_2\) - Covarianza comune: \(\boldsymbol{\Sigma}\)
Domanda: Vogliamo proiettare i dati \(p\)-dimensionali su una linea 1-dimensionale (direzione \(\mathbf{w}\)). Quale direzione \(\mathbf{w}\) separa meglio le due classi?
Proiezione: La proiezione di \(\mathbf{x}\) su \(\mathbf{w}\) è lo scalare
Dopo la proiezione: - Media classe 1: \(m_1 = \mathbf{w}^T \boldsymbol{\mu}_1\) - Media classe 2: \(m_2 = \mathbf{w}^T \boldsymbol{\mu}_2\) - Varianza proiettata: \(s^2 = \mathbf{w}^T \boldsymbol{\Sigma} \mathbf{w}\)
Idea di Fisher: Vogliamo che le medie proiettate siano distanti e le varianze proiettate siano piccole.
Formalmente: Massimizzare il rapporto
Discriminante Lineare di Fisher: Derivazione¶
Dispersione tra classi (separazione delle medie):
Usando \(a^2 = a^T a\) per scalari:
Definisci matrice di dispersione tra classi:
Quindi: \(\text{Tra} = \mathbf{w}^T \mathbf{S}_B \mathbf{w}\)
Dispersione entro classi (variazione entro ogni classe):
Assumendo covarianza uguale \(\boldsymbol{\Sigma}\) per entrambe le classi:
Definisci matrice di dispersione entro classi (covarianza pooled):
(In pratica, stimiamo \(\mathbf{S}_W\) dai dati; lo deriviamo dopo.)
Criterio di Fisher:
Ottimizzazione: Trova \(\mathbf{w}\) che massimizza \(J(\mathbf{w})\).
Osservazione chiave: Poiché \(J(\mathbf{w}) = J(c\mathbf{w})\) per qualsiasi costante \(c > 0\), possiamo imporre il vincolo \(\mathbf{w}^T \mathbf{S}_W \mathbf{w} = 1\).
Allora: Massimizza \(\mathbf{w}^T \mathbf{S}_B \mathbf{w}\) soggetto a \(\mathbf{w}^T \mathbf{S}_W \mathbf{w} = 1\).
Lagrangiano:
Condizione del primo ordine: Differenzia rispetto a \(\mathbf{w}\) e poni a zero.
Ricorda: - \(\frac{\partial}{\partial \mathbf{w}} (\mathbf{w}^T \mathbf{A} \mathbf{w}) = 2 \mathbf{A} \mathbf{w}\) per \(\mathbf{A}\) simmetrica
Moltiplica entrambi i lati per \(\mathbf{S}_W^{-1}\) (assumendo \(\mathbf{S}_W\) invertibile):
Questo è un problema agli autovalori! \(\mathbf{w}\) è un autovettore di \(\mathbf{S}_W^{-1} \mathbf{S}_B\) con autovalore \(\lambda\).
Semplificazione per due classi:
Ricorda \(\mathbf{S}_B = (\boldsymbol{\mu}_1 - \boldsymbol{\mu}_2)(\boldsymbol{\mu}_1 - \boldsymbol{\mu}_2)^T\).
Questa è una matrice di rango 1 (prodotto esterno di due vettori), quindi:
Sia \(c = (\boldsymbol{\mu}_1 - \boldsymbol{\mu}_2)^T \mathbf{w}\) (uno scalare). Allora:
Sostituendo nell'equazione agli autovalori:
Poiché ci interessa solo la direzione, ignora la costante \(c/\lambda\):
Risultato: La direzione discriminante ottimale è
Interpretazione: - Se \(\mathbf{S}_W = \mathbf{I}\) (identità, significa caratteristiche non correlate con varianza unitaria), allora \(\mathbf{w} \propto (\boldsymbol{\mu}_1 - \boldsymbol{\mu}_2)\) — la direzione che connette le medie delle classi - In generale, \(\mathbf{S}_W^{-1}\) tiene conto della correlazione e delle diverse varianze, ruotando la direzione per massimizzare la separazione
Regola di Classificazione¶
Una volta che abbiamo la direzione discriminante \(\mathbf{w}\), come classifichiamo un nuovo punto \(\mathbf{x}\)?
Approccio: Proietta \(\mathbf{x}\) su \(\mathbf{w}\) e confronta con una soglia.
Proiezione: \(z = \mathbf{w}^T \mathbf{x}\)
Regola decisionale: Assegna \(\mathbf{x}\) alla classe 1 se
dove \(\tau\) è una soglia.
Scelta della soglia: Una scelta naturale è il punto medio tra le medie delle classi proiettate:
Regola di classificazione completa:
Equivalentemente:
Questo è un confine decisionale lineare: Il confine è un iperpiano definito da \(\mathbf{w}^T \mathbf{x} = \text{const}\).
Connessione con la Regola di Bayes¶
L'LDA può anche essere derivata dalla regola di Bayes — questo dà ulteriore intuizione e mostra che è ottimale sotto assunzioni Gaussiane.
Regola di Bayes:
Probabilità posteriore della classe \(k\):
Assumi: - \(\mathbf{X} | Y = k \sim \mathcal{N}(\boldsymbol{\mu}_k, \boldsymbol{\Sigma})\) (densità condizionali Gaussiane) - \(P(Y = k) = \pi_k\) (probabilità a priori, stimate dalle frequenze di classe)
Densità condizionale (Gaussiana multivariata):
Log-posteriore (ignorando costanti indipendenti da \(k\)):
Espandi il quadratico:
Il termine \(\mathbf{x}^T \boldsymbol{\Sigma}^{-1} \mathbf{x}\) è indipendente da \(k\), quindi eliminalo:
Definisci la funzione discriminante:
Regola di classificazione: Assegna \(\mathbf{x}\) alla classe con il punteggio discriminante più alto:
Osservazione: \(\delta_k(\mathbf{x})\) è lineare in \(\mathbf{x}\) — da cui "discriminante lineare".
Per due classi \((k \in \{1, 2\})\): Classifica come classe 1 se \(\delta_1(\mathbf{x}) > \delta_2(\mathbf{x})\):
Riorganizzando:
Questo corrisponde all'approccio di Fisher con: - \(\mathbf{w} = \boldsymbol{\Sigma}^{-1} (\boldsymbol{\mu}_1 - \boldsymbol{\mu}_2)\) - Soglia aggiustata per le probabilità a priori
Stima dei Parametri dai Dati¶
In pratica, non conosciamo \(\boldsymbol{\mu}_k\) e \(\boldsymbol{\Sigma}\) — dobbiamo stimarli dai dati di training.
Notazione: La classe \(k\) ha \(n_k\) osservazioni \(\{\mathbf{x}_i : y_i = k\}\).
Stima delle Medie di Classe¶
Media campionaria per la classe \(k\):
Interpretazione: Semplice media di tutte le osservazioni nella classe \(k\).
Stima della Matrice di Covarianza Condivisa¶
Stimatore di covarianza pooled:
Perché \(n - K\) al denominatore? Perdiamo \(K\) gradi di libertà stimando \(K\) medie di classe (correzione di Bessel).
Forma alternativa (matrice di dispersione entro classi):
Allora: \(\hat{\boldsymbol{\Sigma}} = \mathbf{S}_W / (n - K)\)
Interpretazione: Aggregare le covarianze campionarie da tutte le classi, pesando per dimensione classe.
Stima delle Probabilità A Priori¶
A priori empirica:
Interpretazione: Proporzione di osservazioni di training nella classe \(k\).
Alternativa: Se abbiamo conoscenza del dominio, possiamo usare a priori diverse (es., a priori uguali \(\pi_k = 1/K\)).
LDA Multi-Classe: Caso Generale¶
Per \(K > 2\) classi, vogliamo trovare direzioni discriminanti multiple che separino tutte le classi.
Matrice di dispersione tra classi (generalizzazione):
dove \(\hat{\boldsymbol{\mu}} = \frac{1}{n}\sum_{i=1}^n \mathbf{x}_i\) è la media complessiva.
Matrice di dispersione entro classi (come prima):
Ottimizzazione: Trova matrice di proiezione \(\mathbf{W} \in \mathbb{R}^{p \times d}\) (le colonne sono direzioni discriminanti) che massimizza
dove \(|\cdot|\) denota il determinante della matrice.
Soluzione: Le direzioni discriminanti sono gli autovettori corrispondenti ai maggiori autovalori di \(\mathbf{S}_W^{-1} \mathbf{S}_B\).
Numero di direzioni discriminanti: Possiamo estrarre al massimo \(\min(p, K-1)\) direzioni discriminanti, perché: - \(\mathbf{S}_B\) ha rango al massimo \(K - 1\) (è costruita da \(K\) medie di classe meno media complessiva) - Non possiamo estrarre più direzioni della dimensione delle caratteristiche \(p\)
Riduzione dimensionale: Proietta i dati su \(d < p\) dimensioni:
dove \(\mathbf{W} \in \mathbb{R}^{p \times d}\) contiene i primi \(d\) autovettori.
Classificazione nello spazio ridotto: Usa funzioni discriminanti nello spazio ridotto, o semplicemente usa la media di classe più vicina.
Esempio Completo¶
Problema: Classificare fiori di iris in 3 specie usando 2 caratteristiche (semplificato).
Dati: - Classe 1 (Setosa): 50 campioni, \(\hat{\boldsymbol{\mu}}_1 = \begin{pmatrix} 5.0 \\ 3.4 \end{pmatrix}\) - Classe 2 (Versicolor): 50 campioni, \(\hat{\boldsymbol{\mu}}_2 = \begin{pmatrix} 6.0 \\ 2.8 \end{pmatrix}\) - Classe 3 (Virginica): 50 campioni, \(\hat{\boldsymbol{\mu}}_3 = \begin{pmatrix} 6.5 \\ 3.0 \end{pmatrix}\)
Covarianza pooled (stimata):
Passo 1: Calcola covarianza inversa.
Passo 2: Calcola funzioni discriminanti per ogni classe (assumendo a priori uguali \(\pi_k = 1/3\), quindi \(\log \pi_k\) si elimina):
Per classe 1:
Similmente per classi 2 e 3 (calcoli omessi per brevità).
Passo 3: Classifica una nuova osservazione \(\mathbf{x}_{\text{new}} = \begin{pmatrix} 5.5 \\ 3.0 \end{pmatrix}\).
Calcola \(\delta_k(\mathbf{x}_{\text{new}})\) per \(k = 1, 2, 3\) e assegna alla classe con il valore più alto.
(Calcola \(\delta_2\) e \(\delta_3\) similmente e confronta.)
LDA vs. Altri Metodi¶
LDA vs. Regressione Logistica¶
- LDA: Modello generativo (modella \(P(\mathbf{X}|Y)\) e usa regola di Bayes)
- Regressione Logistica: Modello discriminativo (modella direttamente \(P(Y|\mathbf{X})\))
Quando LDA è migliore: Se l'assunzione Gaussiana vale, LDA è più efficiente (usa tutti i dati per stimare la covarianza)
Quando Logistica è migliore: Più robusta a violazioni dell'assunzione Gaussiana
LDA vs. QDA (Analisi Discriminante Quadratica)¶
- LDA: Assume covarianza condivisa \(\boldsymbol{\Sigma}\)
- QDA: Permette covarianze diverse \(\boldsymbol{\Sigma}_k\) per ogni classe
Discriminante QDA:
Questo è quadratico in \(\mathbf{x}\) (perché \(\boldsymbol{\Sigma}_k\) dipende da \(k\)).
Compromesso: - LDA: Varianza inferiore (meno parametri), assume covarianza condivisa - QDA: Varianza superiore (più parametri), più flessibile
LDA vs. Naive Bayes¶
Naive Bayes: Assume caratteristiche condizionalmente indipendenti data la classe (\(\boldsymbol{\Sigma} = \text{diag}(\sigma_1^2, \ldots, \sigma_p^2)\))
LDA: Permette correlazioni tra caratteristiche (matrice di covarianza completa)
Assunzioni e Limitazioni¶
Assunzioni: 1. Condizionali Gaussiane: \(\mathbf{X} | Y = k \sim \mathcal{N}(\boldsymbol{\mu}_k, \boldsymbol{\Sigma})\) 2. Covarianza condivisa: Tutte le classi hanno la stessa \(\boldsymbol{\Sigma}\) 3. Dati sufficienti: \(n > p\) (più osservazioni che caratteristiche)
Cosa succede se le assunzioni sono violate?
- Dati non Gaussiani: LDA può ancora funzionare ragionevolmente (discriminante è ancora lineare), ma potrebbe non essere ottimale
- Covarianze diverse: Usa QDA invece
- Alta dimensionalità (\(p \approx n\) o \(p > n\)): Usa LDA regolarizzata (riduci \(\hat{\boldsymbol{\Sigma}}\) verso diagonale)
Limitazioni: - Confini lineari: Non può catturare confini decisionali complessi e non lineari - Sensibilità agli outlier: Media campionaria e covarianza sono sensibili agli outlier - Maledizione della dimensionalità: La stima della covarianza diventa inaffidabile in alta dimensione
LDA Regolarizzata¶
Quando \(p\) è grande relativamente a \(n\), \(\hat{\boldsymbol{\Sigma}}\) è stimata male o singolare.
Soluzione: Regolarizza (riduci) la stima di covarianza.
Stimatore di Shrinkage¶
dove \(0 \leq \alpha \leq 1\) controlla lo shrinkage: - \(\alpha = 0\): LDA standard - \(\alpha = 1\): Naive Bayes (covarianza diagonale)
Tuning di \(\alpha\): Usa validazione incrociata.
LDA Ridge-Regolarizzata¶
Aggiungi una penalità ridge per garantire invertibilità:
dove \(\lambda > 0\) è un parametro di tuning.
Variabili e Simboli¶
| Simbolo | Nome | Descrizione |
|---|---|---|
| \(\mathbf{x}_i\) | Vettore caratteristiche | Osservazione \(p\)-dimensionale |
| \(y_i\) | Etichetta classe | Classe discreta \(\in \{1, \ldots, K\}\) |
| \(K\) | Numero classi | Totale classi |
| \(n_k\) | Dimensione classe | Numero osservazioni nella classe \(k\) |
| \(\boldsymbol{\mu}_k\) | Media classe | Vettore media per classe \(k\) |
| \(\boldsymbol{\Sigma}\) | Matrice covarianza | Covarianza condivisa tra classi |
| \(\mathbf{w}\) | Direzione discriminante | Vettore di proiezione |
| \(\mathbf{S}_B\) | Dispersione tra classi | Misura separazione medie classi |
| \(\mathbf{S}_W\) | Dispersione entro classi | Misura variazione entro classi |
| \(\delta_k(\mathbf{x})\) | Funzione discriminante | Punteggio lineare per classe \(k\) |
| \(\pi_k\) | Probabilità a priori | \(P(Y = k)\) |
Concetti Correlati¶
- Distribuzione Gaussiana — Fondamento per assunzioni LDA
- Teorema di Bayes — Base teorica per classificazione LDA
- Matrice di Covarianza — Centrale per LDA
- Autovalori e Autovettori — Usati nell'LDA multi-classe
- Analisi delle Componenti Principali — Riduzione dimensionale correlata (non supervisionata)
- Regressione Logistica — Classificatore discriminativo alternativo
- Curva ROC — Valutazione prestazioni classificatore LDA
Riferimenti Storici e Moderni¶
- Fisher, R. A. (1936). "The use of multiple measurements in taxonomic problems." Annals of Eugenics, 7(2), 179-188.
- Rao, C. R. (1948). "The utilization of multiple measurements in problems of biological classification." Journal of the Royal Statistical Society. Series B, 10(2), 159-203.
- Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning (2nd ed.). Springer. [Capitolo 4]
- Duda, R. O., Hart, P. E., & Stork, D. G. (2000). Pattern Classification (2nd ed.). Wiley.
- McLachlan, G. J. (2004). Discriminant Analysis and Statistical Pattern Recognition. Wiley.