LoslegenKostenlos loslegen

Lineare Basislerner

Nachdem du Bäume als Basismodelle in XGBoost verwendet hast, schauen wir uns jetzt die andere Art von Basismodell an, die mit XGBoost genutzt werden kann – einen linearen Lerner. Dieses Modell ist in XGBoost zwar weniger verbreitet, erlaubt dir aber, eine reguläre lineare Regression über die leistungsstarke Learning-API von XGBoost zu erstellen. Weil es jedoch unüblich ist, musst du zum Bauen des Modells XGBoosts eigene, nicht scikit-learn-kompatible Funktionen verwenden, z. B. xgb.train().

Dafür musst du ein Parameter-Dictionary erstellen, das beschreibt, welchen Booster du verwenden möchtest (ähnlich wie du das Dictionary in Kapitel 1 erstellt hast, als du xgb.cv() verwendet hast). Das Key-Value-Paar, das den Boostertyp (Basismodell) festlegt, lautet "booster":"gblinear".

Sobald du das Modell erstellt hast, kannst du die Methoden .train() und .predict() wie gewohnt verwenden.

Hier sind die Daten bereits in Trainings- und Testsets aufgeteilt, sodass du direkt mit der Erstellung der für die XGBoost-Learning-API erforderlichen DMatrix-Objekte starten kannst.

Diese Übung ist Teil des Kurses

Extreme Gradient Boosting mit XGBoost

Kurs anzeigen

Anleitung zur Übung

  • Erstelle zwei DMatrix-Objekte – DM_train für das Trainingsset (X_train und y_train) und DM_test (X_test und y_test) für das Testset.
  • Erstelle ein Parameter-Dictionary, das den "booster"-Typ ("gblinear") sowie das zu minimierende "objective" ("reg:squarederror") definiert.
  • Trainiere das Modell mit xgb.train(). Du musst Argumente für folgende Parameter angeben: params, dtrain und num_boost_round. Verwende 5 Boosting-Runden.
  • Sage die Labels für das Testset mit xg_reg.predict() voraus und übergib DM_test. Weise das Ergebnis preds zu.
  • Klicke auf "Antwort senden", um die RMSE zu sehen!

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Convert the training and testing sets into DMatrixes: DM_train, DM_test
DM_train = ____
DM_test =  ____

# Create the parameter dictionary: params
params = {"____":"____", "____":"____"}

# Train the model: xg_reg
xg_reg = ____.____(____ = ____, ____=____, ____=____)

# Predict the labels of the test set: preds
preds = ____

# Compute and print the RMSE
rmse = np.sqrt(mean_squared_error(y_test,preds))
print("RMSE: %f" % (rmse))
Code bearbeiten und ausführen