Przeszukiwanie siatki hiperparametrów
W poprzedniej lekcji zbudowaliśmy bazowy model Gradient Boosting. Twoim zadaniem jest teraz znalezienie najlepszej wartości hiperparametru max_depth dla tego modelu. Hiperparametr ten ogranicza liczbę węzłów w każdym pojedynczym drzewie. Do oceny lokalnej wydajności modelu dla każdej wartości hiperparametru użyjesz kroswalidacji K-fold.
Do dyspozycji masz funkcję get_cv_score(), która przyjmuje zbiór treningowy oraz słownik parametrów modelu, a zwraca ogólny wynik RMSE na zbiorze walidacyjnym dla kroswalidacji 3-fold.
To ćwiczenie jest częścią kursu
Zwycięstwo w konkursie Kaggle w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj siatkę możliwych wartości
max_depth: 3, 6, 9, 12 i 15. - Przekaż każdy kandydujący hiperparametr z siatki do słownika parametrów modelu
params.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Possible max depth values
max_depth_grid = [____]
results = {}
# For each value in the grid
for max_depth_candidate in max_depth_grid:
# Specify parameters for the model
params = {'max_depth': ____}
# Calculate validation score for a particular hyperparameter
validation_score = get_cv_score(train, params)
# Save the results for each max depth value
results[max_depth_candidate] = validation_score
print(results)