Vai al contenuto principale

Che cos'è il boosting?

Il boosting migliora le prestazioni del machine learning correggendo gli errori in sequenza e combinando weak learner in predittori più forti.
Aggiornato 29 set 2026  · 11 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

I recenti progressi nel machine learning hanno introdotto nuovi modi per affrontare problemi complessi. Il boosting è una tecnica che continua a mostrare risultati promettenti. Sta cambiando il modo in cui affrontiamo il data modeling utilizzando più algoritmi per migliorare le prestazioni. Con l'evoluzione del concetto di boosting, sono emerse varianti più recenti come Gradient Boosting e XGBoost, che spingono oltre i confini di velocità e accuratezza.

Non preoccuparti se ti sembra che ci sia molto da imparare nell'area del predictive modeling. Prova i nostri percorsi di carriera Associate Data Scientist in Python o Data Scientist in Python, oltre al tutorial Esplora le tecniche di Ensemble Learning per continuare a imparare. 

Boosting nel machine learning

Il boosting è un potente metodo di ensemble learning nel machine learning, progettato specificamente per migliorare l'accuratezza dei modelli predittivi combinando più weak learner—modelli che performano solo leggermente meglio del caso—in un unico strong learner. 

L'essenza del boosting risiede in un processo iterativo in cui ogni weak learner è addestrato per correggere gli errori del suo predecessore, migliorando gradualmente le prestazioni complessive del modello. Concentrandosi sugli errori commessi dai modelli precedenti, il boosting trasforma una collezione di weak learner in un modello più accurato. 

Come funziona il boosting

Il boosting trasforma weak learner in un unico strong learner attraverso un processo sistematico che si concentra sulla riduzione degli errori nell'addestramento sequenziale dei modelli. I passaggi coinvolti includono:

  1. Seleziona i pesi iniziali: assegna pesi iniziali a tutti i punti dati per indicare la loro importanza nel processo di apprendimento.
  2. Addestra in sequenza: addestra il primo weak learner sui dati. Dopo aver valutato le sue prestazioni, aumenta i pesi delle istanze erroneamente classificate. Questo fa sì che il weak learner successivo si concentri maggiormente sui casi più difficili.
  3. Ripeti il processo: ripeti il processo di aggiustamento dei pesi e addestramento dei learner successivi. Ogni nuovo modello si concentra sui punti deboli dell'ensemble finora.
  4. Combina i risultati: aggreghi le previsioni di tutti i weak learner per formare l'output finale. L'aggregazione è in genere pesata, dove i learner più accurati hanno maggiore influenza.

Questo metodo riduce efficacemente gli errori concentrandosi in modo più intenso sui casi difficili nei dati di addestramento, ottenendo forti prestazioni predittive.

Tipi di algoritmi di boosting

Diamo un'occhiata ad alcuni dei più noti algoritmi di boosting. 

AdaBoost (Adaptive Boosting)

AdaBoost è uno dei primi algoritmi di boosting. Si concentra sulla ripesatura degli esempi di addestramento ogni volta che viene aggiunto un learner, dando maggiore enfasi alle istanze classificate in modo errato. AdaBoost è particolarmente efficace per i problemi di classificazione binaria. Leggi il nostro tutorial AdaBoost Classifier in Python per saperne di più.

Gradient Boosting

Il gradient boosting costruisce i modelli in sequenza e corregge gli errori lungo il percorso. Utilizza un algoritmo di discesa del gradiente per minimizzare la loss quando si aggiungono nuovi modelli. Questo metodo è flessibile e può essere utilizzato sia per problemi di regressione che di classificazione. Il nostro tutorial, A Guide to The Gradient Boosting Algorithm, descrive questo processo in dettaglio. 

XGBoost (Extreme Gradient Boosting)

XGBoost è una libreria ottimizzata di gradient boosting distribuito ed è il metodo di riferimento per molti vincitori di competizioni su Kaggle. È progettata per essere altamente efficiente, flessibile e portabile. Implementa algoritmi di machine learning all'interno del framework del Gradient Boosting, offrendo una soluzione scalabile e accurata a molti problemi pratici sui dati. Per un approfondimento, valuta di consultare il nostro tutorial Using XGBoost in Python e di seguire il corso dedicato: Extreme Gradient Boosting with XGBoost.

Metodi di ensemble

Il boosting appartiene al più ampio gruppo dei metodi di ensemble. I metodi di ensemble sono un approccio nel machine learning che combina più modelli per produrre previsioni più accurate di quelle che un singolo modello potrebbe in genere ottenere da solo. Queste tecniche funzionano sfruttando la diversità dei modelli, ciascuno con i propri punti di forza e limiti, per creare un processo decisionale collettivo.

Diversi tipi di metodi di ensemble

Il boosting è una tecnica di ensemble learning di rilievo, ma è solo una tra diverse che aumentano la forza predittiva dei modelli. Diamo un'occhiata ad alcune altre.

  • Bagging (Bootstrap Aggregating): un metodo che addestra più modelli su sottoinsiemi casuali dei dati di addestramento e aggrega le loro previsioni. Riduce la varianza e aiuta a evitare l'overfitting.
  • Stacking (Stacked Generalization): una tecnica che combina più modelli addestrando un meta-modello per imparare come combinare al meglio le previsioni dei modelli base. Può catturare schemi complessi che i singoli modelli potrebbero non cogliere.
  • Blending: simile allo stacking, ma utilizza un set di validazione tenuto da parte per addestrare il meta-modello invece della cross-validation. È più semplice e veloce dello stacking, ma può essere meno robusto.
  • Voting: combina le previsioni di più modelli tramite voto di maggioranza (hard voting) o media pesata delle probabilità previste (soft voting). È semplice da implementare e può essere efficace con modelli base eterogenei.

Boosting vs. bagging

Il boosting viene spesso confrontato in particolare con il bagging. Sebbene siano simili per alcuni aspetti, ci sono grandi differenze. Di seguito una tabella che confronta boosting e bagging:

Caratteristica Boosting Bagging
Focus concettuale Migliora l'accuratezza in sequenza concentrandosi sugli esempi precedentemente classificati in modo errato. Addestra più modelli su sottoinsiemi casuali, mediandone le previsioni.
Addestramento del modello L'addestramento sequenziale consente a ogni modello di apprendere dagli errori del precedente. L'addestramento in parallelo su campioni di dati variati aumenta la diversità.
Riduzione dell'errore Riduce principalmente il bias e, in misura minore, la varianza. Riduce la varianza, in particolare nei modelli complessi soggetti a overfitting.
Sensibilità agli outlier Più sensibile a causa del maggiore focus sui dati classificati in modo errato. Meno sensibile poiché il campionamento casuale diluisce l'impatto degli outlier.
Esempi AdaBoost, Gradient Boosting, XGBoost. Random Forest, Bootstrap Aggregating.

Se ti interessa approfondire il bagging, leggi il nostro tutorial What is Bagging in Machine Learning?, che utilizza sklearn. 

Un'implementazione del boosting in Python

Uno dei modi migliori per capire il boosting è provarlo in pratica. Per farlo, useremo questo dataset di Kaggle Almond Types Classification, che include tre tipi di mandorle: MAMRA, SANORA e REGULAR, e i loro attributi fisici unici come area, perimetro e rotondità. 

Le feature di ciascun campione di mandorla sono state estratte tramite sofisticate tecniche di image processing. I valori null nel dataset rappresentano i casi in cui l'orientamento della mandorla—che fosse in piedi, sdraiata su un lato o sulla schiena—ha influenzato l'accuratezza del processo di estrazione delle feature. 

Usiamo ora questo dataset per provare un compito di classificazione. Useremo l'algoritmo AdaBoost che, come abbiamo detto, migliora le prestazioni del modello combinando più weak learner in un unico strong learner.

1. Importazione delle librerie

Iniziamo importando le librerie necessarie e caricando il dataset delle mandorle. Poi separiamo le variabili di feature e target.

import pandas as pd
almonds = pd.read_csv('Almond.csv', index_col=0)
X = almonds.drop('Type', axis=1)  
y = almonds['Type']

2. Gestione dei dati mancanti

Successivamente, ripuliamo il dataset riempiendo i valori mancanti con il KNN imputer. Questo ci assicura un dataset completo per il nostro modello.

from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=5)
X_imputed = imputer.fit_transform(X)

3. Suddivisione dei dati per training e test

Dividiamo i dati in set di addestramento e di test, così da poter valutare quanto bene il nostro modello gestirebbe nuovi dati.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_imputed, y, test_size=0.2, random_state=42)

4. Addestramento di un classificatore ad albero decisionale

Addestriamo qui un semplice modello ad albero decisionale, che ci fornisce un'accuratezza di base prima di procedere a potenziarne le prestazioni.

from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
tree = DecisionTreeClassifier(max_depth=1, random_state=42)
tree.fit(X_train, y_train)
tree_accuracy = accuracy_score(y_test, tree.predict(X_test))

5. Migliorare le prestazioni con AdaBoost

Usiamo quindi AdaBoost per migliorare le prestazioni del nostro albero decisionale concentrandoci sui suoi errori e aumentando l'accuratezza.

from sklearn.ensemble import AdaBoostClassifier
ada = AdaBoostClassifier(base_estimator=tree, n_estimators=100, learning_rate=1.0, random_state=42)
ada.fit(X_train, y_train)
ada_accuracy = accuracy_score(y_test, ada.predict(X_test))

# Print the accuracies
print(f'Accuracy of the weak learner (Decision Tree): {tree_accuracy * 100:.2f}%')
print(f'Accuracy of AdaBoost model: {ada_accuracy * 100:.2f}%')

6. Output finale

Infine, confrontiamo i risultati e vediamo come AdaBoost migliori significativamente l'accuratezza.

Accuracy of the weak learner (Decision Tree): 43.14%
Accuracy of AdaBoost model: 61.50%

Qual è quindi la conclusione? I risultati illustrano la potenza dell'ensemble learning attraverso AdaBoost. Qui, il weak learner era un albero decisionale con profondità massima pari a uno, che aveva un'accuratezza modesta di circa il 43%. Considerando che c'erano solo tre tipi di mandorle, un'accuratezza del 43% non è molto superiore alla media del caso. Tuttavia, quando questo weak learner è stato utilizzato come base estimator in un modello AdaBoost con 100 iterazioni, l'accuratezza è migliorata fino al 62%.

Facendo un passo indietro, come nota di cautela, sebbene AdaBoost abbia riportato un'accuratezza più alta sul nostro dataset Almonds, potrebbe non essere sempre la scelta migliore in ogni situazione. C'è il rischio di overfitting, soprattutto con dataset piccoli come questo, in cui il modello può diventare eccessivamente complesso. Nella pratica, tecniche di classificazione più semplici potrebbero performare altrettanto bene o addirittura meglio per alcuni compiti. Quindi, se qui abbiamo usato AdaBoost per illustrare il concetto, è importante fermarsi e valutare se vogliamo davvero un livello di complessità così alto.

Conclusione

Il boosting rappresenta un importante passo avanti nel campo del machine learning, mostrando la potenza dei metodi di ensemble nel migliorare l'accuratezza predittiva. Come abbiamo visto, algoritmi di boosting come AdaBoost, Gradient Boosting e XGBoost operano su un principio fondamentale: combinare più modelli deboli per creare un unico predittore più efficace. 

Tuttavia, è importante ricordare che il boosting è solo uno degli strumenti nel toolkit del machine learning. La sua efficacia può variare a seconda del problema specifico. Come per qualsiasi tecnica di machine learning, capire quando e come applicare il boosting è la chiave per sfruttarne appieno il potenziale.

Per approfondire la comprensione del boosting e di altri concetti di machine learning, prendi in considerazione i percorsi completi di DataCamp Machine Learning for Everyone. Per chi desidera specializzarsi ulteriormente, il percorso Machine Learning Scientist with Python offre una formazione approfondita su tecniche avanzate e applicazioni pratiche.


Vinod Chugani's photo
Author
Vinod Chugani
LinkedIn

Vinod Chugani ha iniziato la sua carriera a Tokyo come il più giovane Head dell'Hedge Fund Sales Desk di JPMorgan e in seguito ha stabilito un record personale di vendite a Lehman Brothers, poi ha costruito un'attività di distribuzione di elettronica in 30 paesi superando i 100 milioni di SG$ di fatturato prima di passare ai dati. Laureato in Economia alla Duke e diplomato alla NYC Data Science Academy, è stato uno dei tre beneficiari di borsa di studio su oltre 100 candidati per il corso Building AI Applications di Hugo Bowne-Anderson su Maven. Oggi scrive per DataCamp, KDnuggets, Machine Learning Mastery e Statology su argomenti che vanno dalla statistica all'AI agentica, e fa da mentor a professionisti dei dati alla NYC Data Science Academy con oltre 1.000 sessioni one-to-one all'attivo.

 

Domande frequenti

Che cos'è il boosting nel machine learning?

Il boosting è una tecnica di ensemble learning usata per migliorare l'accuratezza dei modelli predittivi. Combina più weak learner—modelli che performano solo leggermente meglio del caso—in un unico strong learner, migliorando in modo significativo le prestazioni complessive del modello.

In che cosa il boosting è diverso dal bagging?

Boosting e bagging sono entrambe tecniche di ensemble che combinano più modelli per migliorare le previsioni, ma operano in modo diverso. Il boosting addestra i modelli in sequenza, con ogni nuovo modello che si concentra sugli errori dei precedenti per ridurre il bias e migliorare l'accuratezza. Al contrario, il bagging addestra i modelli in parallelo su diversi sottoinsiemi di dati, mediando i loro output per ridurre la varianza e aumentare la stabilità. Mentre il boosting è sensibile agli outlier e al rumore, il bagging è più robusto grazie al metodo di media.

Il boosting può essere usato sia per problemi di classificazione che di regressione?

Sì, le tecniche di boosting possono essere adattate sia alla classificazione sia alla regressione. Sebbene AdaBoost sia più comunemente usato per problemi di classificazione, altre varianti come il Gradient Boosting possono essere utilizzate efficacemente anche per la regressione.

Come si sceglie il numero di iterazioni del boosting?

Il numero di iterazioni, o di weak learner, in un algoritmo di boosting dipende in genere dallo specifico dataset e dalla complessità del problema. Può essere determinato utilizzando la cross-validation o tecniche simili per bilanciare tra underfitting e overfitting.

In che cosa AdaBoost differisce da altre tecniche di boosting, come il Gradient Boosting?

AdaBoost aumenta i pesi delle istanze classificate in modo errato per far concentrare i modelli successivi su questi casi difficili. Il Gradient Boosting, invece, adatta nuovi learner agli errori residui dei modelli precedenti.

Quali sono i principali vantaggi dell'utilizzo di AdaBoost?

I principali vantaggi di AdaBoost sono semplicità, efficacia e il fatto che non richiede conoscenze pregresse sul weak learner. È anche molto flessibile, in quanto può essere combinato con qualsiasi algoritmo di apprendimento, ed è spesso molto efficace in classificazioni in cui altri metodi potrebbero faticare.

Quali sono alcune alternative rilevanti ad AdaBoost per migliorare le prestazioni dei modelli di machine learning?

Alcune alternative rilevanti ad AdaBoost includono Gradient Boosting, XGBoost, CatBoost, LightGBM e HistGradientBoost.

Quali sono alcuni tipi di metodi di ensemble learning oltre al boosting?

Forme comuni di ensemble learning, oltre al boosting, includono bagging e stacking, ciascuna con strategie diverse per integrare i modelli e massimizzare la potenza predittiva.

Argomenti
Machine Learning
Python

Impara il Machine Learning con DataCamp

Corso

Capire il Machine Learning

2 ore
310.9K
Un'introduzione all'apprendimento automatico senza bisogno di programmare.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra AltroMostra Altro