Le ultime tendenze in materia di AI, proposte da esperti
Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.
XGBoost (eXtreme Gradient Boosting) è una libreria di apprendimento automatico distribuita e open source che utilizza alberi decisionali potenziati dal gradiente, un algoritmo di potenziamento dell'apprendimento supervisionato che utilizza la discesa del gradiente. È noto per la sua velocità, efficienza e capacità di scalare in modo efficace con set di dati di grandi dimensioni.
Sviluppato da Tianqi Chen dell'Università di Washington, XGBoost è un'implementazione avanzata del boosting del gradiente con lo stesso framework generale, ovvero combina alberi di weak learner con strong learner sommando i residui. La libreria è disponibile per C++, Python, R, Java, Scala e Julia.1
Gli alberi decisionali sono utilizzati per attività di classificazione o regressione nell'apprendimento automatico. Usano una struttura ad albero gerarchica in cui un nodo interno rappresenta una funzione, il ramo rappresenta una regola decisionale e ogni nodo foglia rappresenta il risultato del set di dati.
Poiché i decision tree sono inclini all'overfitting, i metodi d'insieme, come il boosting, possono essere spesso utilizzati per creare modelli più robusti. Il boosting combina più alberi deboli individuali, ovvero modelli che hanno prestazioni leggermente migliori rispetto al caso random, per formare uno strong learner. Ogni weak learner viene addestrato in sequenza per correggere gli errori commessi dai modelli precedenti. Dopo centinaia di iterazioni, i weak learner vengono trasformati in strong learner.
Le foreste casuali e gli algoritmi di boosting sono entrambe tecniche di apprendimento d'insieme popolari che utilizzano alberi di learner individuali per migliorare le prestazioni predittive. Le foreste casuali si basano sul concetto di bagging (aggregazione bootstrap) e addestrano ogni albero in modo indipendente per combinare le proprie previsioni, mentre gli algoritmi di boosting utilizzano un approccio additivo in cui i weak learner vengono addestrati in sequenza a correggere gli errori dei modelli precedenti.
I decision tree potenziati dal gradiente sono un tipo di algoritmo di boosting che utilizza la discesa del gradiente. Come altre metodologie di boosting, il boosting del gradiente inizia con un weak learner per fare previsioni. Il primo decision tree nel boosting del gradiente è chiamato base learner. Successivamente, i nuovi alberi vengono creati in modo additivo in base agli errori del base learner. L'algoritmo calcola quindi i residui delle previsioni di ciascun albero per stabilire quanto le previsioni del modello fossero lontane dalla realtà. I residui sono la differenza tra i valori previsti e quelli effettivi del modello. I residui vengono quindi aggregati per assegnare un punteggio al modello con una funzione di perdita.
Nel machine learning, le funzioni di perdita vengono utilizzate per misurare le prestazioni di un modello. Il gradiente, negli alberi decisionali con boosting del gradiente, si riferisce alla discesa del gradiente. La discesa del gradiente viene utilizzata per ridurre al minimo la perdita (cioè per migliorare le prestazioni del modello) quando addestriamo nuovi modelli. La discesa del gradiente è un algoritmo di ottimizzazione comune, utilizzato per ridurre al minimo la funzione di perdita nei problemi di machine learning. Alcuni esempi di funzioni di perdita includono l'errore quadratico medio o l'errore medio assoluto per problemi di regressione, la perdita di entropia incrociata per problemi di classificazione o le funzioni di perdita personalizzate che possono essere le sviluppate per un caso d'uso e un set di dati specifici.
Di seguito vengono illustrate alcune delle funzioni di XGBoost in Python che lo distinguono rispetto al normale pacchetto di boosting del gradiente in scikit-learn2:
Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.
In questa sezione, esamineremo come utilizzare il pacchetto XGBoost, come selezionare gli iperparametri per il booster dell'albero XGBoost, come XGBoost si confronta con altre implementazioni di boosting e alcuni dei suoi casi d'uso.
Supponendo che tu abbia già eseguito un'analisi esplorativa dei dati, continua a suddividere i tuoi dati tra un set di dati di addestramento e un set di dati di test. Successivamente, converti i tuoi dati nel formato DMatrix previsto da XGBoost3. DMatrix è la struttura dati interna di XGBoost ottimizzata per l'efficienza della memoria e la velocità di addestramento4.
Crea quindi un'istanza di un modello XGBoost e, a seconda del caso d'uso, seleziona la funzione oggettiva che desideri utilizzare attraverso l'iperparametro "oggetto". Ad esempio, per un'attività di classificazione multiclasse, dovresti impostare l'obiettivo su "multi:softmax"5. In alternativa, se hai un problema di classificazione binaria, puoi utilizzare l'obiettivo di regressione logistica "binary:logistic". Ora puoi utilizzare il tuo set di addestramento per addestrare il modello e prevedere le classificazioni dei dati messi da parte come set di test. Valuta le prestazioni del modello confrontando i valori previsti con i valori effettivi del set di test. Puoi utilizzare metriche come accuratezza, precisione, richiamo o punteggio f-1 per valutare il tuo modello. Potresti anche visualizzare i tuoi veri positivi, veri negativi, falsi positivi e falsi negativi utilizzando una matrice di confusione.
Successivamente, puoi eseguire l'iterazione di una combinazione di iperparametri per migliorare le prestazioni del modello. La messa a punto degli iperparametri è il processo di ottimizzazione per gli iperparametri di un algoritmo di apprendimento automatico. I migliori iperparametri si trovano utilizzando metodi di ricerca a griglia e convalida incrociata che iterano su un dizionario di possibili opzioni di ottimizzazione degli iperparametri.
Di seguito è riportata una spiegazione di alcuni degli iperparametri disponibili per la messa a punto degli alberi con gradiente potenziato in XGBoost:
XGBoost è uno dei tanti algoritmi di boosting open source disponibili. In questa sezione, confronteremo XGBoost con altri tre framework di boosting.
AdaBoost è uno dei primi algoritmi di boosting inventati da Yoav Freund e Robert Schapire nel 19957. In AdaBoost, viene data maggiore enfasi alle previsioni non corrette attraverso un sistema di valutazioni che influisce in modo più significativo sui punti dati più difficili da prevedere. Innanzitutto, a ogni punto dati nel set di dati viene assegnato un peso specifico. Poiché i weak learner prevedono correttamente un esempio, il peso dell'esempio si riduce. Ma se i learner sbagliano un esempio, il peso di quel punto dati aumenta. Man mano che vengono creati nuovi alberi, il loro peso si basa sulle classificazioni errate degli alberi di apprendimento precedenti. Con l'aumentare del numero di learner, i campioni facili da prevedere verranno utilizzati meno per i future learner, mentre i dati più difficili da prevedere verranno ponderati in modo più evidente. Gradient Boosting e XGBoost tendono ad essere alternative più forti ad AdaBoost grazie alla loro precisione e velocità.
CatBoost è un altro framework di boosting del gradiente. Sviluppato da Yandex nel 2017, è specializzato nella gestione di funzioni categoriche senza alcuna necessità di pre-elaborazione e generalmente funziona bene senza la necessità di eseguire un'ampia regolazione degli iperparametri8. Come XGBoost, CatBoost ha integrato il supporto per la gestione dei dati mancanti. CatBoost è particolarmente utile per i set di dati con molte funzioni di categorie. Secondo Yandex, il framework viene utilizzato per la ricerca, i sistemi di raccomandazione, gli assistenti personali, le auto a guida autonoma, la previsione del tempo e altri compiti.
LightGBM (Light Gradient Boosting Machine) è l'ultimo algoritmo di aumento del gradiente che esamineremo. LightGBM è stato sviluppato da Microsoft e rilasciato per la prima volta nel 20169. Laddove la maggior parte degli algoritmi di apprendimento degli alberi decisionali fa crescere gli alberi in profondità, LightGBM utilizza una strategia di crescita degli alberi per foglie10. Come XGBoost, LightGBM mostra velocità e precisione di addestramento elevate dei modelli e si comporta bene con set di dati di grandi dimensioni.
XGBoost e alberi decisionali potenziati dal gradiente sono utilizzati in una varietà di applicazioni di data science, tra cui:
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.