Začněte nyníZačněte zdarma

2D grid search

Nevýhodou samostatného ladění každého hyperparametru je možná závislost mezi různými hyperparametry. Lepší přístup je vyzkoušet všechny možné kombinace hyperparametrů. V takovém případě ale prostor pro grid search rychle roste. Například při 2 parametrech s 10 možnými hodnotami to dá 100 experimentálních běhů.

Tvým cílem je najít nejlepší kombinaci hyperparametrů max_depth a subsample pro model Gradient Boosting. subsample je podíl pozorování použitých k trénování jednotlivých stromů.

Máš k dispozici funkci get_cv_score(), která přijímá trénovací datovou sadu a slovník parametrů modelu a vrací celkové RMSE skóre na validační sadě při 3-fold cross-validaci.

Toto cvičení je součástí kurzu

Jak vyhrát soutěž na Kaggle v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Definuj mřížky možných hodnot pro max_depth a subsample. Pro max_depth: 3, 5 a 7. Pro subsample: 0,8, 0,9 a 1,0.
  • Na mřížky hyperparametrů použij funkci product() z balíčku itertools. Vrátí všechny možné kombinace těchto dvou mřížek.
  • Každou kandidátní dvojici hyperparametrů předej do slovníku params modelu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

import itertools

# Hyperparameter grids
max_depth_grid = [____]
subsample_grid = [____]
results = {}

# For each couple in the grid
for max_depth_candidate, subsample_candidate in itertools.____(max_depth_grid, subsample_grid):
    params = {'max_depth': ____,
              'subsample': ____}
    validation_score = get_cv_score(train, params)
    # Save the results for each couple
    results[(max_depth_candidate, subsample_candidate)] = validation_score   
print(results)
Upravit a spustit kód