XGBoost La Guida Definitiva (Parte 1)

XGBoost Guida Definitiva (Parte 1)

Foto di Sam Battaglieri su Unsplash

XGBoost (abbreviazione di eXtreme Gradient Boosting) è una libreria open-source che fornisce un’implementazione ottimizzata e scalabile di alberi decisionali addestrati con il metodo del gradiente. Incorpora varie tecniche di ottimizzazione software e hardware che gli consentono di gestire enormi quantità di dati.

Inizialmente sviluppato come progetto di ricerca da Tianqi Chen e Carlos Guestrin nel 2016 [1], XGBoost è diventato la soluzione di riferimento per la risoluzione di compiti di apprendimento supervisionato su dati strutturati (tabulari). Fornisce risultati all’avanguardia su molti compiti standard di regressione e classificazione, e molti vincitori di competizioni Kaggle hanno utilizzato XGBoost come parte delle loro soluzioni vincenti.

Anche se sono stati compiuti progressi significativi nell’utilizzo di reti neurali profonde per dati tabulari, queste sono ancora superate da XGBoost e altri modelli basati su alberi su molti benchmark standard [2, 3]. Inoltre, XGBoost richiede molto meno messa a punto rispetto ai modelli profondi.

Le principali innovazioni di XGBoost rispetto ad altri algoritmi di boosting del gradiente includono:

  1. Regolarizzazione intelligente degli alberi decisionali.
  2. Utilizzo di un’approssimazione del secondo ordine per ottimizzare l’obiettivo (boosting di Newton).
  3. Procedura di stima dei quantili pesata per un calcolo efficiente.
  4. Un algoritmo di apprendimento ad albero innovativo per gestire dati sparsi.
  5. Supporto per l’elaborazione parallela e distribuita dei dati.
  6. Struttura a blocchi consapevole della cache per l’apprendimento degli alberi fuori dalla memoria principale.

In questa serie di articoli copriremo XGBoost in modo approfondito, compresi i dettagli matematici dell’algoritmo, l’implementazione dell’algoritmo in Python da zero, una panoramica della libreria XGBoost e come utilizzarla nella pratica.

In questo primo articolo della serie, procederemo a derivare l’algoritmo XGBoost passo-passo, forniremo un’implementazione dell’algoritmo in pseudocodice, e poi illustreremo il suo funzionamento su un set di dati di esempio.

La descrizione dell’algoritmo fornita in questo articolo si basa sul paper originale di XGBoost [1] e sul…