Salta al contenuto
Note per Studenti Regressione lineare

Regressione lineare

In questa pagina 8

Questa nota introduce l'apprendimento supervisionato e il suo modello più semplice, la regressione lineare (Lezione 7 · Regressione lineare). Il quadro generale dei tipi di apprendimento è in Introduzione al machine learningIl machine learning (ML) è la parte dell'intelligenza artificiale che costruisce soluzioni a partire dai dati e non da regole scritte a mano: un modello matematico con parametri liberi viene addestrato su esempi storici e poi usato su dati nuovi. Si distingue tra apprendimento supervisionato (dati $(x,y)$, si impara la mappa $x\mapsto y$: regressione se $y$ è un numero, classificazione se è una categoria), non supervisionato (solo $x$, si cercano struttura e gruppi) e per rinforzo (stato, azione, ricompensa). Un progetto ML non è «plug and play»: segue le fasi problema, raccolta, pulizia, modellazione, rilascio, e va valutato su dati mai visti; senza dati non c'è modello, alcuni fenomeni sono imprevedibili, la generalizzazione fuori dal dominio di addestramento non è garantita.Introduzione al machine learning →. La nota successiva, Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →, affronta il problema che qui compare per la prima volta (un modello troppo flessibile non generalizza); il laboratorio è Lezione 9 · Laboratorio di regressione lineare e ridge con Esercizio - OLS, R quadro e aumento polinomiale delle feature e Esercizio - Regressione ai minimi quadrati su quattro punti.

Il problema supervisionato

Definizione (compito supervisionato). Si dispone di dati storici (x(i),y(i))(x^{(i)},y^{(i)}) con i=1,…,ni=1,\dots,n: xx è l'ingresso (input, il vettore delle feature x=[x1,…,xp]x=[x_1,\dots,x_p]) e yy l'uscita (output, la risposta da prevedere). L'obiettivo è imparare una funzione F(x)F(x) che, ricevendo un xx nuovo, fornisca una stima di yy.

La natura dell'uscita distingue due sottoclassi di problemi:

Se yy è… Il problema è di… Esempi
una variabile continua regressione prezzo di una casa a partire da stanze, metri quadri, anno di costruzione
una variabile categorica classificazione specie di un iris dalle misure di sepali e petali; riconoscere una canzone da 3-4 secondi di audio (centinaia di milioni di classi)

Con piccole modifiche i metodi di regressione si adattano alla classificazione e viceversa (Regressione logistica e softmaxLa regressione lineare non è adatta alla classificazione (valori fuori da [0,1], retta tirata dai punti lontani). La regressione logistica passa il predittore lineare dalla sigmoide $\sigma(z)=1/(1+e^{-z})$ e interpreta $\hat y=\sigma(x^T\beta)$ come $P(y=1\mid x)$: si predice la classe 1 se $\hat y\ge0{,}5$, cioè $x^T\beta\ge0$ (bordo lineare). L'errore quadratico dà una funzione non convessa; si usa la log-verosimiglianza negativa $-\sum[y\log\hat y+(1-y)\log(1-\hat y)]$, convessa, con gradiente $X^T(\hat y-y)$ e nessuna formula chiusa (discesa del gradiente). Per più classi: one-vs-one ($C(C-1)/2$ classificatori, voto), one-vs-all ($C$ classificatori, massima probabilità), o la softmax $p_c=e^{z_c}/\sum_ke^{z_k}$ con cross-entropia. Si può regolarizzare (ridge, LASSO, Elastic Net) e la cross-validation si fa stratificata. Approfondimento: non nel programma di Telecomunicazioni.Regressione logistica e softmax →). In questa nota ci si concentra sulla regressione.

Il modello lineare

Si cerca un modello F(x)F(x) che stimi la variabile target yy a partire dalle feature x=[x1,x2,…,xp]x=[x_1,x_2,\dots,x_p]. Si parte dai modelli lineari:

Formula (modello lineare). Fβ(x)=β0+β1x1+β2x2+⋯+βpxpF_\beta(x)=\beta_0+\beta_1x_1+\beta_2x_2+\dots+\beta_px_p. I numeri β0,…,βp\beta_0,\dots,\beta_p sono i parametri (o coefficienti); β0\beta_0 è l'intercetta, il coefficiente della costante.

Esempio (dalle slide). Prezzo =150\,000\ \+10,000\ \\cdot[\text{n. bagni}]+\dots-1\,000\ \\cdot[\text{età della casa}]:ognibagnoinpiuˋaumentalastimadi: ogni bagno in più aumenta la stima di10,000\ \e ogni anno di età la riduce di $1\,000\ \, a parità delle altre variabili. Il coefficiente βj\beta_j dice di quanto cambia la stima per un'unità in più della feature xjx_j, tenendo ferme le altre.

Forma matriciale. Si aggiunge ai dati una colonna di uni, in modo che l'intercetta si tratti come gli altri coefficienti. Con nn osservazioni e pp feature: X=[1x11⋯x1p⋮⋮⋮1xn1⋯xnp]∈Rn×(p+1),β=[β0⋮βp],y^=Xβ.X=\begin{bmatrix}1&x_{11}&\cdots&x_{1p}\\ \vdots&\vdots&&\vdots\\ 1&x_{n1}&\cdots&x_{np}\end{bmatrix}\in\mathbb R^{n\times(p+1)},\qquad \beta=\begin{bmatrix}\beta_0\\ \vdots\\ \beta_p\end{bmatrix},\qquad \hat y=X\beta. La riga ii di XβX\beta è β0+β1xi1+⋯+βpxip=Fβ(x(i))\beta_0+\beta_1x_{i1}+\dots+\beta_px_{ip}=F_\beta(x^{(i)}): una sola moltiplicazione matrice per vettore produce tutte le previsioni.

«Lineare» in che senso. Lineare nei parametri β\beta, non necessariamente nelle feature: si vedrà con l'aumento polinomiale che y=β0+β1x+β2x2y=\beta_0+\beta_1x+\beta_2x^2 è ancora un modello lineare.

La funzione di costo: l'errore quadratico medio

Come scegliere i parametri «migliori»? Serve un criterio (un obiettivo), detto funzione di costo (cost function): i dati dicono quali parametri sono migliori nel senso di quell'obiettivo. Un obiettivo comune è minimizzare la somma dei quadrati degli errori di previsione: si sceglie β\beta in modo che ∑i=1n[y(i)−Fβ(x(i))]2\sum_{i=1}^n[y^{(i)}-F_\beta(x^{(i)})]^2 sia il più piccolo possibile.

Formula (MSE e RMSE). MSE=1n∑i=1n[y(i)−Fβ(x(i))]2,RMSE=MSE.\mathrm{MSE}=\frac1n\sum_{i=1}^n\big[y^{(i)}-F_\beta(x^{(i)})\big]^2,\qquad \mathrm{RMSE}=\sqrt{\mathrm{MSE}}. MSE\mathrm{MSE} è l'errore quadratico medio (mean squared error); la radice RMSE\mathrm{RMSE} ha la stessa unità di yy ed è di più facile lettura.

Esempio. Previsioni [2,3; 3,1; 3,9; 4,7][2{,}3;\,3{,}1;\,3{,}9;\,4{,}7] per valori veri [2; 3; 5; 4][2;\,3;\,5;\,4]: errori [−0,3; −0,1; 1,1; −0,7][-0{,}3;\,-0{,}1;\,1{,}1;\,-0{,}7], quadrati [0,09; 0,01; 1,21; 0,49][0{,}09;\,0{,}01;\,1{,}21;\,0{,}49] con somma 1,81{,}8, MSE=1,8/4=0,45\mathrm{MSE}=1{,}8/4=0{,}45, RMSE=0,45≈0,671\mathrm{RMSE}=\sqrt{0{,}45}\approx0{,}671.

Perché il quadrato. (La funzione t↦t2t\mapsto t^2 è derivabile e convessa: Derivata - definizione e significatoLa derivata è il limite del rapporto incrementale; geometricamente è la pendenza della retta tangente. f è derivabile in x0 se e solo se f(x) = f(x0) + f'(x0)(x − x0) + o(x − x0); derivabile implica continua, non viceversa. Derivata destra e sinistra, punti angolosi, flessi a tangente verticale, cuspidi.Derivata - definizione e significato →.) Il motivo tecnico emerge a breve: con il quadrato la funzione di costo è liscia (derivabile), convessa nei parametri e ha un unico minimo calcolabile in forma chiusa. In più penalizza di più gli errori grandi (un errore doppio costa quattro volte). Al variare dei parametri l'MSE cambia: previsioni migliori o peggiori.

Proprietà (convessità). Nei modelli di regressione lineare la funzione di costo è convessa nello spazio dei parametri: il segmento che unisce due punti qualunque del grafico non sta mai sotto il grafico. Quindi non ci sono minimi locali spuri: c'è un unico insieme di parametri ottimi, indicato con β^\hat\beta.

Grafico interattivo: MSE in funzione della pendenza β₁ (con β₀ = 1,5 fisso) per i quattro punti (1;2), (2;3), (3;5), (4;4): è una parabola convessa con minimo 0,45 in β₁ = 0,8

Ricerca dei parametri: grid search o ottimizzazione. Un modo ingenuo (grid search) è provare tutte le combinazioni di parametri su una griglia e tenere quella con costo minimo: costosissimo. In ML si usano invece algoritmi di ottimizzazione che trovano i parametri velocemente, come la discesa del gradiente (LASSO e discesa del gradienteIl LASSO è la regressione regolarizzata con penalità $L_1$: minimizza $\sum_i(y_i-x_i^T\beta)^2+\lambda\sum_{j\ge1}|\beta_j|$. A differenza della ridge, porta alcuni coefficienti esattamente a zero (soluzione sparsa, selezione delle feature): geometricamente le curve di livello dell'errore toccano il vincolo $\sum|\beta_j|\le s$ (un rombo) in uno spigolo. Non ha formula chiusa, quindi si minimizza con la discesa del gradiente $W\leftarrow W-\eta,\nabla J(W)$, usando il subgradiente $\operatorname{sign}(\beta_j)$ per il valore assoluto (nel punto 0 qualunque valore in $[-1,1]$). Il passo $\eta$ è critico: per l'errore quadratico converge se $\eta<1/\mu_{\max}(X^TX)$; si può usare $\eta_t=\eta_0/(1+\gamma t)$. L'Elastic Net combina le penalità $L_1$ e $L_2$ con $\lambda_1=\alpha\lambda$, $\lambda_2=(1-\alpha)\lambda$.LASSO e discesa del gradiente →). Per la regressione lineare esiste addirittura una formula esplicita (compare anche il valore medio yˉ\bar y di Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →).

Soluzione in forma chiusa (OLS)

Il metodo dei minimi quadrati ordinari (ordinary least squares, OLS) minimizza l'MSE. Si scrive la funzione di costo in forma matriciale (norma e prodotto scalare in Prodotto scalare, norma e angoliIl prodotto scalare aggiunge a uno spazio vettoriale lunghezze e angoli: norma, disuguaglianza di Cauchy-Schwarz, angolo tra vettori in R^n, ortogonalità, proiezione su una retta, aree e volumi con il determinante della matrice dei prodotti scalari.Prodotto scalare, norma e angoli →, prodotti tra matrici in Operazioni tra matriciLe matrici m×n formano uno spazio vettoriale (somma e prodotto per scalare elemento per elemento); il prodotto righe per colonne corrisponde alla composizione di funzioni lineari, è associativo ma non commutativo; la trasposta scambia righe e colonne e (AB)^T = B^T A^T.Operazioni tra matrici →), lasciando da parte il fattore 1/n1/n che non cambia dove sta il minimo: J(β)=∥y−Xβ∥2=(y−Xβ)T(y−Xβ).J(\beta)=\lVert y-X\beta\rVert^2=(y-X\beta)^T(y-X\beta).

Passo 1: sviluppo del prodotto. Usando (AB)T=BTAT(AB)^T=B^TA^T e il fatto che yTXβy^TX\beta è un numero e quindi uguale al suo trasposto βTXTy\beta^TX^Ty: J(β)=yTy−2yTXβ+βTXTXβ.J(\beta)=y^Ty-2y^TX\beta+\beta^TX^TX\beta.

Passo 2: gradiente rispetto a β\beta. Il gradiente è il vettore delle derivate parziali rispetto a ciascun βj\beta_j (Differenziabilità e gradientef è differenziabile in x0 se f(x) = f(x0) + ∇f(x0)·(x − x0) + o(‖x − x0‖): vicino a x0 il grafico si confonde con il piano tangente z = f(x0) + ∇f(x0)·(x − x0). Differenziabile ⇒ continua, derivabile e D_v f = ∇f·v; derivate parziali continue ⇒ differenziabile. Il gradiente indica la direzione di massima crescita (pendenza ‖∇f‖) ed è ortogonale alle curve di livello.Differenziabilità e gradiente →, Derivate parziali e derivate direzionaliLa derivata parziale ∂f/∂xi(x0) è la derivata della funzione di una variabile che si ottiene fissando tutte le altre variabili: in pratica si deriva in xi trattando le altre come costanti. Il gradiente ∇f raccoglie le derivate parziali. La derivata direzionale lungo un versore v è il limite di [f(x0 + hv) − f(x0)]/h. In più variabili avere tutte le derivate (anche direzionali) non garantisce la continuità.Derivate parziali e derivate direzionali →). Si derivano i tre termini con due regole:

  • ∂∂β(aTβ)=a\dfrac{\partial}{\partial\beta}(a^T\beta)=a (per p=1p=1: la derivata di aβa\beta è aa);
  • ∂∂β(βTAβ)=2Aβ\dfrac{\partial}{\partial\beta}(\beta^TA\beta)=2A\beta se AA è simmetrica (per p=1p=1: la derivata di aβ2a\beta^2 è 2aβ2a\beta).

Quindi:

  • ∂∂β yTy=0\dfrac{\partial}{\partial\beta}\,y^Ty=0 (non dipende da β\beta);
  • ∂∂β (−2yTXβ)=−2XTy\dfrac{\partial}{\partial\beta}\,(-2y^TX\beta)=-2X^Ty, con a=XTya=X^Ty;
  • ∂∂β (βTXTXβ)=2XTXβ\dfrac{\partial}{\partial\beta}\,(\beta^TX^TX\beta)=2X^TX\beta, perché XTXX^TX è simmetrica.

Passo 3: azzerare il gradiente. In un minimo libero il gradiente è nullo (Massimi e minimi liberi in più variabiliSe f è differenziabile e ha un estremo relativo in un punto interno x0, allora ∇f(x0) = 0 (Fermat): gli estremi interni vanno cercati tra i punti critici. Se f è C², in un punto critico: hessiana definita positiva → minimo, definita negativa → massimo, indefinita → sella, semidefinita → il test non decide e si studia il segno di f(x) − f(x0). In due variabili: det H > 0 e fxx > 0 minimo, det H > 0 e fxx < 0 massimo, det H < 0 sella.Massimi e minimi liberi in più variabili →, teorema di Fermat in Massimi e minimi relativi e teorema di Fermatx0 è punto di minimo (massimo) relativo se f(x0) ≤ f(x) (≥) per gli x del dominio vicini a x0. I candidati sono gli estremi del dominio, i punti dove f non è derivabile e i punti interni con f'(x0) = 0 (punti critici o stazionari). Teorema di Fermat: in un punto interno di minimo o massimo relativo dove f è derivabile, f'(x0) = 0. È solo una condizione necessaria: x³ in 0.Massimi e minimi relativi e teorema di Fermat →). Si impone quindi: 2XTXβ−2XTy=0 ⟹ XTX β=XTy(equazioni normali).2X^TX\beta-2X^Ty=0\ \Longrightarrow\ X^TX\,\beta=X^Ty\qquad\text{(equazioni normali)}.

Teorema (soluzione dei minimi quadrati ordinari). Se XTXX^TX è invertibile, β^=(XTX)−1XTy.\hat\beta=(X^TX)^{-1}X^Ty.

Questo è il minimo, e non un massimo o una sella: la matrice hessiana di JJ (Matrice hessiana e formula di Taylor in più variabiliLe derivate seconde ∂²f/∂xj∂xi formano la matrice hessiana Hf; per il teorema di Schwarz (derivate miste continue) è simmetrica. Taylor al secondo ordine: f(x0 + h) = f(x0) + ∇f(x0)·h + ½ hᵀHf(x0)h + o(‖h‖²). Una matrice simmetrica è definita positiva/negativa, semidefinita o indefinita a seconda del segno della forma quadratica hᵀAh; si riconosce con gli autovalori o con i minori principali (in 2×2: determinante e primo elemento).Matrice hessiana e formula di Taylor in più variabili →) è 2XTX2X^TX, e per ogni vettore vv si ha vTXTXv=(Xv)T(Xv)=∥Xv∥2≥0v^TX^TXv=(Xv)^T(Xv)=\lVert Xv\rVert^2\ge0, quindi la hessiana è semidefinita positiva e JJ è convessa (Funzioni convesse in più variabiliUn insieme C è convesso se contiene il segmento tra due suoi punti; f: C → R è convessa se f(tx + (1−t)y) ≤ t f(x) + (1−t) f(y) per t in [0,1], cioè il grafico sta sotto le corde. Se f è differenziabile, è convessa se e solo se f(y) ≥ f(x) + ∇f(x)·(y − x) (il grafico sta sopra ogni piano tangente). Se f è C² su un aperto convesso, è convessa se e solo se l'hessiana è semidefinita positiva in ogni punto; se è definita positiva ovunque f è strettamente convessa (non vale il viceversa: x⁴). Per una funzione convessa ogni punto critico è un minimo globale.Funzioni convesse in più variabili →; in una variabile Funzioni convesse, concave e punti di flessof è convessa se ogni corda sta sopra il grafico (concava se sta sotto). Una funzione convessa è continua e ha derivate destra e sinistra in ogni punto interno. Per f derivabile: convessa ⇔ grafico sopra ogni tangente ⇔ f' crescente ⇔ (se esiste) f'' ≥ 0. f'' > 0 ⇒ strettamente convessa, non viceversa (x⁴). Flesso: punto in cui f passa da convessa a concava; lì, se esiste, f''(x0) = 0, ma non basta (x⁴ in 0).Funzioni convesse, concave e punti di flesso →). I coefficienti dipendono sia dagli ingressi sia dalle uscite.

Quando XTXX^TX è invertibile. Serve che le colonne di XX siano linearmente indipendenti (Combinazioni lineari e dipendenza lineareUna combinazione lineare è una somma di vettori moltiplicati per scalari. I vettori sono linearmente indipendenti se l'unica combinazione che dà il vettore nullo è quella con tutti i coefficienti nulli; altrimenti sono dipendenti, e allora uno di essi è combinazione lineare degli altri.Combinazioni lineari e dipendenza lineare →; per l'inversa Matrice inversaL'inversa di una matrice quadrata A è la matrice A⁻¹ con A A⁻¹ = A⁻¹ A = I; esiste se e solo se rango(A) = n e si calcola con Gauss-Jordan riducendo (A | I) fino a (I | A⁻¹).Matrice inversa →): nessuna feature deve essere combinazione lineare delle altre (altrimenti c'è multicollinearità) e servono almeno n≥p+1n\ge p+1 osservazioni. Nei casi dubbi si usa la regolarizzazione (Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →).

Esempio completo. Dati x=[1,2,3,4]x=[1,2,3,4], y=[2,3,5,4]y=[2,3,5,4]. La matrice con la colonna di uni è X=[11121314]X=\begin{bmatrix}1&1\\1&2\\1&3\\1&4\end{bmatrix}. Allora XTX=[4101030],XTy=[2+3+5+42+6+15+16]=[1439].X^TX=\begin{bmatrix}4&10\\10&30\end{bmatrix},\qquad X^Ty=\begin{bmatrix}2+3+5+4\\ 2+6+15+16\end{bmatrix}=\begin{bmatrix}14\\39\end{bmatrix}. Il determinante è 4⋅30−10⋅10=204\cdot30-10\cdot10=20 e l'inversa è 120[30−10−104]\frac1{20}\begin{bmatrix}30&-10\\-10&4\end{bmatrix}. Perciò β^=120[30⋅14−10⋅39−10⋅14+4⋅39]=120[3016]=[1,50,8].\hat\beta=\frac1{20}\begin{bmatrix}30\cdot14-10\cdot39\\-10\cdot14+4\cdot39\end{bmatrix}=\frac1{20}\begin{bmatrix}30\\16\end{bmatrix}=\begin{bmatrix}1{,}5\\0{,}8\end{bmatrix}. La retta è y^=1,5+0,8x\hat y=1{,}5+0{,}8x, con previsioni 2,3; 3,1; 3,9; 4,72{,}3;\ 3{,}1;\ 3{,}9;\ 4{,}7 (MSE=0,45\mathrm{MSE}=0{,}45 come sopra).

Grafico interattivo: I quattro punti e la retta dei minimi quadrati ŷ = 1,5 + 0,8 x: i segmenti sono i residui (−0,3; −0,1; +1,1; −0,7), la cui somma dei quadrati 1,8 è la minima possibile

Forma scalare (una sola feature). Con la covarianza e la varianza di Covarianza e coefficiente di correlazioneCov(X, Y) = E[(X − E X)(Y − E Y)] = E[XY] − E[X]E[Y] misura quanto X e Y variano insieme; è bilineare, Cov(X, X) = Var(X), Var(X + Y) = Var X + Var Y + 2Cov(X, Y); ρ = Cov / (σ_X σ_Y) sta in [−1, 1] e vale ±1 solo per legami lineari. Indipendenti ⇒ non correlate, ma non viceversa (tranne per i vettori gaussiani).Covarianza e coefficiente di correlazione → e Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →, dalle equazioni normali si ricavano le formule per y^=β0+β1x\hat y=\beta_0+\beta_1x: β1=cov⁡(x,y)var⁡(x)=∑i(xi−xˉ)(yi−yˉ)∑i(xi−xˉ)2,β0=yˉ−β1xˉ.\beta_1=\frac{\operatorname{cov}(x,y)}{\operatorname{var}(x)}=\frac{\sum_i(x_i-\bar x)(y_i-\bar y)}{\sum_i(x_i-\bar x)^2},\qquad \beta_0=\bar y-\beta_1\bar x. Esempio. xˉ=2,5\bar x=2{,}5, yˉ=3,5\bar y=3{,}5; numeratore (−1,5)(−1,5)+(−0,5)(−0,5)+0,5⋅1,5+1,5⋅0,5=4(-1{,}5)(-1{,}5)+(-0{,}5)(-0{,}5)+0{,}5\cdot1{,}5+1{,}5\cdot0{,}5=4; denominatore 2,25+0,25+0,25+2,25=52{,}25+0{,}25+0{,}25+2{,}25=5; β1=0,8\beta_1=0{,}8 e β0=3,5−0,8⋅2,5=1,5\beta_0=3{,}5-0{,}8\cdot2{,}5=1{,}5 ✓. La seconda formula dice che la retta passa per il punto delle medie (xˉ,yˉ)(\bar x,\bar y).

Significato geometrico. (È il Metodo dei minimi quadratiQuando un sistema AX = b non ha soluzioni si cerca X che rende minima la norma di AX − b: AX è la proiezione ortogonale di b su Im A, e X si trova risolvendo le equazioni normali AᵀA X = Aᵀb; applicazione alla retta di regressione.Metodo dei minimi quadrati → dell'algebra lineare, con la proiezione ortogonale di Complemento ortogonale e proiezioni ortogonaliL'ortogonale U⊥ di un sottospazio è un sottospazio di dimensione n − dim U, e R^n = U ⊕ U⊥; ogni vettore si scompone in proiezione su U più componente ortogonale; la proiezione è il punto di U più vicino e si calcola con un sistema o con la matrice di proiezione A(AᵀA)⁻¹Aᵀ.Complemento ortogonale e proiezioni ortogonali →; l'esempio a quattro punti è anche in Esercizio 87 · retta dei minimi quadrati per quattro punti.) L'equazione normale si può scrivere XT(y−Xβ)=0X^T(y-X\beta)=0: il vettore dei residui y−Xβy-X\beta è ortogonale a tutte le colonne di XX. Xβ^X\hat\beta è la proiezione ortogonale di yy sullo spazio generato dalle colonne di XX. In particolare, se c'è la colonna di uni, la somma dei residui è zero (nell'esempio −0,3−0,1+1,1−0,7=0-0{,}3-0{,}1+1{,}1-0{,}7=0).

Con più variabili. La formula è la stessa, solo XX ha più colonne. Il codice è una riga:

python
beta = np.linalg.inv(X.T @ X) @ X.T @ y     # X ha già la colonna di uni
y_pred = X @ beta

(In pratica si preferisce np.linalg.lstsq(X, y, rcond=None), numericamente più stabile dell'inversa.)

Misurare la qualità: il coefficiente di determinazione

L'MSE dipende dall'unità di misura di yy: da solo non dice se 0,450{,}45 è «poco» o «tanto». Il coefficiente di determinazione R2R^2 è un indice adimensionale.

Formula (coefficiente di determinazione). R2=1−SSresSStot,SSres=∑i(yi−y^i)2,SStot=∑i(yi−yˉ)2.R^2=1-\frac{SS_{res}}{SS_{tot}},\qquad SS_{res}=\sum_i(y_i-\hat y_i)^2,\qquad SS_{tot}=\sum_i(y_i-\bar y)^2. SSresSS_{res} (somma dei quadrati dei residui) misura l'errore del modello; SStotSS_{tot} misura la variabilità totale di yy rispetto alla media, cioè l'errore di un «modello» che prevede sempre yˉ\bar y.

Interpretazione:

  • R2=1R^2=1: fit perfetto;
  • R2=0R^2=0: il modello non fa meglio che prevedere sempre la media;
  • R2<0R^2<0: peggio della media (possibile soprattutto sul test set o con un modello molto sbagliato).

Esempio. Per y=[2,3,5,4]y=[2,3,5,4]: SStot=(−1,5)2+(−0,5)2+1,52+0,52=5SS_{tot}=(-1{,}5)^2+(-0{,}5)^2+1{,}5^2+0{,}5^2=5 e SSres=1,8SS_{res}=1{,}8, quindi R2=1−1,8/5=0,64R^2=1-1{,}8/5=0{,}64: la retta spiega il 64%64\% della variabilità di yy.

Esempio (modello pessimo, dal laboratorio). Con β=[0,−1,1]\beta=[0,-1,1] invece di quello vero [50; 1,5; −1][50;\,1{,}5;\,-1], MSE=6006,99\mathrm{MSE}=6006{,}99 e R2=−8,06R^2=-8{,}06.

Esempio sul dataset California Housing

Target: MedHouseVal, il valore mediano delle case del blocco (in centinaia di migliaia di dollari, troncato a 500 000500\,000 $). Ingressi (un sottoinsieme): MedInc (reddito mediano, in decine di migliaia di dollari), HouseAge (età mediana in anni), AveRooms (stanze medie per abitazione), AveOccup (occupanti medi per famiglia). Adattando OLS a tutto il dataset si ottengono, secondo le slide:

coefficiente valore
const 0,03140{,}0314
MedInc 0,44330{,}4433
HouseAge 0,01690{,}0169
AveRooms −0,0273-0{,}0273
AveOccup −0,0045-0{,}0045

con RMSE=0,80468\mathrm{RMSE}=0{,}80468 (cioè circa 80 00080\,000 \)e) eR^2=0{,}514suidatidiaddestramento.Lettura:unaumentodisui dati di addestramento. Lettura: un aumento di1nelredditomediano(nel reddito mediano (10,000\) fa salire la stima di 0,44330{,}4433 (cioè 44 33044\,330 \).Domandadelleslide:eˋ«buono»?Un). Domanda delle slide: è «buono»? UnR^2didi0{,}51$ dice che il modello spiega circa metà della variabilità: non c'è un valore buono in assoluto, dipende dal problema e va confrontato con modelli alternativi e valutato su dati nuovi.

Aumento delle feature e overfitting

Se la relazione tra xx e yy non è una retta, si possono trasformare gli ingressi, per esempio aggiungendo x2x^2: y^=β0+β1x+β2x2\hat y=\beta_0+\beta_1x+\beta_2x^2. È una espansione di base (basis expansion) e rimane un modello lineare nei parametri, quindi si risolve con le stesse equazioni normali con le colonne [1,x,x2][1,x,x^2]. È un passo molto comune di feature engineering.

Esempio (dalle slide, dati univariati). L'MSE sul training scende da 78,3578{,}35 con la retta a 33,1533{,}15 con il termine quadratico e a 17,7917{,}79 con un polinomio di grado 20. Ma quale è più ragionevole? Il polinomio di grado 20 passa vicinissimo ai punti noti e oscilla in modo innaturale tra l'uno e l'altro: complicare il modello non migliora sempre la qualità su dati nuovi (mancanza di generalizzazione, overfitting). L'MSE sul training è per forza non crescente al crescere della complessità, quindi non basta per scegliere.

Dal laboratorio (n=20n=20 punti da y=3x2−2x+1+rumorey=3x^2-2x+1+\text{rumore} con rumore gaussiano di deviazione standard 0,10{,}1): la retta ha MSEtrain=0,0801\mathrm{MSE}_{train}=0{,}0801 e R2=0,521R^2=0{,}521; con il termine quadratico MSEtrain=0,0131\mathrm{MSE}_{train}=0{,}0131 e coefficienti [0,98; −2,13; 3,23][0{,}98;\,-2{,}13;\,3{,}23], vicinissimi a quelli veri [1; −2; 3][1;\,-2;\,3]; con il grado 99 i coefficienti diventano enormi (dell'ordine di 10310^3-10410^4) e il training è quasi perfetto, ma il modello non è affidabile. Si vedrà come limitarlo con la ridge regression (Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →).

Training e test

Per sapere se un modello generalizza serve un test set: dati non usati per trovare i parametri e che non condividono campioni con il training set.

  • Training set: dati usati per costruire il modello, cioè per trovare i parametri.
  • Validation set: dati usati durante la costruzione per confrontare modelli e iperparametri su casi nuovi.
  • Test set: dati usati una sola volta alla fine, per stimare la prestazione vera.

Nelle slide si mette a caso il 20%20\% del dataset nel test e si usa l'80%80\% per l'addestramento. Con California Housing: β\beta addestrato sull'80%80\% è const =0,02669=0{,}02669, MedInc =0,44546=0{,}44546, HouseAge =0,01690=0{,}01690, AveRooms =−0,02838=-0{,}02838, AveOccup =−0,00414=-0{,}00414, e sul test MSE=0,65745\mathrm{MSE}=0{,}65745 con R2=0,49828R^2=0{,}49828. I coefficienti sono quasi uguali a quelli ottenuti sull'intero dataset, e l'R2R^2 sul test è appena più basso di quello sul training: qui il modello (semplice) non va in overfitting.

Problema della scelta casuale. Una singola divisione casuale è una scelta arbitraria e le prestazioni possono cambiare molto con la divisione, soprattutto con dataset piccoli: il test set potrebbe contenere casi particolarmente facili o difficili. La soluzione è la cross-validation (Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →).

Standardizzazione. Quando si standardizzano le feature, media e deviazione standard si calcolano sul solo training set e si applicano identiche al test (Statistica per il machine learningI dati di un problema ML si organizzano nella matrice di progetto $X$ ($n$ osservazioni, $p$ variabili). La statistica serve a capirli, ripulirli e prepararli: i momenti (media $\mu$, varianza $\sigma^2$, asimmetria, curtosi), i quartili con lo scarto interquartile $\mathrm{IQR}=Q_3-Q_1$ (all'esame senza interpolazione), la moda per i dati categorici. Con queste quantità si imputano i dati mancanti (media o mediana), si eliminano le variabili costanti e si standardizza con lo z-score $z=(x-\mu)/\sigma$, usando sempre media e deviazione standard del solo training set.Statistica per il machine learning →).

Errori tipici

  • Valutare il modello sugli stessi dati usati per addestrarlo: l'errore sul training è ottimistico.
  • Dimenticare la colonna di uni: senza di essa il modello è forzato a passare per l'origine.
  • Interpretare un coefficiente senza ricordare che dipende dalle altre variabili e dalla loro scala (feature in unità diverse hanno coefficienti non confrontabili, a meno di standardizzare).
  • Confondere R2R^2 alto con modello corretto: un R2R^2 vicino a 11 sul training con troppi parametri può essere overfitting.
  • Usare (XTX)−1(X^TX)^{-1} con feature collineari: la matrice è (quasi) singolare e i coefficienti diventano instabili.

Versione ripasso

Definizione. Compito supervisionato: da dati (x(i),y(i))(x^{(i)},y^{(i)}) imparare F(x)F(x) che stimi yy per xx nuovi. yy continua ⇒\Rightarrow regressione; yy categorica ⇒\Rightarrow classificazione.

Formula (modello lineare). Fβ(x)=β0+β1x1+⋯+βpxpF_\beta(x)=\beta_0+\beta_1x_1+\dots+\beta_px_p, in forma matriciale y^=Xβ\hat y=X\beta con colonna di uni in XX. Lineare nei parametri.

Esempio. Prezzo =150 000+10 000⋅bagni−1 000⋅etaˋ=150\,000+10\,000\cdot\text{bagni}-1\,000\cdot\text{età}.

Formula (MSE, RMSE). MSE=1n∑i[y(i)−Fβ(x(i))]2\mathrm{MSE}=\frac1n\sum_i[y^{(i)}-F_\beta(x^{(i)})]^2, RMSE=MSE\mathrm{RMSE}=\sqrt{\mathrm{MSE}}. Convessa nei parametri: un solo minimo β^\hat\beta.

Esempio. Errori [−0,3;−0,1;1,1;−0,7][-0{,}3;-0{,}1;1{,}1;-0{,}7]: MSE=0,45\mathrm{MSE}=0{,}45, RMSE=0,671\mathrm{RMSE}=0{,}671.

Teorema (OLS). J(β)=∥y−Xβ∥2=yTy−2yTXβ+βTXTXβJ(\beta)=\lVert y-X\beta\rVert^2=y^Ty-2y^TX\beta+\beta^TX^TX\beta; gradiente −2XTy+2XTXβ=0⇒XTXβ=XTy⇒β^=(XTX)−1XTy-2X^Ty+2X^TX\beta=0\Rightarrow X^TX\beta=X^Ty\Rightarrow\hat\beta=(X^TX)^{-1}X^Ty (se XTXX^TX invertibile: colonne indipendenti, n≥p+1n\ge p+1).

Esempio. x=[1,2,3,4]x=[1,2,3,4], y=[2,3,5,4]y=[2,3,5,4]: XTX=[4101030]X^TX=\begin{bmatrix}4&10\\10&30\end{bmatrix}, XTy=[1439]X^Ty=\begin{bmatrix}14\\39\end{bmatrix}, β^=(1,5; 0,8)\hat\beta=(1{,}5;\,0{,}8).

Scalare. β1=cov(x,y)/var(x)\beta_1=\mathrm{cov}(x,y)/\mathrm{var}(x), β0=yˉ−β1xˉ\beta_0=\bar y-\beta_1\bar x. Geometria. XT(y−Xβ)=0X^T(y-X\beta)=0: residui ortogonali alle colonne di XX; con la colonna di uni i residui sommano a 00.

Formula (R2R^2). R2=1−SSresSStotR^2=1-\dfrac{SS_{res}}{SS_{tot}}, SSres=∑(yi−y^i)2SS_{res}=\sum(y_i-\hat y_i)^2, SStot=∑(yi−yˉ)2SS_{tot}=\sum(y_i-\bar y)^2. 11 = perfetto, 00 = come la media, <0<0 = peggio della media.

Esempio. SSres=1,8SS_{res}=1{,}8, SStot=5SS_{tot}=5: R2=0,64R^2=0{,}64.

Espansione di base: aggiungere x2,x3,…x^2,x^3,\dots resta lineare nei parametri; il training MSE cala sempre ma un polinomio di grado alto (es. 20) non generalizza (overfitting).

Training/validation/test. Training: trova i parametri; validation: confronta modelli; test: stima finale, mai usato prima. Una sola divisione casuale (es. 80/20) può ingannare ⇒\Rightarrow cross-validation. Standardizzare con media e deviazione standard del training.

Errori tipici: valutare sul training; colonna di uni mancante; coefficienti con scale diverse confrontati; XTXX^TX quasi singolare per feature collineari.

Esercizi su questo argomento

Lezioni in cui compare

Teoria collegata