Lineaire basismodellen
Nu je bomen als basismodellen in XGBoost hebt gebruikt, gaan we de andere soort basismodel gebruiken die met XGBoost kan worden ingezet: een lineaire learner. Dit model wordt in XGBoost minder vaak gebruikt, maar maakt het wel mogelijk om een geregulariseerde lineaire regressie te bouwen via de krachtige leer-API van XGBoost. Omdat het minder gangbaar is, moet je wel de eigen, niet-scikit-learn-compatibele functies van XGBoost gebruiken om het model te bouwen, zoals xgb.train().
Hiervoor moet je een parameterdictionary maken die het type booster beschrijft dat je wilt gebruiken (vergelijkbaar met hoe je in hoofdstuk 1 de dictionary maakte toen je xgb.cv() gebruikte). Het sleutel-waardepaar dat het boostertype (basismodel) definieert dat je nodig hebt, is "booster":"gblinear".
Zodra je het model hebt gemaakt, kun je de methoden .train() en .predict() van het model gebruiken zoals je eerder hebt gedaan.
Hier zijn de gegevens al opgesplitst in training- en testsets, dus je kunt meteen aan de slag met het maken van de DMatrix-objecten die vereist zijn door de XGBoost-leer-API.
Deze oefening maakt deel uit van de cursus
Extreme Gradient Boosting met XGBoost
Oefeninstructies
- Maak twee
DMatrix-objecten:DM_trainvoor de trainingsset (X_traineny_train), enDM_test(X_testeny_test) voor de testset. - Maak een parameterdictionary die het type
"booster"dat je gebruikt ("gblinear") definieert, evenals de"objective"die je minimaliseert ("reg:squarederror"). - Train het model met
xgb.train(). Je moet argumenten opgeven voor de volgende parameters:params,dtrainennum_boost_round. Gebruik5boostingrondes. - Voorspel de labels op de testset met
xg_reg.predict()en geefDM_testdoor. Ken toe aanpreds. - Klik op 'Antwoord verzenden' om de RMSE te bekijken!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))