Che cos'è l'algoritmo XGBoost?

XGBoost o Extreme Gradient boost è un algoritmo di apprendimento automatico che viene utilizzato per l'implementazione di alberi decisionali di incremento gradiente. Perché gli alberi delle decisioni? Quando parliamo di dati non strutturati come le immagini, i dati di testo non strutturati, ecc., I modelli ANN (rete neurale artificiale) sembrano risiedere in alto quando proviamo a prevedere. Mentre quando parliamo di dati strutturati / semi-strutturati, gli alberi decisionali sono attualmente i migliori. XGBoost è stato sostanzialmente progettato per migliorare notevolmente la velocità e le prestazioni dei modelli di apprendimento automatico e ha funzionato molto bene allo scopo.

Funzionamento dell'algoritmo XGBoost

XGBoost sta avendo un algoritmo di apprendimento dell'albero e l'apprendimento del modello lineare, e per questo è in grado di eseguire calcoli paralleli sulla singola macchina.

Ciò rende l'algoritmo XGBoost 10 volte più veloce rispetto a qualsiasi degli algoritmi di aumento gradiente esistenti.

XGBoost e GBMs (ad es. Gradient Boosting Machines) utilizzano metodi ad albero usando l'architettura di discesa del gradiente.

L'area in cui XGBoost lascia indietro gli altri GBM è l'area dell'ottimizzazione del sistema e dei miglioramenti rispetto agli algoritmi.

Vediamoli nel dettaglio:

Ottimizzazione del sistema:

1. Potatura degli alberi - L'algoritmo XGBoost utilizza l'approccio basato sulla profondità a differenza del criterio di arresto per la suddivisione degli alberi utilizzato da GBMS che è avido in natura e dipende anche dal criterio di perdita negativa. XGBoost invece utilizza la funzione / parametro di profondità massima e quindi pota l'albero in una direzione all'indietro.

2. Parallelizzazione: il processo di creazione sequenziale di alberi viene eseguito utilizzando l'implementazione parallela dell'algoritmo XGBoost. Ciò è reso possibile grazie ai circuiti interni ed esterni intercambiabili. Il ciclo esterno elenca i nodi foglia di un albero mentre il ciclo interno calcolerà le caratteristiche. Inoltre, per avviare il loop esterno, il loop interno deve essere completato. Questo processo di commutazione migliora le prestazioni dell'algoritmo.

3. Ottimizzazione dell'hardware: durante la progettazione dell'algoritmo XGBoost è stata presa in considerazione anche l'ottimizzazione dell'hardware. I buffer interni sono allocati per ciascuno dei thread per memorizzare le statistiche del gradiente.

Miglioramenti algoritmici:

  • Consapevolezza della sparsità - XGBoost è noto per gestire in modo molto efficiente tutti i diversi tipi di pattern di sparsità . Questo algoritmo apprende il valore mancante del nido vedendo la perdita di allenamento.
  • Regolarizzazione - Per evitare un overfitting, corregge modelli più complessi implementando sia la LASSO (anche chiamata L1) che la regolarizzazione di Ridge (anche chiamata L2).
  • Convalida incrociata: l'algoritmo XGBoost include funzionalità di convalida incrociata integrate che vengono implementate ad ogni iterazione nella creazione del modello. Ciò impedisce la necessità di calcolare il numero di iterazioni di boosting necessarie.
  • Schizzo quantico ponderato distribuito - L'algoritmo XGBoost utilizza lo schizzo quantile ponderato distribuito per ottenere il numero ottimale di punti di divisione tra i set di dati ponderati

Funzionalità di XGBoost

Sebbene XGBoost sia stato progettato per migliorare notevolmente la velocità e le prestazioni dei modelli di apprendimento automatico, offre anche un buon numero di funzionalità avanzate.

A) Caratteristiche del modello

Funzionalità come quella di uno sci-kit imparano la regolarizzazione e l'implementazione del linguaggio R è supportata da XGBoost. I principali metodi di aumento gradiente supportati sono:

  • Aumento gradiente stocastico : colonna, riga e colonna per livelli divisi possono essere sottocampionati.
  • Aumento gradiente
  • Aumento gradiente regolare: XGBoost corregge modelli più complessi implementando sia LASSO (anche chiamato L1) sia la regolarizzazione di Ridge (anche chiamata L2).

B) Caratteristiche del sistema

Le caratteristiche del sistema includono:

1. Calcolo distribuito : questa funzione viene utilizzata per l'addestramento di modelli molto grandi implementando un cluster di macchine.

2. Parallelizzazione - Durante l'addestramento, tutti i core della CPU vengono utilizzati per la parallelizzazione della costruzione dell'albero

3. Ottimizzazione della cache - Gli algoritmi e le strutture dati vengono memorizzati nella cache per sfruttare al meglio l'hardware.

4. Out of the Core Computing : per i set di dati che non rientrano nella memoria, XGBoost implica il core computing.

C) Caratteristiche dell'algoritmo

Uno degli obiettivi principali dell'algoritmo XGBoost era quello di utilizzare al meglio tutte le risorse disponibili. Alcune delle principali caratteristiche algoritmiche di XGBoost sono:

  • Struttura a blocchi : questa funzione viene utilizzata per supportare la costruzione di alberi in parallelo.
  • Sparse consapevoli : quando i valori mancano nel set di dati, questa funzione si occuperà automaticamente di esso.
  • Formazione continua : quando il modello è pronto con i nuovi dati, il modello può essere ulteriormente potenziato utilizzando questa funzione.

Perché usare XGBoost?

Lo scopo principale di XGBoost è:

  • Velocità di esecuzione
  • Performance del modello

Parliamo di entrambi.

1. Velocità di esecuzione

Quando confrontiamo XGBoost con altri algoritmi di incremento del gradiente, XGBoost risulta essere molto veloce, circa 10 volte più veloce di altre implementazioni.

Szilard Pafka ha eseguito alcuni esperimenti mirati a valutare la velocità di esecuzione di diversi algoritmi di implementazione di foreste casuali. Di seguito è riportata un'istantanea dei risultati dell'esperimento:

Si è scoperto che XGBoost era il più veloce. Altre letture possono essere trovate qui

2. Prestazioni del modello

Quando parliamo di dati non strutturati come le immagini, i dati di testo non strutturati, ecc., I modelli ANN (rete neurale artificiale) sembrano risiedere in alto quando proviamo a prevedere. Mentre quando parliamo di dati strutturati / semi-strutturati, gli alberi decisionali sono attualmente i migliori e quando implementati usando XGBoost, nessun altro algoritmo di potenziamento può batterlo al momento.

L'algoritmo utilizzato da XGboost

L'algoritmo XGBoost utilizza l'algoritmo dell'albero decisionale che aumenta il gradiente.

Il metodo di aumento gradiente crea nuovi modelli che hanno il compito di prevedere gli errori e i residui di tutti i modelli precedenti, che poi, a loro volta, vengono sommati e quindi viene fatta la previsione finale.

Conclusione: XGBoost Algorithm

In questo algoritmo XGBoost abbiamo appreso dell'algoritmo XGBoost utilizzato per l'apprendimento automatico. Quindi abbiamo visto il funzionamento di questo algoritmo, le sue caratteristiche principali e perché è una scelta perfetta per l'implementazione di alberi decisionali che aumentano il gradiente.

Articoli consigliati

Questa è stata una guida per XGBoost Algorithm. Qui abbiamo discusso il suo concetto, le caratteristiche, l'uso per l'apprendimento automatico, il funzionamento di un algoritmo in XGBoost. Puoi anche consultare i seguenti articoli per saperne di più -

  1. PNL in Python
  2. Algoritmo di ray tracing
  3. Algoritmo di firma digitale
  4. Algorithm Interview Questions
  5. Crittografia con firma digitale

Categoria: