Il gradient boosting è una forma di boosting in cui un modello additivo viene costruito aggiungendo, a ogni passo, un nuovo predittore che approssima il gradiente negativo della funzione di perdita rispetto alle predizioni correnti.
Invece di aggiornare direttamente un vettore di parametri, il metodo aggiorna una funzione predittiva:
dove h_m sono modelli deboli, spesso alberi decisionali poco profondi, e \eta è il learning rate.
Idea funzionale
Dato un insieme di osservazioni (x_i,y_i), il metodo cerca di minimizzare
Al passo m, si calcolano gli pseudo-residui
Il nuovo modello base h_m viene addestrato per approssimare questi pseudo-residui. Poi si aggiorna:
Il termine “gradient” deriva proprio da questa interpretazione: il modello si muove nella direzione di discesa della loss, ma nello spazio delle funzioni.
Caso della loss quadratica
Per regressione con loss quadratica
il gradiente rispetto a F è
Il gradiente negativo è quindi
Gli pseudo-residui coincidono con i residui ordinari: il nuovo albero cerca di predire ciò che il modello precedente non ha ancora spiegato.
Classificazione
In classificazione, il gradient boosting può usare loss logistiche o cross-entropy. In quel caso gli pseudo-residui non sono semplici residui y-\hat y, ma quantità derivate dalla loss probabilistica. Questo consente di ottimizzare direttamente obiettivi coerenti con probabilità e classificazione.
Tuttavia, anche se un modello gradient boosting ha ottima accuratezza o AUC, le probabilità prodotte possono richiedere calibrazione, specialmente quando si usano molte iterazioni o dati sbilanciati.
Parametri principali
I parametri più importanti sono:
- numero di alberi;
- learning rate \eta;
- profondità massima degli alberi;
- numero minimo di osservazioni per foglia;
- sottocampionamento di righe e colonne;
- regolarizzazione;
- early stopping.
Learning rate piccolo e molti alberi spesso generalizzano meglio di pochi alberi con passi grandi, ma aumentano costo e tempi di addestramento. Alberi più profondi catturano interazioni più complesse, ma aumentano il rischio di overfitting.
Implementazioni moderne
XGBoost, LightGBM e CatBoost sono implementazioni efficienti e regolarizzate del gradient boosting su alberi. Introducono ottimizzazioni computazionali, gestione di feature categoriche o sparse, penalizzazioni, strategie di crescita degli alberi e strumenti per early stopping.
Questi modelli sono spesso molto competitivi su dati tabellari, dove possono superare reti neurali più complesse se i dati non hanno struttura spaziale o sequenziale forte.
Confronto con bagging e random forest
Il bagging e le random forest riducono soprattutto varianza mediando molti alberi addestrati in parallelo. Il gradient boosting lavora in sequenza e riduce progressivamente la loss residua. Questo lo rende potente, ma anche più sensibile a tuning, rumore e validazione.
Errori comuni
Il primo errore è aumentare il numero di alberi senza controllare la loss di validazione. Il secondo è usare alberi troppo profondi, trasformando il modello in un sistema ad alta varianza. Il terzo è valutare solo l’accuratezza, ignorando metriche operative come curva ROC, calibrazione, costo dei falsi positivi e falsi negativi.
Per esercizi su valutazione dei classificatori si veda classificazione e metriche: esercizi svolti.