Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

XGBoost

XGBoost è una libreria di gradient boosting che aggiunge alberi decisionali regolarizzati uno alla volta ed è una delle scelte migliori per i dati tabulari. Come funziona, con codice.

XGBoost (potenziamento estremo del gradiente) è una libreria open source per gli alberi decisionali potenziati con gradient boosting, nonché uno degli strumenti più diffusi per i dati tabellari. Tianqi Chen l'ha avviata come progetto di ricerca all'Università di Washington e l'ha pubblicata nel 2014; l'articolo KDD del 2016 XGBoost: un sistema scalabile di potenziamento degli alberi, scritto con Carlos Guestrin, ne descrive l'obiettivo regolarizzato e la progettazione del sistema. La libreria, gestita dalla community DMLC, supporta classificazione, regressione e ranking da Python, R, JVM e C, funziona su CPU e GPU e può essere distribuita su più nodi con Dask e Spark. L'articolo riporta che 17 delle 29 soluzioni vincitrici di competizioni pubblicate sul blog di Kaggle nel 2015 usavano XGBoost.

Come funziona XGBoost#

XGBoost costruisce un ensemble in modo sequenziale: parte da una previsione costante e aggiunge un albero per ogni iterazione di boosting, ciascuno addestrato per ridurre la funzione di perdita lasciata dagli alberi precedenti. La previsione finale somma gli output degli alberi, ciascuno ridotto mediante il tasso di apprendimento (eta, 0.3 per impostazione predefinita), così che nessun singolo albero prevalga. Due idee dell'articolo definiscono il modo in cui viene costruito ciascun albero:

  • Obiettivo del secondo ordine: per ogni riga, XGBoost calcola le derivate prima e seconda della funzione di perdita rispetto alla previsione corrente: il gradiente g e l'Hessiana h. Una foglia le cui righe hanno una somma dei gradienti G e una somma delle Hessiane H riceve il peso -G / (H + λ), lo stesso passo di Newton eseguito dagli ottimizzatori del secondo ordine.
  • Alberi regolarizzati: l'obiettivo aggiunge una penalità γ per foglia e una penalità L2 λ sui pesi delle foglie, oltre a una penalità L1 facoltativa α. Una divisione viene mantenuta solo quando il suo guadagno, ½ [G_L²/(H_L + λ) + G_R²/(H_R + λ) − (G_L + G_R)²/(H_L + H_R + λ)] − γ, è positivo: in questo modo la regolarizzazione è integrata nella costruzione degli alberi e si limita l'overfitting.

Gli alberi hanno una profondità limitata (max_depth, 6 per impostazione predefinita) e crescono livello per livello, a meno che grow_policy="lossguide" non attivi la crescita foglia per foglia. L'addestramento viene in genere eseguito con early stopping su un set di validazione:

Valori mancanti, velocità e scalabilità#

La ricerca delle divisioni di XGBoost, consapevole della sparsità, si addestra su tabelle con valori mancanti senza una fase di imputazione. A ogni divisione prova a inviare a sinistra e poi a destra le righe con un valore mancante, mantiene la direzione con il guadagno più alto come ramo predefinito del nodo e usa lo stesso meccanismo per esaminare solo le voci memorizzate nelle matrici sparse, come quelle delle codifiche one-hot. Questo esempio nasconde il 30% di tutti i valori delle feature nel dataset sul cancro al seno di scikit-learn e si addestra direttamente sui valori mancanti:

import numpy as np
import xgboost as xgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Hide 30% of all values; each split learns a default branch for missing ones
rng = np.random.default_rng(0)
X_train_nan = np.where(rng.random(X_train.shape) < 0.3, np.nan, X_train)
X_test_nan = np.where(rng.random(X_test.shape) < 0.3, np.nan, X_test)

for name, train, test in [("complete", X_train, X_test), ("30% missing", X_train_nan, X_test_nan)]:
    model = xgb.XGBClassifier(n_estimators=200, max_depth=4, learning_rate=0.1)
    model.fit(train, y_train)
    print(f"{name}: accuracy {model.score(test, y_test):.3f}")

Stampa un'accuratezza di test pari a 0.972 sui dati completi e a 0.951 con il 30% dei valori mancanti sia nei dati di addestramento sia nei set di test.

Per velocizzare l'addestramento, il metodo ad albero predefinito hist suddivide ogni feature in un massimo di 256 intervalli (max_bin) e cerca le divisioni ai confini degli intervalli, come fa LightGBM; exact, invece, esamina ogni valore ordinato. Impostando device="cuda" si sposta l'addestramento su una GPU NVIDIA; enable_categorical=True suddivide le colonne categoriche in modo nativo, mentre la modalità con memoria esterna permette di addestrarsi su dataset più grandi della RAM. Dalla versione 2.1, i modelli vengono salvati per impostazione predefinita nel formato binario UBJSON.

  • LightGBM: framework di boosting di Microsoft del 2016, che fa crescere gli alberi foglia per foglia per impostazione predefinita e aggiunge il campionamento delle righe basato sul gradiente e il raggruppamento delle feature sparse. Oggi entrambe le librerie usano gli istogrammi per impostazione predefinita e condividono la maggior parte delle tecniche.
  • CatBoost: libreria di boosting di Yandex, che costruisce alberi simmetrici e codifica le feature categoriche con statistiche del target ordinate.
  • Foresta casuale: metodo di bagging che addestra alberi profondi in modo indipendente su campioni bootstrap e ne calcola la media, riducendo la varianza e richiedendo poche regolazioni.
  • Deep learning: lo standard per input non strutturati come immagini, audio e testo, in cui le reti apprendono le feature dai dati grezzi. Sulle tabelle di feature progettate manualmente, gli alberi potenziati restano il riferimento da battere; i modelli fondamentali per dati tabellari, come TabPFN, competono ormai con loro sui dataset piccoli.

Applicazioni nel mondo reale#

  • Rilevamento delle frodi e rischio di credito: le società di pagamento assegnano un punteggio a ogni transazione usando feature quali importo, esercente, posizione, dispositivo e cronologia del conto: un compito fondamentale di modellazione predittiva in cui l'inferenza rapida di XGBoost si adatta alle decisioni in tempo reale.
  • Ispezione visiva: I sistemi di controllo qualità manifatturieri combinano dati di telecamere e sensori. Le previsioni di Ultralytics YOLO26 forniscono i dati delle telecamere: result.summary() restituisce la classe, la confidenza e le coordinate del riquadro di ogni difetto rilevato; uno stabilimento può aggregarle per pezzo e unirle alle letture di temperatura e pressione, usandole come caratteristiche per un modello XGBoost che prevede i guasti.
  • Ranking e previsione dei clic: XGBRanker si addestra per impostazione predefinita con l'obiettivo rank:ndcg per ordinare i risultati di ricerca, mentre i classificatori binari prevedono i tassi di clic sugli annunci.
  • Problemi che hanno vinto competizioni: l'articolo KDD elenca i compiti alla base delle soluzioni vincitrici del 2015, tra cui la previsione delle vendite dei negozi, la classificazione degli eventi di fisica delle alte energie, la classificazione del malware e la previsione dell'abbandono dei corsi online su larga scala.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning