Dostrajanie max_depth
W tym ćwiczeniu dostroisz parametr max_depth, który określa maksymalną głębokość, jaką może osiągnąć każde drzewo w danej rundzie boostingu. Mniejsze wartości dają płytsze drzewa, a większe – głębsze.
To ćwiczenie jest częścią kursu
Extreme Gradient Boosting with XGBoost
Instrukcje do ćwiczenia
- Utwórz listę o nazwie
max_depths, która będzie przechowywać następujące wartości"max_depth":2,5,10i20. - Iteruj po liście
max_depthsza pomocą pętlifor. - W każdej iteracji pętli
forsystematycznie zmieniaj wartość"max_depth"i wykonuj 2-krotną walidację krzyżową z wczesnym zatrzymaniem (5rund),10rundami boostingu, metryką"rmse"i ziarnem losowości (seed) równym123. Zadbaj o to, aby wynik był zwracany jako DataFrame.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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"]))