ÎncepețiÎncepe gratuit

Căutare în grilă 2D

Dezavantajul ajustării fiecărui hiperparametru independent este o potențială dependență între diferiți hiperparametri. O abordare mai bună este să încerci toate combinațiile posibile de hiperparametri. Totuși, în astfel de cazuri, spațiul de căutare în grilă se extinde rapid. De exemplu, dacă avem 2 parametri cu câte 10 valori posibile, rezultă 100 de rulări de experiment.

Scopul tău este să găsești cea mai bună pereche de hiperparametri max_depth și subsample pentru modelul Gradient Boosting. subsample reprezintă fracția de observații utilizată pentru antrenarea arborilor individuali.

Îți este pusă la dispoziție funcția get_cv_score(), care primește setul de antrenament și un dicționar de parametri ai modelului ca argumente și returnează scorul global RMSE de validare pe validare încrucișată cu 3 iterații.

Acest exercițiu face parte din cursul

Câștigarea unei competiții Kaggle în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Specifică grilele pentru valorile posibile ale max_depth și subsample. Pentru max_depth: 3, 5 și 7. Pentru subsample: 0,8, 0,9 și 1,0.
  • Aplică funcția product() din pachetul itertools grilelor de hiperparametri. Aceasta returnează toate combinațiile posibile pentru cele două grile.
  • Transmite fiecare pereche de candidați de hiperparametri în dicționarul params al modelului.

Exercițiu interactiv practic

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

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