Costruire modelli di intelligenza artificiale robusti con il bagging: tecniche, vantaggi e applicazioni
Pubblicato: 2025-01-09Il bagging è una tecnica di machine learning (ML) di insieme che migliora la coerenza dei modelli predittivi. Questa guida descrive come funziona il bagging, ne discute i vantaggi, le sfide e le applicazioni e lo confronta con tecniche correlate come il boosting.
Sommario
- Cos'è l'insaccamento?
- Varianza vs bias
- Insaccamento vs. potenziamento
- Come funziona l'insaccamento
- Tipi di algoritmo di bagging
- Applicazioni dell'insacco
- Vantaggi dell'insaccamento
- Sfide e limiti dell'insaccamento
Cos'è l'insaccamento?
Il bagging (o, più formalmente, bootstrapaggregating) è una tecnica di apprendimento d'insieme che migliora la precisione dell'output utilizzando più modelli ML simili. Fondamentalmente, l’apprendimento d’insieme combina diversi modelli per ottenere prestazioni migliori rispetto a qualsiasi modello individuale.
L'approccio prevede la suddivisione dei dati di addestramento in sottoinsiemi casuali e l'addestramento di un modello diverso su ciascuno. Per i nuovi input, le previsioni di tutti i modelli vengono aggregate per produrre un output finale. Utilizzando sottoinsiemi randomizzati, la tecnica riduce le discrepanze tra i modelli, ottenendo previsioni più coerenti.
Il bagging è particolarmente efficace nel migliorare la coerenza riducendo al minimo la varianza del sistema ML.
Varianza vs bias
Ridurre la distorsione e la varianza sono obiettivi fondamentali di qualsiasi modello o sistema di machine learning.
Il bias descrive gli errori commessi da un sistema ML a causa delle sue ipotesi sui dati che vede. Di solito viene determinato calcolando quanto è sbagliato in media il modello. La varianza misura la coerenza del modello. Viene stimato controllando quanto diversi sono gli output del modello per input simili.
Elevato pregiudizio
Ad esempio, consideriamo il problema di prevedere il prezzo di vendita di una casa in base alle sue caratteristiche (come metratura e numero di camere da letto). Un modello semplice può fare molte ipotesi semplificatrici e considerare solo la metratura, determinando una distorsione elevata. Sbaglierà costantemente le cose, anche sui dati di addestramento, perché la realtà è più complicata delle sue ipotesi. Quindi non è in grado di rilevare i fattori di previsione dei prezzi reali (come l'ubicazione, la qualità della scuola e il numero di camere da letto).
Alta varianza
Un modello più complesso può rilevareognitendenza nei dati di addestramento e presentare una varianza elevata. Ad esempio, questo modello può trovare una piccola correlazione tra il numero civico (essenzialmente la parte numerica di un indirizzo stradale) e il prezzo nei dati di addestramento e utilizzarla, anche se non è un vero predittore. Funzionerà bene con i dati di addestramento ma male con i dati del mondo reale.
Il compromesso tra varianza e bias
Un modello ideale avrebbe una distorsione e una varianza basse, generando gli output corretti in modo coerente su input simili. Una distorsione elevata di solito deriva dal fatto che il modello è troppo semplice per catturare i modelli nei dati di addestramento: adattamento inadeguato. Una varianza elevata di solito deriva dal fatto che il modello cattura modelli spuri nei dati di addestramento: adattamento eccessivo.
Aumentare la sofisticazione di un modello può consentirgli di catturare più modelli, portando a una minore distorsione. Tuttavia, questo modello più sofisticato tenderà ad adattarsi eccessivamente ai dati di addestramento, portando a una varianza più elevata e viceversa. In pratica, è difficile ottenere un compromesso ben bilanciato tra bias e varianza.
Il bagging si concentra sulla riduzione della varianza. Ogni modello nell'insieme può avere una varianza elevata perché si adatta eccessivamente al suo set di dati. Ma poiché ogni modello riceve un set di dati randomizzato, scopriranno diversi modelli spuri. Nell’esempio del prezzo delle case, un modello potrebbe sopravvalutare le case con numeri pari, un altro potrebbe sottovalutarle e la maggior parte potrebbe ignorare completamente i numeri civici.
Questi modelli arbitrari tendono a mediare quando calcoliamo la media delle loro previsioni, lasciandoci con le vere relazioni sottostanti. L'insieme ottiene quindi una varianza inferiore e un ridotto overfitting rispetto a qualsiasi modello individuale.
Insaccamento vs. potenziamento
Potresti sentire parlare di bagging nello stesso contesto del potenziamento. Queste sono le tecniche di apprendimento d'insieme più comuni e sono alla base di molti modelli ML popolari. Il boosting è una tecnica in cui i modelli vengono addestrati sugli errori dei modelli precedenti. Quindi questo gruppo di modelli viene utilizzato per rispondere a qualsiasi input. Discuteremo ulteriormente le differenze tra le due tecniche.
Insaccamento | Potenziamento | |
Formazione modello | I modelli vengono addestrati in parallelo su diversi sottoinsiemi di dati | I modelli vengono addestrati in sequenza, in cui ciascun modello si concentra sugli errori del modello precedente |
Focus sulla riduzione degli errori | Riduce la varianza | Riduce i pregiudizi |
Algoritmi comuni | Foresta casuale, alberi decisionali impacchettati | AdaBoost, potenziamento del gradiente, XGBoost |
Rischio di adattamento eccessivo | Minore rischio di overfitting dovuto al campionamento casuale | Maggiore rischio di overfitting |
Complessità computazionale | Inferiore | Più alto |
Entrambe le tecniche sono comuni, anche se il potenziamento è più popolare. Il potenziamento può ridurre sia la distorsionechela varianza, mentre il bagging di solito influisce solo sulla varianza.
Come funziona l'insaccamento
Consideriamo come funziona effettivamente l'insaccamento. L'essenza è suddividere i dati di addestramento in modo casuale, addestrare i modelli in parallelo sui dati divisi e utilizzare tutti i modelli per rispondere agli input. Affronteremo ciascuno a turno.
Suddivisione dei dati
Supponiamo di avere un set di dati di addestramento connpunti dati e di voler creare un insieme dimmodelli. Quindi, dobbiamo crearemset di dati (uno per ciascun modello), ciascuno connpunti. Se sono presenti più o meno dinpunti in ciascun set di dati, alcuni modelli saranno sottoposti ad un addestramento eccessivo o insufficiente.
Per creare un singolo nuovo set di dati casuale, scegliamo casualmentenpunti dal set di dati di addestramento originale. È importante sottolineare che riportiamo i punti al set di dati originale dopo ogni selezione. Di conseguenza, il nuovo set di dati casuale avrà più di una copia di alcuni dei punti dati originali mentre avrà zero copie di altri. In media, questo set di dati sarà composto per il 63% da punti dati univoci e per il 37% da punti dati duplicati.
Ripetiamo quindi questo processo per creare tuttii mset di dati. La variazione nella rappresentazione dei punti dati aiuta a creare diversità tra i modelli di insieme, che è una chiave per ridurre la varianza complessiva.
Formazione modello
Con i nostrimset di dati randomizzati, addestriamo semplicementemmodelli, un modello per ciascun set di dati. Dovremmo utilizzare sempre lo stesso tipo di modello per garantire pregiudizi simili. Possiamo addestrare i modelli in parallelo, consentendo un'iterazione molto più rapida.
Modelli aggregativi
Ora che abbiamommodelli addestrati, possiamo usarli come un insieme per rispondere a qualsiasi input. Ogni punto dati di input viene alimentato in parallelo a ciascuno dei modelli e ciascun modello risponde con il proprio output. Quindi aggreghiamo i risultati dei modelli per arrivare a una risposta finale. Se si tratta di un problema di classificazione, prendiamo la modalità degli output (l'output più comune). Se si tratta di un problema di regressione, prendiamo la media degli output.
La chiave per ridurre la varianza in questo caso è che ciascun modello è migliore in alcuni tipi di input e peggiore in altri a causa delle differenze nei dati di addestramento. Tuttavia, nel complesso, gli errori di ciascun modello dovrebbero essere cancellati dagli altri modelli, portando a una varianza inferiore.
Tipi di algoritmi di bagging
Il bagging come algoritmo può essere applicato a qualsiasi tipo di modello. In pratica, esistono due modelli molto comuni: foreste casuali e alberi decisionali in bag. Esploriamo brevemente entrambi.
Foreste casuali
Una foresta casuale è un insieme di alberi decisionali, ciascuno addestrato su set di dati randomizzati. Un albero decisionale è un modello che effettua previsioni rispondendo sì/no a domande sui dati di input finché non trova un'etichetta adatta.
In una foresta casuale, ogni albero decisionale ha gli stessi iperparametri (configurazioni preimpostate come la profondità massima dell'albero o i campioni minimi per suddivisione) ma utilizza funzionalità diverse (scelte casualmente) dal set di dati di addestramento. Senza la randomizzazione delle caratteristiche, ogni albero decisionale può convergere a risposte simili nonostante le differenze nei dati di addestramento. Le foreste casuali sono una scelta estremamente popolare per il machine learning e spesso rappresentano un buon punto di partenza per risolvere attività di machine learning.
Alberi decisionali insaccati
Gli alberi decisionali raggruppati sono molto simili alle foreste casuali, tranne per il fatto che ogni albero utilizza le stesse funzionalità del set di dati di addestramento. Ciò riduce la diversità dei risultati degli alberi, il che presenta vantaggi e svantaggi. Il lato positivo è che gli alberi sono più stabili e probabilmente daranno risposte simili; questo può essere utilizzato per determinare quali funzionalità sono importanti. Lo svantaggio è che la varianza non verrà ridotta così tanto. Per questo motivo, le foreste casuali vengono utilizzate molto più degli alberi decisionali in contenitori.
Applicazioni dell'insacco
Il bagging può essere utilizzato in qualsiasi problema ML in cui la varianza è superiore a quella desiderata. Finché esiste un modello ML, può essere imballato. Per renderlo più concreto, esamineremo alcuni esempi.
Classificazione e regressione
La classificazione e la regressione sono due dei problemi principali del machine learning. Un utente potrebbe voler etichettare il soggetto di un'immagine come un gatto o come una classificazione del cane. Oppure un utente potrebbe voler prevedere il prezzo di vendita di una casa in base alle sue caratteristiche: la regressione. Il bagging può aiutare a ridurre la varianza per entrambi, come abbiamo visto.
Nella classificazione viene utilizzata la modalità dei modelli d'insieme. Nella regressione viene utilizzata la media.
Selezione delle funzionalità
La selezione delle funzionalità consiste nel trovare le funzionalità più importanti in un set di dati, quelle che meglio prevedono l'output corretto. Rimuovendo i dati delle funzionalità irrilevanti, uno sviluppatore di modelli può ridurre la possibilità di overfitting.
Conoscere le caratteristiche più importanti può anche rendere i modelli più interpretabili. Inoltre, gli sviluppatori di modelli possono utilizzare queste conoscenze per ridurre il numero di funzionalità nei dati di addestramento, consentendo un addestramento più rapido. Gli alberi decisionali raggruppati funzionano bene per scoprire funzionalità importanti. Le caratteristiche che hanno un peso maggiore al loro interno saranno probabilmente quelle importanti.
Imballaggio nell'e-commerce
Il bagging nell’e-commerce è particolarmente utile per prevedere il tasso di abbandono dei clienti. I modelli ML addestrati sui dati di abbandono spesso presentano una varianza elevata a causa di modelli di comportamento dei clienti complessi e rumorosi; potrebbero adattarsi eccessivamente al set di dati di addestramento. Potrebbero anche dedurre relazioni spurie, come supporre che il numero di vocali nel nome di un cliente influisca sulla sua probabilità di abbandono.
Il set di dati di addestramento può contenere solo alcuni esempi che causano questo overfitting. Utilizzando modelli in bundle, l'insieme può identificare meglio gli indicatori di abbandono reali ignorando le correlazioni spurie, portando a previsioni di abbandono più affidabili.
Vantaggi dell'insaccamento
Il bagging riduce la varianza e l'overfitting del modello e può aiutare a risolvere i problemi relativi ai dati. È anche una delle tecniche di confezionamento più parallelizzabili ed efficienti.
Varianza ridotta
La varianza del modello indica che un modello non sta apprendendo i modelli veri e significativi nei dati. Invece, rileva correlazioni casuali che non significano molto e sono un sintomo di dati di addestramento imperfetti.
L'insacchettamento riduce la varianza dei modelli; l'insieme nel suo insieme si concentra sulle relazioni significative tra input e output.
Generalizzare bene ai nuovi dati
Poiché i modelli confezionati hanno maggiori probabilità di cogliere relazioni significative, possono generalizzare a dati nuovi o invisibili. Una buona generalizzazione è l'obiettivo finale dell'apprendimento automatico, quindi il bagging è spesso una tecnica utile per molti modelli.
In quasi tutti i problemi di ML, il set di dati di addestramento non è pienamente rappresentativo dei dati effettivi, quindi è fondamentale una buona generalizzazione. In altri casi, la reale distribuzione dei dati potrebbe cambiare nel tempo, quindi è necessario un modello adattabile. L'insacco aiuta in entrambi i casi.
Altamente parallelizzabile
A differenza del boosting, la creazione di modelli con sacchetto è altamente parallelizzabile. Ogni modello può essere addestrato in modo indipendente e simultaneo, consentendo una sperimentazione rapida e una più semplice regolazione degli iperparametri (a condizione, ovviamente, di disporre di risorse di calcolo sufficienti per l'addestramento in parallelo).
Inoltre, poiché ogni modello è indipendente dagli altri, può essere inserito o estratto. Ad esempio, un modello debole può essere riqualificato su un sottoinsieme casuale diverso per migliorare le sue prestazioni senza toccare gli altri modelli.
Sfide e limiti dell'insaccamento
Sfortunatamente, l’aggiunta di più modelli aggiunge maggiore complessità. Le sfide legate alla maggiore complessità implicano che i modelli bagged richiedono molte più risorse di calcolo, sono più difficili da interpretare e comprendere e richiedono una maggiore ottimizzazione degli iperparametri.
Sono necessarie più risorse computazionali
Più modelli richiedono più risorse per eseguirli e, spesso, gli insiemi confezionati hanno più di 50 modelli. Questo può funzionare bene per i modelli più piccoli, ma con quelli più grandi può diventare intrattabile.
Anche i tempi di risposta dell'ensemble possono risentirne man mano che cresce. Le risorse hanno anche un costo opportunità: potrebbero essere utilizzate meglio per addestrare un modello più ampio e migliore.
Più difficile da interpretare
I modelli ML, nel loro insieme, sono difficili da interpretare. Gli alberi decisionali individuali sono un po’ più semplici poiché mostrano su quali caratteristiche basano le decisioni. Ma quando ne raggruppi insieme un gruppo, come in una foresta casuale, le risposte contrastanti di ciascun albero possono creare confusione.
Prendere la modalità o la media delle previsioni non spiega di per sé perché questa sia la previsione corretta. La saggezza della folla, sebbene spesso giusta, è difficile da comprendere.
Maggiore ottimizzazione degli iperparametri
Con più modelli, gli effetti degli iperparametri vengono amplificati. Un piccolo errore negli iperparametri può ora influenzare dozzine o centinaia di modelli. L'ottimizzazione dello stesso set di iperparametri richiede più tempo, il che può comportare un carico ancora maggiore su risorse limitate.