ÎncepețiÎncepe gratuit

Reglarea parametrului eta

E momentul să exersezi reglarea altor hiperparametri XGBoost și să observi efectul acestora asupra performanței modelului! Vei începe cu reglarea parametrului "eta", cunoscut și sub numele de rată de învățare.

Rata de învățare în XGBoost este un parametru cu valori cuprinse între 0 și 1. Valorile mai mari ale parametrului "eta" penalizează mai puternic ponderile caracteristicilor, ceea ce duce la o regularizare mai accentuată.

Acest exercițiu face parte din cursul

Gradient Boosting Extrem cu XGBoost

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează o listă numită eta_vals pentru a stoca următoarele valori ale parametrului "eta": 0.001, 0.01 și 0.1.
  • Iterează prin lista eta_vals folosind o buclă for.
  • În fiecare iterație a buclei for, setează cheia "eta" din params ca fiind egală cu curr_val. Apoi, efectuează o validare încrucișată cu 3 fold-uri, cu oprire timpurie (5 runde), 10 runde de boosting, metrica "rmse" și o valoare seed de 123. Asigură-te că rezultatul este un DataFrame.
  • Adaugă valoarea RMSE din ultima rundă în lista best_rmse.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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"]))
Editează și rulează codul