Eta tunen
Tijd om serieus te oefenen met het tunen van andere XGBoost-hyperparameters en te zien wat hun effect is op de modelprestatie! Je begint met het tunen van "eta", ook wel de learning rate.
De learning rate in XGBoost is een parameter die kan variëren tussen 0 en 1. Hogere waarden van "eta" straffen de featuregewichten zwaarder af, wat zorgt voor sterkere regularisatie.
Deze oefening maakt deel uit van de cursus
Extreme Gradient Boosting met XGBoost
Oefeninstructies
- Maak een lijst
eta_valsom de volgende"eta"-waarden op te slaan:0.001,0.01en0.1. - Itereer over je
eta_vals-lijst met eenfor-loop. - Stel in elke iteratie van de
for-loop de"eta"-sleutel vanparamsgelijk aancurr_val. Voer vervolgens 3-voudige cross-validatie uit met early stopping (5rondes),10boostingrondes, een metric"rmse"en eenseedvan123. Zorg dat de output een DataFrame is. - Voeg de RMSE van de laatste ronde toe aan de lijst
best_rmse.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create your housing DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)
# Create the parameter dictionary for each tree (boosting round)
params = {"objective":"reg:squarederror", "max_depth":3}
# Create list of eta values and empty list to store final round rmse per xgboost model
____ = [____, ____, ____]
best_rmse = []
# Systematically vary the eta
for curr_val in ____:
params["___"] = curr_val
# Perform cross-validation: cv_results
cv_results = ____
# Append the final round rmse to best_rmse
____.____(____["____"].tail().values[-1])
# Print the resultant DataFrame
print(pd.DataFrame(list(zip(eta_vals, best_rmse)), columns=["eta","best_rmse"]))