XGBoost- Che cos’è?
XGBoost è un algoritmo di machine learning basato su un insieme di algoritmi di apprendimento ad albero decisionale e utilizza un framework per il gradient boosting. Le reti neurali artificiali superano per lo più le prestazioni di altri framework o algoritmi quando si prevedono problemi con il testo, le immagini e altri dati non strutturati. Le cose sono molto diverse quando si tratta di dati tabellari/strutturati di medie o piccole dimensioni. Perché? Perché gli algoritmi basati su alberi decisionali sono probabilmente la soluzione migliore.
L’algoritmo XGBoost è il risultato di un progetto di ricerca organizzato presso l’Università di Washington. Carlos Guestrin e Tianqi Chen hanno presentato il loro lavoro alla conferenza SIGKDDD del 2016. Da allora, XGBoost è diventato un rinomato algoritmo che ha rivoluzionato il panorama dell’apprendimento automatico.
Da quando è stato introdotto, questo algoritmo ha ricevuto tonnellate di crediti, tra cui diversi concorsi Kaggle. Ha ricevuto anche il riconoscimento per l’influenza per varie applicazioni industriali all’avanguardia. Di conseguenza, un massiccio gruppo di scienziati dei dati sta contribuendo a diversi progetti open source relativi a XGBoost. GitHub ha più di trecento collaboratori, e trentaseicento impegni fino ad ora. Scoprite come questo algoritmo si distingue dagli altri.
Come XGBoost si distingue
Una vasta gamma di applicazioni
XGBoost consente di utilizzare un’ampia gamma di applicazioni per risolvere i problemi di previsione, classifica, classificazione e regressione definiti dall’utente.
Facilmente trasportabile
Funziona senza problemi su OSX, Linux e Windows.
Varietà di lingue
XGBoost supporta la maggior parte dei linguaggi di programmazione tra cui, Julia, Scala, Java, R, Python, C+++.
Integrazione con Cloud
L’algoritmo di apprendimento automatico XGBoost supporta i cluster di filato, l’azzurro e l’AWS. Funziona anche incredibilmente bene con altri Spark, Flink e vari ecosistemi.
Costruire un’intuizione XG Boost
Uno dei motivi per cui gli alberi decisionali sono così popolari è che visualizzarli è abbastanza semplice nella loro forma più elementare. Anche i loro algoritmi sono facili da interpretare, ma creare un’intuizione per la prossima generazione di algoritmi (basati sugli alberi) può essere un po’ complicato. Ecco un’analogia per comprendere gli algoritmi basati sugli alberi e la loro evoluzione.
Pensate a voi stessi come a un responsabile delle assunzioni, che parla con diversi candidati altamente qualificati. Ogni passo dell’evoluzione dell’algoritmo ad albero è come una parte del processo di colloquio.
Albero delle decisioni
Ogni responsabile delle assunzioni segue una serie di criteri, tra cui l’esperienza, l’istruzione e le prestazioni al colloquio. Sarebbe corretto confrontare un albero decisionale con un responsabile delle assunzioni che interroga i candidati sulla base dei suoi criteri.
Imbustamento
Le interviste sono ora gestite da più persone, e tutti i membri del panel hanno diritto a un voto. L’aggregazione o l’insaccamento di Bootstrap comporta l’amalgama dei contributi di ogni intervistatore per la decisione finale con l’aiuto di un processo di voto imparziale.
Foresta casuale
Il Random Forest è un algoritmo di insaccamento che seleziona in modo casuale un sottocomponente di caratteristiche. In altre parole, ogni intervistatore metterà alla prova il candidato in base alle qualifiche scelte a caso (per esempio, colloqui tecnici per testare le capacità di programmazione).
Boosting
Il Boosting è una procedura alternativa in cui ogni intervistatore cambia i criteri di valutazione a seconda del feedback ricevuto dagli intervistatori precedenti. Si tratta di un processo di intervista altamente efficiente, in quanto aiuta a implementare procedure di valutazione più efficaci.
Boosting graduale
Il processo di gradient boosting riduce al minimo gli errori attraverso l’algoritmo di discesa del gradiente. Ad esempio, le società di consulenza strategica utilizzano i colloqui sui casi per eliminare i candidati che non sono qualificati come gli altri candidati.
XGBoost
XGBoosting è una versione significativamente più efficiente del gradient boosting, da cui il suo nome: Extreme Gradient Boosting.è una combinazione ideale di tecniche di ottimizzazione hardware e software per ottenere risultati superiori utilizzando risorse di calcolo minime in brevi periodi.
Qual è il segreto delle eccellenti prestazioni di XGBoost?
Le macchine per il Gradient Boosting e XGBoost sono metodi ad albero. Usano l’architettura di discesa a gradiente per applicare il principio di boosting dei poveri studenti (CART.) Extreme Gradient Boostsignificativamente migliora il framework GBM implementando miglioramenti algoritmici e ottimizzazione dei sistemi.
Ottimizzazione del sistema
Parallelizzazione
XGBoost utilizza l’implementazione in parallelo per avviare il processo di costruzione dell’albero sequenziale. È possibile grazie alla caratteristica di intercambiabilità dei loop utilizzati per la creazione degli allievi di base. Il loop interno conta le caratteristiche, mentre il loop esterno raggruppa i nodi fogliacei di un albero. Il nesting del loop limita la parallelizzazione perché è impossibile iniziare il loop esterno senza terminare il loop interno.
Quindi, per ottenere un migliore tempo di esecuzione, l’ordine dei loop si interscambia con l’aiuto dell’inizializzazione con una scansione globale di ordinamento e di istanze che utilizzano fili paralleli. Lo switch migliorerà significativamente le prestazioni algoritmiche grazie alla compensazione dei sovraccarichi di parallelizzazione.
Potatura degli alberi
XGBoost utilizza il criterio “max_profondità” e ignora il criterio prima di potare gli alberi al contrario. L’approccio è eccellente per aumentare le prestazioni di calcolo.
Ottimizzazione dell’hardware
L’algoritmo di ottimizzazione dell’hardware utilizza le risorse hardware in modo efficiente. È possibile allocare buffer interni in ogni thread per memorizzare le statistiche dei gradienti. Altri miglioramenti come il calcolo “fuori dal core” utilizzano lo spazio su disco e gestiscono frame di dati che non possono entrare nella memoria.
Miglioramenti algoritmici
Regolarizzazione
Aiuta a penalizzare i modelli complessi con l’aiuto di Ridge e LASSO per evitare l’overfitting.
Convalida incrociata
L’algoritmo di apprendimento macchina XGBoost ha un metodo di convalida incrociata implementato in ogni iterazione. Esso elimina la necessità di una programmazione elaborata di questa ricerca e specifica l’esatta quantità di iterazioni di potenziamento necessarie per ogni esecuzione.
Consapevolezza di Sparsity
XGBoost aggiunge caratteristiche rade, comprendendo automaticamente il valore essenziale e gestisce vari modelli di sparsità con straordinaria efficienza.
Schizzo Quantile Ponderato
Extreme Gradient boost implementa l’algoritmo di sketch distribuito per trovare le pinte di split ideali in set di dati ponderati.
XGBoost potrebbe essere il futuro dell’apprendimento automatico
Gli scienziati dei dati devono testare ogni algoritmo per identificare l’opzione migliore. Inoltre, scegliere l’algoritmo corretto, anche se eccellente, non è sufficiente. Anche la scelta della configurazione giusta per un particolare set di dati è cruciale. Inoltre, bisogna considerare diversi elementi per scegliere l’algoritmo migliore. Fate attenzione a cose come l’implementazione, la spiegabilità e la complessità computazionale per determinare l’algoritmo più adatto a voi.
Infine, l’apprendimento automatico è un’ampia possibilità e troverete tonnellate di alternative all’Extreme Gradient Boost. Cat Boost e Light GBM sono alcune alternative recenti che offrono risultati impressionanti. Detto questo, XGBoost regna sovrana in termini di spiegabilità, pragmatismo, flessibilità, prestazioni e molte altre cose. Aspettatevi che questo algoritmo di apprendimento a macchina rimanga al top fino a quando non arriva un degno sfidante e scuote le cose.