Was ist der XGBoost-Algorithmus?

XGBoost oder Extreme Gradient Boost ist ein Algorithmus für maschinelles Lernen, der zur Implementierung von Entscheidungsbäumen für Gradienten-Boosting verwendet wird. Warum Entscheidungsbäume? Wenn wir über unstrukturierte Daten wie Bilder, unstrukturierte Textdaten usw. sprechen, scheinen die ANN-Modelle (Künstliches Neuronales Netzwerk) an der Spitze zu stehen, wenn wir versuchen, dies vorherzusagen. Während wir über strukturierte / halbstrukturierte Daten sprechen, sind Entscheidungsbäume derzeit die besten. XGBoost wurde im Wesentlichen entwickelt, um die Geschwindigkeit und Leistung von Modellen für maschinelles Lernen erheblich zu verbessern, und es hat den Zweck sehr gut erfüllt.

Arbeitsweise des XGBoost-Algorithmus

Der XGBoost verfügt sowohl über einen Tree-Learning-Algorithmus als auch über das lineare Modelllernen und kann daher auf der einzelnen Maschine parallele Berechnungen durchführen.

Dadurch ist der XGBoost-Algorithmus zehnmal schneller als alle vorhandenen Algorithmen zur Gradientenanhebung.

Der XGBoost und die GBMs (dh Gradient Boosting Machines) verwenden Baummethoden unter Verwendung der Gradientenabstiegsarchitektur.

Der Bereich, in dem XGBoost die anderen GBMs zurücklässt, ist der Bereich der Systemoptimierung und -verbesserung gegenüber den Algorithmen.

Lassen Sie uns diese im Detail sehen:

Systemoptimierung:

1. Tree Pruning - Der XGBoost-Algorithmus verwendet im Gegensatz zu dem von GBMS verwendeten Stoppkriterium für das Aufteilen von Bäumen, das von Natur aus gierig ist, und das auch vom negativen Verlustkriterium abhängt, den Tiefenansatz. Der XGBoost verwendet stattdessen die Funktion / den Parameter für die maximale Tiefe und schneidet daher den Baum in Rückwärtsrichtung.

2. Parallelisierung - Der Prozess der sequentiellen Baumbildung wird unter Verwendung der parallelisierten Implementierung im XGBoost-Algorithmus durchgeführt. Möglich wird dies durch die austauschbaren äußeren und inneren Schlaufen. Die äußere Schleife listet die Blattknoten eines Baums auf, während die innere Schleife die Merkmale berechnet. Damit die äußere Schleife startet, muss auch die innere Schleife abgeschlossen werden. Dieser Umschaltvorgang verbessert die Leistung des Algorithmus.

3. Hardwareoptimierung - Bei der Entwicklung des XGBoost-Algorithmus wurde auch die Hardwareoptimierung berücksichtigt. Interne Puffer werden für jeden der Threads zugewiesen, um die Gradientenstatistik zu speichern.

Algorithmische Verbesserungen:

  • Awareness of Sparsity - XGBoost kann alle Arten von Sparsity-Mustern sehr effizient verarbeiten. Dieser Algorithmus lernt den fehlenden Nestwert anhand des Trainingsverlusts.
  • Regularisierung - Um eine Überanpassung zu vermeiden, werden komplexere Modelle korrigiert, indem sowohl die LASSO-Regularisierung (auch als L1 bezeichnet) als auch die Ridge-Regularisierung (auch als L2 bezeichnet) implementiert werden.
  • Cross-Validation - Der XGBoost-Algorithmus verfügt über integrierte Cross-Validation-Funktionen, die bei jeder Iteration bei der Modellerstellung implementiert werden. Dies verhindert, dass die Anzahl der erforderlichen Boost-Iterationen berechnet werden muss.
  • Verteilte gewichtete Quantilskizze - Der XGBoost-Algorithmus verwendet die verteilte gewichtete Quantilskizze, um die optimale Anzahl von Teilungspunkten zwischen den gewichteten Datensätzen zu ermitteln

Funktionen von XGBoost

XGBoost wurde entwickelt, um die Geschwindigkeit und Leistung von Modellen für maschinelles Lernen erheblich zu verbessern, bietet jedoch auch eine Reihe erweiterter Funktionen.

A) Modellmerkmale

XGBoost unterstützt Funktionen wie die einer Sci-Kit-Lern-Regularisierung und die Implementierung von R-Sprachen. Die wichtigsten unterstützten Steigungserhöhungsmethoden sind:

  • Stochastic Gradient Boosting - Spalten, Zeilen und Spalten pro Split-Level können unterabgetastet werden.
  • Steigungsverstärkung
  • Regularisiertes Gradienten-Boosting - Der XGBoost korrigiert komplexere Modelle, indem sowohl das LASSO (auch als L1 bezeichnet) als auch die Ridge-Regularisierung (auch als L2 bezeichnet) implementiert werden.

B) Systemfunktionen

Die Systemfunktionen umfassen:

1. Distributed Computing - Diese Funktion wird zum Trainieren sehr großer Modelle durch Implementieren eines Maschinenclusters verwendet.

2. Parallelisierung - Während des Trainings werden alle CPU-Kerne zur Parallelisierung des Baumaufbaus verwendet

3. Cache-Optimierung - Die Algorithmen und Datenstrukturen werden zwischengespeichert, um die Hardware optimal zu nutzen.

4. Außerhalb des Core Computing - Für die Datensätze, die nicht in den Speicher passen, impliziert der XGBoost das Core Computing.

C) Algorithmusmerkmale

Eines der Hauptziele des XGBoost-Algorithmus war es, alle verfügbaren Ressourcen optimal zu nutzen. Einige der wichtigsten algorithmischen Funktionen des XGBoost sind:

  • Blockstruktur - Mit dieser Funktion wird die Baumkonstruktion bei der Parallelisierung unterstützt.
  • Sparse Aware - Wenn die Werte im Datensatz fehlen, wird dies von dieser Funktion automatisch behoben.
  • Fortsetzung des Trainings - Wenn das Modell mit den neuen Daten fertig ist, kann das Modell mithilfe dieser Funktion weiter verbessert werden.

Warum XGBoost verwenden?

Der Hauptzweck von XGBoost ist:

  • Ausführungsgeschwindigkeit
  • Modellleistung

Lassen Sie uns beide diskutieren.

1. Ausführungsgeschwindigkeit

Wenn wir XGBoost mit anderen Algorithmen zur Gradientenanhebung vergleichen, stellt sich heraus, dass XGBoost sehr schnell ist, ungefähr zehnmal schneller als andere Implementierungen.

Szilard Pafka führte einige Experimente durch, die darauf abzielten, die Ausführungsgeschwindigkeit verschiedener Implementierungsalgorithmen für zufällige Gesamtstrukturen zu bewerten. Unten ist eine Momentaufnahme der Ergebnisse des Experiments:

Es stellte sich heraus, dass XGBoost am schnellsten war. Weitere Informationen finden Sie hier

2. Modellleistung

Wenn wir über unstrukturierte Daten wie Bilder, unstrukturierte Textdaten usw. sprechen, scheinen die ANN-Modelle (Künstliches Neuronales Netzwerk) an der Spitze zu stehen, wenn wir versuchen, dies vorherzusagen. Wenn es sich um strukturierte / semistrukturierte Daten handelt, sind Entscheidungsbäume derzeit die besten und wenn sie mit XGBoost implementiert werden, kann dies derzeit kein anderer Boosting-Algorithmus übertreffen.

Der von XGboost verwendete Algorithmus

Der XGBoost-Algorithmus verwendet den Entscheidungsbaum-Algorithmus zur Gradientenverstärkung.

Die Gradientenverstärkungsmethode erzeugt neue Modelle, die die Aufgabe haben, die Fehler und die Residuen aller früheren Modelle vorherzusagen, die dann wiederum addiert werden und dann die endgültige Vorhersage gemacht wird.

Fazit: XGBoost-Algorithmus

In diesem XGBoost-Algorithmus haben wir den XGBoost-Algorithmus kennengelernt, der für maschinelles Lernen verwendet wird. Dann sahen wir die Funktionsweise dieses Algorithmus, seine Hauptmerkmale und warum er eine perfekte Wahl für die Implementierung von Entscheidungsbäumen zur Gradientenverstärkung ist.

Empfohlene Artikel

Dies war eine Anleitung zum XGBoost-Algorithmus. Hier haben wir das Konzept, die Funktionen, die Verwendung für maschinelles Lernen und die Arbeit eines Algorithmus in XGBoost besprochen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. NLP in Python
  2. Ray-Tracing-Algorithmus
  3. Algorithmus für digitale Signaturen
  4. Algorithmus Interview Fragen
  5. Kryptographie mit digitaler Signatur

Kategorie: