XGBoost ist eine für Klassifizierung und Regression verwendete Methode für überwachtes maschinelles Lernen, die vom Werkzeug Mit AutoML trainieren verwendet wird. XGBoost ist die Kurzform von "Extreme Gradient Boosting". Diese Methode basiert auf Entscheidungsbäumen und stellt eine Verbesserung anderer Methoden wie Random Forest und Gradientenverstärkung dar. Sie funktioniert gut mit umfangreichen, komplizierten Datasets, da sie verschiedene Optimierungsmethoden verwendet.
Zum Anpassen eines Trainings-Datasets mit XGBoost wird eine anfängliche Vorhersage erstellt. Basierend auf dem vorhergesagten Wert und den beobachteten Werten werden Residuen berechnet. Mithilfe eines Ähnlichkeitswertes für Residuen wird ein Entscheidungsbaum mit den Residuen erstellt. Die Ähnlichkeit der Daten in einem Blatt sowie die Verstärkung der Ähnlichkeit im nachfolgenden Teil wird berechnet. Die Verstärkungen werden verglichen, um ein Feature und einen Schwellenwert für einen Knoten zu bestimmen. Der Ausgabewert für jedes Blatt wird ebenfalls mithilfe der Residuen berechnet. Bei der Klassifizierung werden die Werte in der Regel mithilfe des Logarithmus der Chancen und Wahrscheinlichkeiten berechnet. Die Ausgabe des Baumes wird zum neuen Residuum für das Dataset, das zum Erstellen eines weiteren Baumes verwendet wird. Dieser Prozess wird wiederholt, bis die Residuen nicht mehr abnehmen oder eine angegebene Anzahl von Wiederholungen erreicht ist. Jeder nachfolgende Baum lernt von den vorherigen Bäumen, und ihm wird im Gegensatz zur Funktionsweise von Random Forest keine gleiche Gewichtung zugewiesen.
Um dieses Modell für Vorhersagen zu verwenden, wird die Ausgabe jedes einzelnen Baumes mit einer Lernrate multipliziert und zur anfänglichen Vorhersage addiert, um einen endgültigen Wert bzw. eine endgültige Klassifizierung zu erhalten.
XGBoost verwendet die folgenden Parameter und Methoden, um den Algorithmus zu optimieren und die Ergebnisse und die Performance zu verbessern:
- Normalisierung: Beim Berechnen der Ähnlichkeitswerte zum Reduzieren der Empfindlichkeit gegenüber einzelnen Daten und zum Vermeiden von Überanpassung wird ein Normalisierungsparameter ("lambda") verwendet.
- Beschneidung: Zum Vergleichen der Verstärkungen wird ein Parameter für die Baumkomplexität ("gamma") ausgewählt. Der Zweig, in dem die Verstärkung geringer als der Wert "gamma" ist, wird entfernt. Dadurch wird eine Überanpassung verhindert, indem nicht benötigte Zweige gekürzt werden und die Tiefe der Bäume reduziert wird.
- Gewichtete Quantilskizze: Anstatt jeden möglichen Wert als Schwellenwert für das Teilen der Daten zu testen, werden nur gewichtete Quantile verwendet. Für die Auswahl der Quantile wird ein Skizzenalgorithmus verwendet, mit dem die Verteilung auf mehrere Systeme in einem Netzwerk geschätzt wird.
- Paralleles Lernen: Bei dieser Methode werden die Daten in Blöcke geteilt, die parallel zum Erstellen der Bäume oder für andere Berechnungen verwendet werden können.
- Sparsity-aware Split Finding (seltenheitsbezogene Teilungssuche): XGBoost behandelt Seltenheit in Daten, indem beide Richtungen einer Teilung ausprobiert werden und durch Berechnen der Verstärkung eine Standardrichtung gefunden wird.
- Cache-bezogener Zugriff: Bei dieser Methode wird der Cache-Speicher des Systems verwendet, um die Ähnlichkeitswerte und Ausgabewerte zu berechnen. Der Cache-Speicher ermöglicht im Vergleich mit dem Hauptspeicher schnelleren Zugriff und verbessert die allgemeine Performance des Modells.
- Blöcke für Out-of-Core-Berechnung auf externem Speicher: Bei dieser Methode werden große Datasets verwendet, die nicht in den Cache oder den Hauptspeicher passen und auf Festplatten aufbewahrt werden müssen. Das Dataset wird in Blöcke unterteilt und komprimiert. Im Hauptspeicher werden die Daten schneller dekomprimiert als beim Lesen von der Festplatte. Wenn die Daten auf mehreren Festplatten aufbewahrt werden müssen, wird eine andere Methode verwendet, die als Sharding bezeichnet wird.
Zusätzliche Ressourcen
Chen Tianqi und Guestrin Carlos. 2016. XGBoost: A scalable tree boosting system. In "Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining", 785–794.