Cos'è il boosting del gradiente?

Autori

Bryan Clark

Senior Technology Advocate

Fangfang Lee

Developer Advocate

IBM

Cos'è il boosting del gradiente?

Il boosting del gradiente è un algoritmo di apprendimento d’insieme che produce previsioni accurate combinando più alberi decisionali in un unico modello. Questo approccio algoritmico alla modellazione predittiva, introdotto da Jerome Friedman, utilizza modelli base per utilizzare i loro punti di forza, correggere gli errori e migliorare le funzionalità. Catturando modelli complessi nei dati, il boosting del gradiente eccelle in diverse attività di modellazione predittiva.1

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.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Apprendimento d'insieme e boosting

L'apprendimento d'insieme è un approccio di machine learning che combina più modelli o metodi per aumentare le prestazioni predittive. Spesso impiega tecniche come il bagging e il boosting. Il bagging comporta l'addestramento di numerosi modelli su diversi sottoinsiemi di dati con una certa casualità, il che aiuta a ridurre la varianza calcolando la media dei singoli errori. Un ottimo esempio di questo approccio sono le foreste casuali.

Al contrario, il boosting è una tecnica di ensemble che addestra in modo iterativo i modelli a correggere gli errori precedenti. Dà più peso alle istanze classificate erroneamente nei modelli successivi, consentendo loro di concentrarsi su punti dati difficili e, in ultima analisi, di migliorare le prestazioni complessive. AdaBoost, ampiamente considerato il primo algoritmo di boosting applicabile, è un classico esempio di questo metodo. Sia il bagging che il boosting ottimizzano il compromesso tra bias e varianza nei modelli, portando a prestazioni più solide. 2

Queste tecniche sono ampiamente utilizzate nel machine learning per migliorare l'accuratezza dei modelli, soprattutto quando si tratta di set di dati complessi o rumorosi. Combinando più prospettive, l'apprendimento d'insieme offre un modo per superare i limiti dei singoli modelli e ottenere una migliore ottimizzazione. 3

Diagramma che illustra il boosting nel contesto dell'apprendimento d'insieme.

Come funziona il boosting del gradiente

Il boosting del gradiente è una tecnica di machine learning che combina più modelli di previsione deboli in un unico insieme. Questi modelli deboli sono in genere alberi decisionali, che vengono addestrati in sequenza per ridurre al minimo gli errori e migliorare la precisione. Combinando più regressori o classificatori di albero decisionale, il boosting del gradiente può catturare efficacemente relazioni complesse tra le caratteristiche.

Uno dei vantaggi fondamentali del boosting del gradiente è la sua capacità di ridurre al minimo in modo iterativo la funzione di perdita, con conseguente miglioramento della precisione predittiva. Tuttavia, bisogna essere consapevoli dell'overfitting, che si verifica quando un modello diventa troppo specializzato nei dati di addestramento e non riesce a generalizzarsi bene a nuove istanze. Per mitigare questo rischio, i professionisti devono adattare attentamente gli iperparametri, monitorare le prestazioni del modello durante l'addestramento e utilizzare tecniche come la regolarizzazione, la potatura o l'arresto precoce. Comprendendo queste sfide e adottando misure per affrontarle, i professionisti possono utilizzare con successo il potere del boosting del gradiente (incluso l'uso degli alberi di regressione) per sviluppare modelli di previsione accurati e robusti per varie applicazioni. 4,5

L'errore quadratico medio (MSE) è una funzione di perdita utilizzata per valutare la corrispondenza tra le previsioni di un modello di machine learning e i dati effettivi. La funzione MSE calcola la media delle differenze al quadrato tra i valori previsti e osservati. La formula dell'MSE è:  MSE=Σ(yi-pi)2/n dove  yi  rappresenta il valore effettivo,  pi  è il valore previsto e  n  è il numero di osservazioni.

Espandendosi ulteriormente, l'MSE quantifica la differenza tra i valori previsti e i valori effettivi rappresentati nel set di dati per i problemi di regressione. La fase di quadratura aiuta a garantire che sia gli errori positivi che quelli negativi contribuiscano al valore finale senza annullarsi a vicenda. Questo metodo dà più peso agli errori più grandi, poiché gli errori sono al quadrato.

Per interpretare l'MSE, generalmente un valore più basso indica un migliore accordo tra previsioni e osservazioni. Tuttavia, raggiungere un MSE inferiore è difficile negli scenari del mondo reale a causa della casualità intrinseca che esiste non solo nel set di dati, ma anche nella popolazione. Il confronto dei valori MSE nel tempo o tra diversi modelli può aiutare invece a determinare i miglioramenti nell'accuratezza predittiva. È anche importante notare che puntare specificamente a un MSE pari a zero è quasi sempre indicativo di un overfitting. 6

Alcune implementazioni diffuse dei metodi di boosting in Python includono Extreme Gradient Boosting (XGBoost) e Light Gradient-Boosting Machine (LightGBM). XGBoost è progettato per garantire velocità e prestazioni ed è utilizzato per i problemi di regressione e classificazione. LightGBM utilizza algoritmi di apprendimento basati su alberi ed è adatto per l'elaborazione dei dati su larga scala. Entrambi i metodi migliorano ulteriormente la precisione, soprattutto quando si tratta di set di dati complessi o rumorosi. LightGBM utilizza una tecnica chiamata Gradient-based One-Side Sampling (GOSS) per filtrare le istanze di dati al fine di trovare i punti di divisione, riducendo significativamente il sovraccarico computazionale. L'integrazione di più tecniche di apprendimento d'insieme rimuove i vincoli dei singoli modelli e consente di raggiungere risultati superiori negli scenari della data science. 7,8

Di seguito è riportata un'analisi dettagliata di come funziona il processo di boosting del gradiente.

Inizializzazione: inizia utilizzando un set di addestramento per stabilire una base con un modello di base learner, spesso un albero decisionale, le cui previsioni iniziali vengono generate casualmente. In genere, l'albero decisionale conterrà solo una manciata di nodi foglia o nodi terminali. Spesso scelti in base alla loro interpretabilità, questi weak learner o base learner rappresentano un punto di partenza ottimale. Questa configurazione iniziale apre la strada alle iterazioni successive su cui basarsi.

Calcolo dei residui: per ogni esempio di addestramento, calcola l'errore residuo sottraendo il valore previsto dal valore effettivo. Questo passaggio identifica le aree in cui le previsioni del modello devono essere migliorate.

Affinamento con regolarizzazione: dopo il calcolo dei residui e prima dell'addestramento di un nuovo modello, avviene il processo di regolarizzazione. Questa fase prevede la riduzione dell'influenza di ogni nuovo weak learner integrato nell'insieme. Calibrando attentamente questa scala, si può controllare la rapidità con cui avanza l'algoritmo di boosting, contribuendo così alla prevenzione dell'overfitting e all'ottimizzazione complessiva delle prestazioni.

Addestramento del modello successivo: usa gli errori residui calcolati nella fase precedente come obiettivi e addestra un nuovo modello o un weak learner per prevederli con precisione. Questo passaggio si concentra sulla correzione degli errori commessi dai modelli precedenti, perfezionando la previsione complessiva.

Aggiornamenti dell'insieme: in questa fase, le prestazioni dell'insieme aggiornato (incluso il modello appena addestrato) vengono generalmente valutate utilizzando un set di test separati. Se le prestazioni di questo set di dati sono soddisfacenti, l'insieme può essere aggiornato incorporando il nuovo weak learner; in caso contrario, potrebbero essere necessario apportare degli aggiustamenti agli iperparametri.

Ripetizione: se necessario, ripete i passaggi descritti in precedenza. Ogni iterazione si basa sul modello di base e lo perfeziona attraverso l'addestramento di nuovi alberi, migliorando ulteriormente l'accuratezza del modello. Se l'aggiornamento dell'insieme e il modello finale sono soddisfacenti rispetto al modello di base in base all'accuratezza, si sposta alla fase successiva. 

Criteri di arresto: arresta il processo di boosting quando viene soddisfatto un criterio di arresto predeterminato, ad esempio un numero massimo di iterazioni, precisione target o rendimenti decrescenti. Questo passaggio consente di garantire che la stima finale del modello raggiunga l'equilibrio previsto tra complessità e prestazioni. 

Processo di apprendimento d'insieme sequenziale, utilizzato dagli algoritmi di boosting per addestrare più weak learner in sequenza.

Metodi di emsemble e stacking

La combinazione del boosting del gradiente con altri algoritmi di machine learning tramite metodi di ensemble o stacking può migliorare ulteriormente la precisione predittiva. Ad esempio, la combinazione del boosting del gradiente con Support Vector Machine (SVM), foreste casuali o k-nearest neighbors (KNN) può utilizzare i punti di forza di ciascun modello e creare un insieme più robusto. Lo stacking implica l'addestramento di più base learner e l'utilizzo dei loro output come input per un meta learner, che combina le previsioni per generare risultati finali. 9

Diagramma che illustra lo stacking nel contesto dell'apprendimento d'insieme.

Arresto anticipato e convalida incrociata

Il monitoraggio delle prestazioni del modello durante l'addestramento e l'implementazione di tecniche di arresto precoce possono aiutare a prevenire l'overfitting interrompendo il processo di boosting una volta che le prestazioni su un set di convalida smettono di migliorare o iniziano a peggiorare. Inoltre, l'utilizzo di strategie di convalida incrociata, come la convalida incrociata k-fold, può fornire stime più affidabili delle prestazioni del modello e dell'ottimizzazione degli iperparametri, migliorando ulteriormente le funzionalità predittive del boosting del gradiente.

AI Academy

AI all'opera nell'ambito del servizio clienti

Scopri come l'AI generativa può offrire ai clienti un'esperienza più fluida e aumentare la produttività dell'organizzazione in queste tre aree chiave: self-service, agenti umani e operazioni di contact center.

Affrontare i set di dati non equilibrati

Il boosting del gradiente è sensibile allo squilibrio di classe, che può portare a previsioni distorte a favore della classe maggioritaria. Per risolvere questo problema, i professionisti possono utilizzare tecniche come il sovracampionamento della classe minoritaria, il sottocampionamento della classe maggioritaria o utilizzare funzioni di perdita ponderata che assegnano sanzioni più elevate per l'errata classificazione dei casi di minoranza.

Implementando queste strategie e ottimizzando attentamente gli iperparametri, i professionisti possono migliorare significativamente l'accuratezza e la robustezza predittive del boosting del gradiente in varie applicazioni, dall'analisi dei dati ad alta dimensione alle complesse attività di monitoraggio ambientale.

Regolazione dell'iperparametro del boosting di gradiente in scikit-learn (sklearn)

GradientBoostingClassifier e GradientBoostingRegressor in scikit-learn offrono un approccio versatile all'implementazione dell'algoritmo di boosting del gradiente, adatto sia alle attività di classificazione che a quelle di regressione. Consentendo agli utenti di mettere a punto diversi parametri, queste implementazioni consentono la personalizzazione del processo di boosting in base a requisiti e caratteristiche dei dati specifici.

Profondità dell'albero (max_depth): controlla la profondità massima dei singoli alberi decisionali e deve essere ottimizzato per ottenere le migliori prestazioni. Gli alberi più profondi possono catturare relazioni più complesse, ma sono anche inclini all'overfitting. 

Tasso di apprendimento (learning_rate): determina il contributo di ciascun albero all'insieme complessivo. Un tasso di apprendimento inferiore rallenta la convergenza e riduce il rischio di overfitting, mentre un valore maggiore potrebbe portare a un addestramento più rapido a scapito del potenziale overfitting.

Numero di alberi (n_estimators): specifica il numero totale di alberi nell'insieme. L'aumento di questo parametro può migliorare le prestazioni ma aumenta anche il rischio di overfitting.

Inoltre, le implementazioni di boosting del gradiente di scikit-learn forniscono stime pronte all'uso (OOB) , una tecnica per valutare le prestazioni del modello senza richiedere set di dati di convalida separati. Inoltre, i metodi di previsione a fasi in scikit-learn consentono previsioni incrementali via via che diventano disponibili nuovi dati, rendendo possibile ed efficiente l'elaborazione in tempo reale. In sintesi, le implementazioni di boosting del gradiente di scikit-learn forniscono un ricco set di funzionalità per mettere a punto i modelli in base alle esigenze specifiche e alle caratteristiche dei set di dati, supportando quindi prestazioni predittive superiori. 10

Casi d'uso del boosting del gradiente

Gestione di dati medici ad alta dimensione: il boosting del gradiente è in grado di gestire efficacemente set di dati contenenti molte caratteristiche relative al numero di osservazioni. Ad esempio, nella diagnosi medica, il boosting del gradiente può essere utilizzato per diagnosticare malattie sulla base dei dati dei pazienti, che potrebbero contenere più di 100 caratteristiche. Utilizzando gli alberi decisionali come weak learner, l'algoritmo potrebbe essere in grado di gestire l'alta dimensionalità, dove i modelli di regressione lineare tradizionali potrebbero avere difficoltà. L'algoritmo potrebbe anche estrarre informazioni preziose da dati sparsi, il che lo rende adatto in applicazioni come la bioinformatica o nei problemi di classificazione del testo. 11,12

Riduzione dei tassi di abbandono del servizio clienti: quando un modello esiste già ma le prestazioni non sono ottimali, è possibile utilizzare il boosting del gradiente per perfezionare le previsioni in modo iterativo, correggendo gli errori precedenti. Un esempio è la previsione dell'abbandono dei clienti nelle telecomunicazioni, dove è stato utilizzato un modello di regressione logistica tradizionale. L'azienda può applicare algoritmi di boosting del gradiente per identificare i fattori chiave che contribuiscono all'abbandono da parte dei clienti per un altro servizio, come volumi di chiamate elevati o prestazioni di rete scadenti. Incorporando questi fattori nel modello, potrebbero essere in grado di migliorare la precisione e ridurre i tassi di abbandono. 13

Previsione della sopravvivenza del faggio: in un ecosistema, la malattia delle foglie del faggio (BLD) rappresenta una minaccia significativa per lo stato di salute dell'albero del faggio. I ricercatori potrebbero sviluppare un modello predittivo per identificare gli alberi a rischio di BLD e prevederne la probabilità di sopravvivenza. Potrebbe essere sviluppato un modello di machine learning in grado di analizzare fattori ambientali come i dati climatici, la qualità del suolo e le caratteristiche degli alberi per calcolare la probabilità di sopravvivenza del faggio (BTS) in un periodo di 5 anni. Utilizzando le tecniche di boosting del gradiente, è possibile catturare modelli complessi che potrebbero essere trascurati da metodi più semplici. Il modello potrebbe identificare gli alberi a rischio di BLD con alta precisione e prevedere il loro BTS in modo accurato, consentendo ai ricercatori di dare priorità agli interventi e proteggere efficacemente i faggi vulnerabili. Questo caso d'uso dimostra come il boosting del gradiente possa migliorare il potere predittivo dei modelli di machine learning in complesse attività di monitoraggio ambientale. 14

Soluzioni correlate
IBM watsonx.ai

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.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

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.

Esplora le soluzioni AI
Consulenza e servizi sull'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.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live
Note a piè di pagina

Friedman, Jerome H. “Greedy Function Approximation: A Gradient Boosting Machine.” The Annals of Statistics 29, no. 5 (2001): 1189–1232. http://www.jstor.org/stable/2699986

Schapire, R.E. (2013). Explaining AdaBoost. In: Schölkopf, B., Luo, Z., Vovk, V. (eds) Empirical Inference. Springer, Berlin, Heidelberg. https://link.springer.com/chapter/10.1007/978-3-642-41136-6_5

Fan, Wenjie, et al. "A Survey of Ensemble Learning: Recent Trends and Future Directions." arXiv preprint arXiv:2501.04871 (2025).

Matsubara, Takuo. “Wasserstein Gradient Boosting: A Framework for Distribution- Valued Supervised Learning.” arXiv.org, 29 agosto 2024. https://search.arxiv.org/paper.jsp?r=2405.09536&qid=1743170618344ler_nCn N_-2014411830&qs=gradient%2Bboosting. 

Emami, Seyedsaman, and Gonzalo Martínez-Muñoz. 2023. “Sequential Training of Neural Networks with Gradient Boosting.” IEEE Access 11 (gennaio): 42738–50. https://ieeexplore.ieee.org/document/10110967

Chen, Tianqi, et al. "Mean Squared Error." Encyclopedia Britannica, 2023. https://www.britannica.com/science/mean-squared-error.

XGBoost Developers. "XGBoost: A Scalable Tree Boosting System." GitHub, 2021. https://github.com/dmlc/xgboost/blob/master/README.md .

LightGBM Documentation Team. "LightGBM." 2021. https://lightgbm.readthedocs.io/en/stable/ .

Konstantinov, Andrei V., and Lev V. Utkin. “A Generalized Stacking for Implementing Ensembles of Gradient Boosting Machines.” In Studies in Systems, Decision and Control, 3–16, 2021. https://link.springer.com/chapter/10.1007/978-3-030-67892-0_1.

10 Documentation of Scikit-Learn “Scikit-Learn” 2007 https://scikit-learn.org/0.21/documentation.html

11. Lecun, Yann, et al. "Gradient-Based Learning Applied to Document Recognition." Proceedings of the IEEE 86, no. 11 (2007): 2278-2324. doi: 10.1109/PROC.2007.898639 

12 Zhang, Zhongheng, Yiming Zhao, Aran Canes, Dan Steinberg, and Olga Lyashevska. 2019. “Predictive Analytics with Gradient Boosting in Clinical Medicine.” Annals of Translational Medicine 7 (7): 152–52. https://atm.amegroups.org/article/view/24543/23475.

13 ‌Al Shourbaji, Ibrahim, Na Helian, Yi Sun, Abdelazim G. Hussien, Laith Abualigah, and Bushra Elnaim. 2023. “An Efficient Churn Prediction Model Using Gradient Boosting Machine and Metaheuristic Optimization.” Scientific Reports 13 (1): 14441. https://www.nature.com/articles/s41598-023-41093-6.

14 Manley, William, Tam Tran, Melissa Prusinski, and Dustin Brisson. “Modeling Tick Populations: An Ecological Test Case for Gradient Boosted Trees.” bioRxiv : the preprint server for biology, 29 novembre 2023. https://pmc.ncbi.nlm.nih.gov/articles/PMC10054924/#:~:text=The%20rapidly%20expanding%20environmental%20data,development%20of%20public%20health%20strategies.