XGBoost Gradient Boosting: Leitfaden für Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in XGBoost

XGBoost (Extreme Gradient Boosting) ist eine hochperformante Implementierung des Gradient Boosting, die sich zum De-facto-Standard im maschinellen Lernen entwickelt hat. Entwickelt von Tianqi Chen im Jahr 2016, revolutionierte diese Bibliothek die Welt der Data Science und wurde zu einem Schlüsselwerkzeug für Siege in zahlreichen Kaggle-Wettbewerben.

XGBoost ist ein optimiertes, verteiltes Gradient-Boosting-System, das für hohe Leistung, Flexibilität und Portabilität ausgelegt ist. Der Algorithmus wird häufig für Klassifikation, Regression und Ranking eingesetzt und zeichnet sich durch außergewöhnliche Stabilität und gute Generalisierungsfähigkeit aus.

Was ist Gradient Boosting?

Gradient Boosting ist eine leistungsstarke Ensemble-Methode des maschinellen Lernens, die auf dem sequenziellen Training schwacher Modelle (meist Entscheidungsbäume) basiert. Jedes neue Modell im Ensemble konzentriert sich darauf, die Fehler der vorherigen Modelle zu korrigieren.

Funktionsweise von Gradient Boosting

Der Algorithmus funktioniert wie folgt:

  1. Initialisierung: Ein Basismodell (meist eine konstante Vorhersage) wird erstellt.
  2. Iteratives Training: In jeder Iteration wird ein neues Modell hinzugefügt, das die Residuen (Fehler) der vorherigen Modelle vorhersagt.
  3. Optimierung: Der Gradientenabstieg wird verwendet, um die Verlustfunktion zu minimieren.
  4. Aggregation: Die endgültige Vorhersage ergibt sich aus der Summe der Vorhersagen aller Modelle mit entsprechenden Gewichtungen.

Architektur und Funktionsprinzipien von XGBoost

XGBoost implementiert eine verbesserte Version des Gradient Boosting mit mehreren innovativen Optimierungen:

Wichtige Architekturentscheidungen

Optimierung zweiter Ordnung: XGBoost nutzt Informationen über die zweiten Ableitungen (Hesse-Matrix) der Verlustfunktion, was eine genauere Approximation und schnellere Konvergenz ermöglicht.

Regularisierung: Die integrierte Unterstützung für L1- und L2-Regularisierung verhindert Überanpassung auf Algorithmusebene.

Sparse Daten: Der sparsity-bewusste Algorithmus verarbeitet dünn besetzte Daten effizient, indem er automatisch die optimale Richtung für fehlende Werte lernt.

Paralleles Rechnen: Der Baumkonstruktionsalgorithmus ist parallelisiert, was das Training erheblich beschleunigt.

Der Baumkonstruktionsprozess

XGBoost verwendet einen einzigartigen Algorithmus zur Baumkonstruktion:

  1. Histogramm-Ansatz: Anstatt alle Merkmalswerte zu sortieren, werden Histogramme verwendet, um die Suche nach optimalen Teilungspunkten zu beschleunigen.
  2. Gierige Suche: Eine gierige Strategie wird angewendet, um die besten Knotenaufteilungen zu wählen.
  3. Näherungsalgorithmus: Für große Datensätze wird ein Näherungsalgorithmus mit Quantilen verwendet.

Installation und Einrichtung von XGBoost

Bibliothek installieren

Standardinstallation über pip:

pip install xgboost

Für die Installation mit GPU-Unterstützung:

pip install xgboost[gpu]

Installation aus dem Quellcode für maximale Leistung:

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
python setup.py install

Import und Basiskonfiguration

import xgboost as xgb
from xgboost import XGBClassifier, XGBRegressor
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, mean_squared_error

Wichtige XGBoost-Schnittstellen

XGBoost bietet drei Hauptschnittstellen für die Arbeit:

Learning API (native Schnittstelle)


                
    
    

Empfehlungen