Il boosting è una tecnica ensemble che costruisce un modello forte combinando molti modelli deboli addestrati in sequenza. A differenza del bagging, che addestra modelli quasi indipendenti e poi li media, il boosting aggiunge ogni nuovo componente per correggere gli errori residui dei componenti precedenti.
In forma generale, un modello boosting additivo può essere scritto come
dove h_m sono modelli base e \alpha_m sono pesi o coefficienti di contributo.
Modelli deboli
Un modello debole è un predittore appena migliore del caso o comunque limitato nella capacità. Nel boosting moderno, spesso si usano alberi decisionali poco profondi. Ogni albero da solo è semplice; la somma di molti alberi costruiti sequenzialmente può rappresentare relazioni complesse.
L’idea è che errori diversi vengano corretti passo dopo passo. Se un modello sbaglia certe osservazioni, il modello successivo dedica più attenzione a quelle osservazioni o ai residui che esse producono.
AdaBoost
AdaBoost nasce per classificazione binaria. A ogni iterazione assegna pesi maggiori agli esempi classificati male e pesi minori a quelli classificati correttamente. Il modello successivo viene quindi spinto a concentrarsi sugli errori precedenti.
La predizione finale ha forma
I coefficienti \alpha_m danno più peso ai classificatori base più affidabili. Il meccanismo è efficace, ma può essere sensibile a etichette rumorose: esempi sbagliati o anomali possono ricevere peso crescente.
Gradient boosting
Nel gradient boosting, l’ensemble viene interpretato come una discesa del gradiente nello spazio delle funzioni. A ogni passo si aggiunge un modello base che approssima la direzione di massimo miglioramento della funzione di perdita.
Se L(y,F(x)) è la loss, si calcolano pseudo-residui del tipo
Il nuovo modello h_m viene addestrato per approssimare questi pseudo-residui. Poi l’ensemble viene aggiornato:
dove \eta è il learning rate.
Parametri cruciali
Le prestazioni del boosting dipendono molto da:
- numero di iterazioni M;
- learning rate \eta;
- profondità e complessità dei modelli base;
- sottocampionamento di righe o colonne;
- regolarizzazione;
- criterio di early stopping.
Un learning rate piccolo richiede più iterazioni ma tende a migliorare la generalizzazione. Alberi troppo profondi possono catturare interazioni complesse ma aumentano il rischio di overfitting.
Bagging e boosting
Bagging e boosting riducono errori diversi. Il bagging riduce soprattutto la varianza di modelli instabili, mediando predittori addestrati su campioni bootstrap. Il boosting riduce progressivamente bias e residui, costruendo un modello additivo orientato alla loss.
Per questo il bagging è naturalmente parallelo, mentre il boosting è sequenziale: il modello m dipende dai risultati del modello m-1.
Uso operativo
Il boosting è molto usato su dati tabellari, ranking, scoring di rischio, classificazione e regressione. Algoritmi come gradient boosting, XGBoost, LightGBM e CatBoost sono diventati strumenti standard in molte applicazioni industriali.
In classificazione probabilistica, però, accuratezza e ranking non bastano: è opportuno controllare anche calibrazione, curva ROC e metriche legate al costo degli errori.
Errori comuni
Il primo errore è aumentare il numero di iterazioni senza validazione: il training error tende a scendere, ma la generalizzazione può peggiorare. Il secondo è usare alberi base troppo complessi, trasformando il boosting in un ensemble difficile da controllare. Il terzo è trascurare dati rumorosi o outlier: il meccanismo sequenziale può concentrarsi proprio sui casi problematici. Il quarto è confrontare boosting e rete neurale solo sull’accuratezza, senza considerare interpretabilità, costo di inferenza, calibrazione e manutenzione.
Per esercizi su classificazione e metriche si veda classificazione e metriche: esercizi svolti.