Definition Was ist XGBoost?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel |

XGBoost ist eine frei verfügbare Bibliothek mit Open-Source-Lizenz. Sie ermöglicht überwachtes maschinelles Lernen mit dem Boosted-Tree-Algorithmus, einem Baumalgorithmus mit Gradient Boosting. Die Bibliothek ist für Betriebssysteme wie Linux, Windows oder macOS verfügbar und arbeitet mit Programmiersprachen wie C++, Java, Python, R und Julia.

Anbieter zum Thema

(Bild: © aga7ta - stock.adobe.com)

Der Name XGBoost steht für eXtreme Gradient Boosting. Es handelt sich um eine Open-Source-Software-Bibliothek für überwachtes maschinelles Lernen mit dem sogenannten Baumalgorithmus mit Gradient Boosting. Mithilfe von XGBoost lassen sich Zielvariablen genauer bestimmen, indem mehrere einfachere und schwächere Modelle miteinander kombiniert und Schätzungen getroffen werden. Die Software adressiert Problemstellungen des maschinellen Lernens in den Bereichen Regression, Rangfolge und Klassifizierung. Sie arbeitet performant und liefert zuverlässige Ergebnisse.

Nutzbar ist XGBoost für die Programmiersprachen C++, Java, Python, R und Julia auf Rechnern mit den Betriebssystemen Microsoft Windows, Linux oder Apple macOS. Auch verteiltes Computing mit Frameworks wie Apache Flink, Apache Spark oder Apache Hadoop ist möglich. Der ursprüngliche Entwickler der in C++ geschriebenen Software ist Tianqi Chen. Das erste Release erschien 2014. Die aktuellste Version 0.90 stammt aus dem Jahr 2019. XGBoost wird beispielsweise von Datenwissenschaftlern und Entwicklern im Umfeld Künstlicher Intelligenz (KI) eingesetzt und hat bereits mehrere Machine-Learning-Wettbewerbe gewonnen. Verfügbar ist XGBoost unter Apache License 2.0 auf GitHub.

Die zentralen Funktionen von XGBoost

XGBoost ist optimiert für eine hohe Rechenleistung und Modell-Performance. Die Bibliothek stellt zahlreiche Funktionen zur Verfügung. Im Bereich des Gradient Boostings werden der Gradient-Boosting-Algorithmus, das stochastische Gradient Boosting und das normalisierte Gradient Boosting unterstützt. XGBoost ermöglicht den Einsatz von Multi-Core-Umgebungen und Distributed Computing für das Training großer Machine-Learning-Modelle. Durch sogenanntes Out-of-Core Computing lassen sich große Datenmengen, die nicht in den Speicher der Systeme passen, verarbeiten. Die Algorithmen sind so implementiert, dass sie effizient mit dem zur Verfügung stehenden Speicher und der vorhandenen Rechenleistung umgehen. Durch die Verwendung von Blockstrukturen können mehrere Baummodelle parallelisiert werden.

Grundsätzliches zum Gradient Boosting

Maschinelles Lernen erzeugt Wissen aus vorhandenen Daten und Erfahrungen. Es werden Regeln und Gesetzmäßigkeiten gefunden, aus denen sich Handlungsempfehlungen ableiten lassen. Das überwachte Lernen (Supervised Learning) ist ein Teilbereich des maschinellen Lernens und nutzt eine existierende Datenbasis, aus der sich Zielvariablen ableiten lassen. Es entsteht durch das Training ein Modell, das auf zukünftige Datensätze angewendet Zielvariablen vorhersagt.

Ein für überwachtes maschinelles Lernen eingesetzter Algorithmus ist der Baumalgorithmus mit Gradient Boosting. Boosting ist eine Methode, die verschiedene einfachere und schwächere Modelle kombiniert, um bessere Vorhersagen der Zielvariablen zu machen. Es werden so lange Modelle hinzugefügt, bis keine Verbesserungen der Vorhersagen mehr eintreten. Beim Gradient Boosting kommt ein spezieller Gradienten-Algorithmus, der sogenannte Gradient-Descent-Algorithmus, zum Hinzufügen der Modelle zum Einsatz. Der Baumalgorithmus mit Gradient Boosting fügt neue Verzweigungen hinzu, die Fehler vorheriger Verzweigungen vorhersagen und die Fehler oder Verluste minimieren. Durch Verknüpfung der Bäume beziehungsweise der Verzweigungen entstehen die endgültigen Prognosen.

(ID:46014482)