Zacznij terazZacznij za darmo

Strojenie eta

Czas poćwiczyć strojenie innych hiperparametrów XGBoost i zobaczyć, jak wpływają na wydajność modelu! Zaczniesz od strojenia parametru "eta", czyli współczynnika uczenia.

Współczynnik uczenia w XGBoost to parametr przyjmujący wartości z przedziału 01. Wyższe wartości "eta" silniej penalizują wagi cech, co przekłada się na mocniejszą regularyzację.

To ćwiczenie jest częścią kursu

Extreme Gradient Boosting with XGBoost

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz listę o nazwie eta_vals, w której zapiszesz następujące wartości "eta": 0.001, 0.01 i 0.1.
  • Przejdź przez listę eta_vals za pomocą pętli for.
  • W każdej iteracji pętli for ustaw klucz "eta" w params na wartość curr_val. Następnie przeprowadź 3-krotną walidację krzyżową z wczesnym zatrzymaniem (5 rund), 10 rundami boostingu, miarą "rmse" i seed równym 123. Zadbaj o to, aby wynik był obiektem DataFrame.
  • Dołącz wartość RMSE z ostatniej rundy do listy best_rmse.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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"]))
Edytuj i uruchom kod