Justera eta
Nu är det dags att öva på att justera andra hyperparametrar i XGBoost och observera hur de påverkar modellens prestanda! Du börjar med att justera "eta", även känd som inlärningshastigheten.
Inlärningshastigheten i XGBoost är en parameter som kan variera mellan 0 och 1. Högre värden på "eta" straffar särdragsvikterna hårdare, vilket ger betydligt starkare regularisering.
Den här övningen är en del av kursen
Extreme Gradient Boosting med XGBoost
Övningsinstruktioner
- Skapa en lista med namnet
eta_valsför att lagra följande"eta"-värden:0.001,0.01och0.1. - Iterera över listan
eta_valsmed enfor-loop. - I varje iteration av
for-loopen anger du nyckeln"eta"iparamstillcurr_val. Utför sedan 3-faldig korsvalidering med tidig stopp (5rundor),10boostringsrundor, måttet"rmse"och ettseedpå123. Se till att utdata är en DataFrame. - Lägg till det slutliga RMSE-värdet i listan
best_rmse.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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"]))