Esercizio - Ridge regression con standardizzazione e coefficienti in unità originali
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 5
Testo. Quattro osservazioni con due feature molto correlate: e .
- Standardizzare le feature (con media e deviazione standard del training) e centrare .
- Calcolare i coefficienti OLS e quelli della ridge con sui dati standardizzati.
- Riportare i coefficienti nelle unità originali delle feature e verificare che le previsioni coincidono.
- Commentare la differenza tra OLS e ridge.
Teoria usata: 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 → (ridge, standardizzazione, coefficienti in unità originali); Regressione lineareNell'apprendimento supervisionato si impara una funzione $F(x)$ dagli esempi $(x,y)$: regressione se $y$ è continua, classificazione se è categorica. Il modello lineare è $F_\beta(x)=\beta_0+\beta_1x_1+\dots+\beta_px_p=X\beta$ (con una colonna di uni per $\beta_0$) e i parametri si scelgono minimizzando l'errore quadratico medio $\mathrm{MSE}=\frac1n\sum_i(y_i-F_\beta(x_i))^2$, funzione convessa dei parametri. Annullando il gradiente di $J(\beta)=|y-X\beta|^2$ si ottengono le equazioni normali $X^TX\beta=X^Ty$ e la soluzione dei minimi quadrati ordinari $\beta=(X^TX)^{-1}X^Ty$. Il coefficiente di determinazione $R^2=1-SS_{res}/SS_{tot}$ misura la qualità del fit (0 = come la media, negativo = peggio della media). Un modello va valutato su un test set mai usato per addestrare: l'errore sul training è ottimistico e un polinomio di grado alto lo azzera senza generalizzare.Regressione lineare →; la standardizzazione è in 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 →; matrici in 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 → e 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 →.
1. Standardizzazione
Medie: , . Deviazioni standard (divisore ): ; .
Dati standardizzati : Media di : ; .
Perché si centra . L'intercetta non si penalizza; se le colonne di hanno media zero, la soluzione per l'intercetta è la media di () e il resto del problema riguarda solo con la formula .
2. OLS e ridge
(Gli elementi diagonali valgono perché ogni colonna ha varianza ; quello fuori diagonale è : le due feature hanno correlazione .)
OLS (). (molto piccolo rispetto a : la matrice è quasi singolare).
Ridge (). , : (Con si ottiene .)
3. Coefficienti nelle unità originali
Dal modello si ricavano e .
- OLS: , , (con più cifre decimali ).
- Ridge: , , .
Verifica. Per la prima osservazione la ridge standardizzata dà ; il modello in unità originali dà ✓ (stesso valore, a meno degli arrotondamenti).
4. Commento
Le due feature sono quasi proporzionali (), quindi l'OLS distribuisce il peso in modo instabile: dà un coefficiente negativo () alla prima e uno molto grande () alla seconda, che si compensano. La ridge li riporta a valori concordi e di dimensione simile ( e ), più sensati se entrambe le feature crescono insieme a . L'MSE sul training è più alto per la ridge ( contro dell'OLS): la ridge cede un po' di adattamento al training per ottenere stabilità (e, su dati nuovi, migliore generalizzazione). Con sempre più grande i coefficienti tendono a zero.
Verifica
import numpy as np
X = np.array([[1,10],[2,20],[3,25],[4,45.]]); y = np.array([3,5,6,12.])
mu, sd = X.mean(0), X.std(0); Z = (X - mu) / sd; yc = y - y.mean()
for lam in (0, 1, 2):
b = np.linalg.solve(Z.T @ Z + lam * np.eye(2), Z.T @ yc)
b_orig = b / sd; b0_orig = y.mean() - (b * mu / sd).sum()
print(lam, b.round(3), b_orig.round(4), round(b0_orig, 3)) # lam=1: [1.103 1.816] [0.9863 0.1425] 0.473