LightGBM
LightGBM è un framework di gradient boosting che costruisce alberi decisionali in modalità leaf-wise a partire da istogrammi delle caratteristiche, per addestrarsi rapidamente su grandi dataset tabellari.
LightGBM (macchina di boosting del gradiente leggero) è un framework open source di gradient boosting che addestra insiemi di alberi decisionali su dati tabellari, progettato per essere rapido e usare poca memoria con dataset di grandi dimensioni. Microsoft lo ha rilasciato nel 2016 e ne ha descritto gli algoritmi nell'articolo NeurIPS 2017 LightGBM: un albero decisionale di gradient boosting altamente efficiente. Nel marzo 2026, il repository ufficiale è passato all'organizzazione GitHub lightgbm-org, sotto la guida degli stessi responsabili. LightGBM gestisce classificazione, regressione e ranking da Python, R, C++ e riga di comando, ed è presente in molte soluzioni vincitrici di competizioni di apprendimento automatico. Su tabelle di medie dimensioni, con circa 10.000 righe, gli insiemi di alberi come questo spesso superano ancora il deep learning.
Come funziona LightGBM#
Il gradient boosting costruisce gli alberi uno alla volta. Ogni nuovo albero viene adattato ai gradienti della funzione di perdita rispetto alle predizioni dell'insieme corrente; nel caso dell'errore quadratico, questi corrispondono semplicemente ai residui, quindi l'albero corregge gli errori lasciati dai precedenti. La predizione del modello è la somma dei risultati di tutti gli alberi, ciascuno scalato da un tasso di apprendimento. La fase più costosa consiste nel trovare la divisione migliore per ciascun nodo; LightGBM la accelera con quattro tecniche:
- Divisioni basate su istogrammi: prima dell'addestramento, LightGBM raggruppa ciascuna caratteristica continua in un massimo di 255 bin (
max_bin). La ricerca delle divisioni esamina i confini dei bin anziché ogni valore ordinato; dopo una divisione, l'istogramma del figlio più piccolo viene costruito dai dati, perché quello del figlio più grande equivale all'istogramma del genitore meno quello del figlio più piccolo. - Crescita foglia per foglia: LightGBM divide sempre la foglia la cui divisione migliore riduce maggiormente la perdita, finché l'albero non raggiunge
num_leavesfoglie (31 per impostazione predefinita), invece di dividere ogni nodo a una certa profondità prima di passare a quella successiva. A parità di numero di foglie, questo approccio raggiunge una perdita inferiore rispetto alla crescita livello per livello e produce alberi profondi e sbilanciati, che possono adattarsi eccessivamente a dataset di piccole dimensioni. - Campionamento unilaterale basato sul gradiente (GOSS): le righe con gradienti elevati sono quelle che il modello continua a predire male. Con
data_sample_strategy="goss", LightGBM mantiene il 20% delle righe con i gradienti più elevati, campiona casualmente un ulteriore 10% dalle restanti e assegna a questo campione pesi maggiori, così che la distribuzione dei dati resti simile a quella originale. - Raggruppamento esclusivo delle caratteristiche (EFB): le caratteristiche sparse che raramente sono diverse da zero nello stesso momento, come le colonne one-hot, vengono accorpate in un'unica caratteristica, riducendo il numero di istogrammi da creare.
Ogni albero cresce ripetendo la ricerca delle divisioni finché non esaurisce il budget di foglie o nessuna divisione risulta utile; il boosting ripete questa procedura a ogni iterazione:
LightGBM suddivide direttamente anche le caratteristiche categoriche codificate come interi quando sono elencate in categorical_feature, raggruppando le categorie a ogni divisione senza codifica one-hot, e gestisce per impostazione predefinita i valori mancanti. L'addestramento viene eseguito su CPU, su GPU (device_type="gpu" o "cuda") e su più macchine con i suoi learner distribuiti.
Addestramento e ottimizzazione di LightGBM#
Le classi LGBMClassifier, LGBMRegressor e LGBMRanker, con uno stile simile a scikit-learn, coprono la maggior parte dei casi d'uso. Poiché gli alberi con crescita foglia per foglia possono diventare molto profondi, i principali controlli per contrastare l'overfitting sono num_leaves, min_child_samples (20 righe per foglia per impostazione predefinita) e max_depth, insieme al tasso di apprendimento e al numero di alberi; di solito questi valori si definiscono con l'ottimizzazione degli iperparametri o interrompendo anticipatamente l'addestramento su un insieme di validazione. I vantaggi degli istogrammi e della crescita foglia per foglia emergono rispetto al classico gradient boosting con divisioni esatte di scikit-learn su una tabella sintetica di 20.000 righe e 40 caratteristiche:
import time
import lightgbm as lgb
from sklearn.datasets import make_classification
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import train_test_split
X, y = make_classification(n_samples=20_000, n_features=40, n_informative=15, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 200 trees each: exact split search vs. LightGBM's histograms and leaf-wise growth
for model in (GradientBoostingClassifier(n_estimators=200), lgb.LGBMClassifier(n_estimators=200, verbose=-1)):
start = time.perf_counter()
model.fit(X_train, y_train)
seconds = time.perf_counter() - start
print(f"{type(model).__name__}: {seconds:.1f} s, accuracy {model.score(X_test, y_test):.3f}")Su una CPU Apple M5 Pro, LightGBM crea i suoi 200 alberi, con un massimo di 31 foglie ciascuno, in meno di un secondo, mentre scikit-learn impiega circa 20 secondi per creare 200 alberi con divisioni esatte e profondità 3; inoltre, gli alberi più grandi di LightGBM raggiungono un'accuratezza di test di 0.956, contro 0.901. I modelli addestrati vengono salvati in formato testo o JSON e onnxmltools li converte in ONNX per la distribuzione in produzione al di fuori di Python.
LightGBM e metodi correlati#
- XGBoost: la libreria di gradient boosting che ha reso popolare nel 2014 il boosting regolarizzato del secondo ordine. Per impostazione predefinita crea alberi con profondità limitata (
max_depth=6), offre la crescita foglia per foglia congrow_policy="lossguide"e, dalla versione 2.0, usa per impostazione predefinita la ricerca delle divisioni basata su istogrammi; oggi le due librerie condividono quindi la maggior parte delle tecniche. - CatBoost: la libreria di boosting di Yandex, rilasciata nel 2017, che costruisce alberi simmetrici e codifica le caratteristiche categoriche con statistiche target ordinate per limitare la perdita di informazioni sul target.
- Foresta casuale: addestra alberi profondi in modo indipendente su campioni bootstrap e ne calcola la media delle predizioni, riducendo così la varianza.
- HistGradientBoosting:
HistGradientBoostingClassifiereHistGradientBoostingRegressordi scikit-learn sono implementazioni ispirate a LightGBM, che suddividono le caratteristiche in istogrammi nello stesso modo. - Modelli fondazionali per dati tabellari: i Transformer preaddestrati, come TabPFN, eseguono predizioni su tabelle di piccole dimensioni in un unico passaggio in avanti, senza addestramento specifico per ciascun dataset.
Applicazioni nel mondo reale#
- Frodi e rischio di credito: le banche assegnano un punteggio alle transazioni e alle richieste di prestito in base alla cronologia del conto e a caratteristiche quali esercente, importo e orario; l'inferenza rapida di LightGBM è adatta alle decisioni sulle singole transazioni.
- Previsione della domanda: i rivenditori prevedono le vendite per prodotto e punto vendita usando vendite passate, prezzi, promozioni e caratteristiche del calendario. L'affluenza è un input comune: Ultralytics YOLO26 conta gli oggetti e traccia le persone che attraversano una linea nei video dei negozi, riportando i conteggi di ingressi e uscite per classe; i conteggi sommati per ora diventano caratteristiche per una previsione dei turni del personale con LightGBM.
- Ranking per ricerca e raccomandazione:
LGBMRankerviene addestrato per impostazione predefinita con l'obiettivo LambdaRank, ordinando documenti o prodotti all'interno di ciascun gruppo di query per ottimizzare il guadagno cumulativo scontato normalizzato (NDCG).










