Ladění max_depth
V tomto cvičení budeš ladit parametr max_depth, který určuje maximální hloubku, do které může každý strom v jednom boosting kole vyrůst. Menší hodnoty vedou k mělčím stromům, větší hodnoty pak ke hlubším.
Toto cvičení je součástí kurzu
Extreme Gradient Boosting with XGBoost
Pokyny k cvičení
- Vytvoř seznam
max_depths, který bude obsahovat následující hodnoty parametru"max_depth":2,5,10a20. - Pomocí cyklu
forprojdi seznammax_depths. - V každé iteraci cyklu
forsystematicky měň hodnotu"max_depth"a proveď 2-násobnou křížovou validaci s předčasným zastavením (5kol),10boosting koly, metrikou"rmse"a hodnotouseednastavenou na123. Výstup zajisti ve formátu DataFrame.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Create your housing DMatrix
housing_dmatrix = xgb.DMatrix(data=X,label=y)
# Create the parameter dictionary
params = {"objective":"reg:squarederror"}
# Create list of max_depth values
max_depths = ____
best_rmse = []
# Systematically vary the max_depth
for curr_val in ____:
params["____"] = ____
# Perform cross-validation
cv_results = ____
# Append the final round rmse to best_rmse
best_rmse.append(cv_results["test-rmse-mean"].tail().values[-1])
# Print the resultant DataFrame
print(pd.DataFrame(list(zip(max_depths, best_rmse)),columns=["max_depth","best_rmse"]))