Esercizio - Regressione quantile con funzione pinball e discesa del gradiente
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 3
Testo (1° appello 2026, parte di modellazione). Nella regressione lineare con perdita quadratica si sostituisce con la perdita asimmetrica e si minimizza . Il subgradiente per il singolo campione è con se , se , se ; quindi .
- Calcolare a mano il minimo della perdita per un modello costante su con e .
- Implementare perdita, gradiente e addestramento con discesa del gradiente e passo adattivo sul dataset insurance (età, indice di massa corporea, numero di figli costi assicurativi
charges, 700 campioni). - Addestrare con e stampare la percentuale di punti del training per cui ; ripetere con e e spiegare in al massimo 3 righe che cosa calcola l'algoritmo.
Teoria usata: 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 → (subgradiente, passo adattivo); 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 →; per mediana e quantili 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 → e Funzione di distribuzioneLa funzione di distribuzione (FdD) F_X(x) = P(X ≤ x) è definita per ogni v.a., è crescente, continua a destra, va da 0 a 1 e determina la legge; per una v.a. discreta è a gradini, con salti in corrispondenza dei valori e di altezza pari alla densità.Funzione di distribuzione →.
1. Perché la perdita calcola un quantile
Con un modello costante e , : la perdita media è .
- : è sotto: ; : ; : ; è sopra: . Somma , media .
- : : ; : ; : ; : . Somma , media .
Con conviene (il quantile : l' dei dati, 3 su 4, è ). Con la stessa dà mentre dà : il minimo è nella mediana (). In generale: la derivata della perdita media rispetto a è , con per i dati sopra e per quelli sotto; si annulla quando , cioè quando la frazione di dati sotto è : è il quantile di livello . Per la perdita è (errore assoluto) e il minimo è la mediana; la perdita quadratica, invece, porta alla media.
2. Implementazione
import numpy as np
def pinball(y, y_hat, tau):
r = y - y_hat
return np.mean(np.where(r >= 0, tau * r, (tau - 1) * r))
def pinball_grad(X, beta, y, tau): # X con colonna di uni, y: (n,1)
r = y - X @ beta
s = np.where(r > 0, -tau, np.where(r < 0, 1 - tau, 0.0))
return X.T @ s / len(y) # (1/n) X^T s
def train(X, y, tau, lr0, decay=1e-4, max_iter=10000):
X = np.hstack([np.ones((len(X), 1)), X]); beta = np.random.rand(X.shape[1], 1)
for i in range(max_iter):
beta -= lr0 / (1 + decay * i) * pinball_grad(X, beta, y, tau)
return betaPassi. (i) il residuo determina il segno del subgradiente; (ii) per la regola della catena, con si ha : se , ha derivata rispetto a e quindi rispetto a ; se , ha derivata rispetto a , quindi ; (iii) la media su è ; (iv) aggiornamento con il passo adattivo .
3. Risultati
Su 700 campioni di insurance (seme 0), training 560, test 140, con , e 10 000 iterazioni, senza standardizzare le feature:
| % di training con | % di test con | |
|---|---|---|
(L'appello riporta , , con il suo campione.) Con feature standardizzate la discesa del gradiente converge molto meglio: la soluzione coincide con quella esatta (programmazione lineare) fino alla terza cifra; per la perdita media è contro dell'ottimo e la frazione sotto è ; per : e ; per : e . Senza standardizzare l'intercetta si muove troppo lentamente (le età sono dell'ordine di 40, i costi di ) e la frazione sotto la retta è solo approssimata.
Che cosa calcola l'algoritmo. La regressione con questa perdita (pinball loss) stima il quantile condizionato di date le feature, non la media condizionata come l'OLS: per trova l'iperpiano sotto cui sta circa l' dei dati di training (e sopra circa il ), per quello con circa il sotto, per la mediana condizionata. Serve per previsioni conservative (per esempio stimare il costo che sarà superato solo nel dei casi) o per conoscere la distribuzione condizionata e non solo la media. Nei dati standardizzati l'effetto di bmi sul costo è grande per (coefficiente per deviazione standard) e quasi nullo per e : l'indice di massa corporea influenza soprattutto la coda alta dei costi.