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
Anleitung zur Übung
- Erstelle zwei
DMatrix-Objekte –DM_trainfür das Trainingsset (X_trainundy_train) undDM_test(X_testundy_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,dtrainundnum_boost_round. Verwende5Boosting-Runden. - Sage die Labels für das Testset mit
xg_reg.predict()voraus und übergibDM_test. Weise das Ergebnispredszu. - 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))