Boosting

[bùsting]

Tecnica di ensemble sequenziale: ogni modello corregge gli errori del precedente. XGBoost e LightGBM dominano i dati tabulari.

Il boosting è una tecnica di ensemble dove i modelli vengono addestrati sequenzialmente, ognuno cercando di correggere gli errori dei precedenti. Riduce il bias del modello finale.

Differenza con bagging: bagging addestra modelli in parallelo su dati diversi. Boosting in sequenza, ognuno focalizzato sugli errori dei predecessori.

Algoritmi famosi:

  • AdaBoost (1995): il primo. Aumenta i pesi degli esempi sbagliati a ogni iterazione.
  • Gradient Boosting: ogni nuovo modello addestrato per predire il gradiente dell'errore residuo. Generalizza AdaBoost.
  • XGBoost (2014): implementazione ottimizzata di gradient boosting. Vincitore di Kaggle infinito.
  • LightGBM (Microsoft, 2017): più veloce di XGBoost, usa istogrammi.
  • CatBoost (Yandex, 2017): gestisce bene categorical features.

Perché boosting domina i dati tabulari:

  • Funziona con poche feature: gli alberi gestiscono bene 10-1000 feature.
  • Non serve normalizzare: gli split degli alberi sono invarianti a scaling.
  • Robusto a missing data.
  • Performance al top per dati tabulari, dove deep learning non è sempre meglio.

Iperparametri chiave (XGBoost / LightGBM):

  • n_estimators: quante iterazioni / alberi. 100-1000 tipico.
  • learning_rate: quanto pesa ogni nuovo albero. 0.05-0.1 standard.
  • max_depth: profondità degli alberi. 3-8 tipico.
  • min_child_weight, gamma: regolarizzazione.

Pericolo: overfitta più del bagging. Sempre validare con cross-validation, sempre early stopping.

Stato attuale: per dati tabulari, XGBoost / LightGBM / CatBoost battono ancora le reti neurali nella maggioranza dei casi. TabNet, FT-Transformer e altri tentano di portare deep learning sui tabular ma non sempre vincono. Il vecchio gradient boosting non vuole morire, e fa bene.