Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen XGBoost | Häufig Verwendete Boosting-Modelle
Ensemble-Lernen
course content

Kursinhalt

Ensemble-Lernen

Ensemble-Lernen

1. Grundprinzipien des Aufbaus von Ensemble-Modellen
2. Häufig Verwendete Bagging-Modelle
3. Häufig Verwendete Boosting-Modelle
4. Häufig Verwendete Stacking-Modelle

book
XGBoost

XGBoost (Extreme Gradient Boosting) ist ein beliebter und leistungsstarker Algorithmus für maschinelles Lernen, der für Klassifikations- und Regressionsaufgaben eingesetzt wird. Es handelt sich um eine Ensemble-Lerntechnik, die zur Familie der Gradient-Boosting-Algorithmen gehört. XGBoost ist bekannt für seine Effizienz, Skalierbarkeit und Effektivität bei der Bewältigung verschiedener Probleme des maschinellen Lernens.

Hauptmerkmale von XGBoost

  1. Gradient Boosting: XGBoost ist eine Variante des Gradient Boosting mit flachen Entscheidungsbäumen als Basismodellen. Diese Bäume werden auf gierige Weise erstellt, indem die Daten rekursiv basierend auf dem Merkmal partitioniert werden, das zur besten Aufteilung führt;
  2. Regularisierung: XGBoost integriert Regularisierungstechniken, um Überanpassung zu verhindern. Es enthält Terme in der Zielfunktion, die komplexe Modelle bestrafen, was zu einer besseren Generalisierung beiträgt;
  3. Zielfunktion: XGBoost optimiert eine Zielfunktion, die die Verlustfunktion (z.B. mittlerer quadratischer Fehler für Regression, Log-Verlust für Klassifikation) und Regularisierungsterme kombiniert. Der Algorithmus versucht, das beste Modell zu finden, das diese Zielfunktion minimiert;
  4. Paralleles und verteiltes Rechnen: XGBoost ist darauf ausgelegt, effizient und skalierbar zu sein. Es nutzt parallele und verteilte Rechentechniken, um den Trainingsprozess zu beschleunigen, was es für große Datensätze geeignet macht.

Die Effektivität von XGBoost liegt in seiner Fähigkeit, genaue Vorhersagen zu treffen und gleichzeitig Probleme wie Überanpassung und Unteranpassung zu bewältigen. Es hat aufgrund seiner starken Vorhersageleistung und Vielseitigkeit in verschiedenen Wettbewerben des maschinellen Lernens und realen Anwendungen an Popularität gewonnen.

Beispiel

Zunächst müssen wir zugeben, dass XGBoost keine Implementierung in der sklearn-Bibliothek hat, daher müssen wir xgboost manuell mit dem folgenden Befehl in der Konsole Ihres Interpreters installieren:
pip install xgboost.
Nach Abschluss der Installation können wir XGBoost verwenden, um die Aufgaben zu lösen.

Was ist DMatrix?

Bevor wir mit dem XGBoost-Ensemblemodell arbeiten, müssen wir uns mit einer speziellen Datenstruktur vertraut machen - DMatrix.
In XGBoost ist DMatrix eine Datenstruktur, die für Effizienz optimiert ist und zur Speicherung des Datensatzes während des Trainings und der Vorhersage verwendet wird. Es ist ein Kernkonzept in der xgboost-Bibliothek und wurde entwickelt, um große Datensätze speichereffizient und schnell zu verarbeiten. DMatrix dient als Eingabebehälter für die Trainings- und Testdaten.

DMatrix-Beispiel

1234567891011
import xgboost as xgb import numpy as np # Sample data X_train = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]) y_train = np.array([0, 1, 0]) # Create DMatrix objects dtrain = xgb.DMatrix(X_train, label=y_train) print(type(dtrain))
copy

XGBoost-Nutzungsbeispiel

12345678910111213141516171819202122232425262728293031323334
import numpy as np import pandas as pd import xgboost as xgb from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import f1_score # Load the Iris dataset data = load_iris() X = data.data y = data.target # Split the data into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Create DMatrix objects for XGBoost dtrain = xgb.DMatrix(X_train, label=y_train) dtest = xgb.DMatrix(X_test, label=y_test) # Set hyperparameters params = { 'objective': 'multi:softmax', 'num_class': 3 } # Train the XGBoost classifier model = xgb.train(params, dtrain) # Make predictions y_pred = model.predict(dtest) # Calculate accuracy f1 = f1_score(y_test, y_pred, average='weighted') print(f'F1-score: {f1:.4f}')
copy
Welches Modell ist besser zu verwenden, wenn Sie Overfitting vermeiden möchten?

Welches Modell ist besser zu verwenden, wenn Sie Overfitting vermeiden möchten?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt