Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Iterative Search with HalvingGridSearchCV | Advanced and Bayesian Tuning Techniques
Hyperparameter Tuning Basics

bookIterative Search with HalvingGridSearchCV

Successive Halving is a resource-efficient hyperparameter tuning method that works in rounds:

  • Start by evaluating many hyperparameter combinations with minimal resources;
  • After each round, keep only the best-performing candidates;
  • Allocate more resources to these candidates in the next round;
  • Repeat the process until you identify the top performers.

This approach quickly narrows down promising settings while saving computation by discarding poor options early.

Successive Halving: Reducing Computation

Successive halving streamlines hyperparameter search by focusing resources on the best candidates through an iterative process:

  • Begin with many hyperparameter combinations, each given minimal resources;
  • Evaluate all candidates and rank their performance;
  • Eliminate a fixed proportion of the lowest-performing candidates after each round;
  • Increase resources for the remaining, better-performing candidates;
  • Repeat these steps until only the top candidates remain.

This approach quickly narrows down the search, saving computation and time compared to exhaustive grid search.

12345678910111213141516171819202122232425262728293031
from sklearn.experimental import enable_halving_search_cv # noqa from sklearn.model_selection import HalvingGridSearchCV from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris # Load example data data = load_iris() X, y = data.data, data.target # Define a simple parameter grid param_grid = { 'n_estimators': [10, 50, 100], 'max_depth': [2, 4, 6] } # Initialize the classifier clf = RandomForestClassifier(random_state=42) # Set up HalvingGridSearchCV halving_search = HalvingGridSearchCV( estimator=clf, param_grid=param_grid, factor=2, random_state=42 ) # Fit the model halving_search.fit(X, y) # Show the best parameters print(halving_search.best_params_)
copy
Note
Note

HalvingGridSearchCV often delivers similar accuracy to regular GridSearchCV but is much more runtime efficient. It quickly eliminates underperforming hyperparameter combinations using fewer resources, so you spend less time training models that are unlikely to perform well. Regular GridSearchCV tests every possible combination, which can be slow for large search spaces but may guarantee finding the absolute best set if resources are unlimited.

HalvingGridSearchCV is still experimental in scikit-learn. To use it, you must enable experimental features by importing:

from sklearn.experimental import enable_halving_search_cv  # noqa
from sklearn.model_selection import HalvingGridSearchCV
question mark

What is the main trade-off when using successive halving or HalvingGridSearchCV for hyperparameter tuning?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 9.09

bookIterative Search with HalvingGridSearchCV

Stryg for at vise menuen

Successive Halving is a resource-efficient hyperparameter tuning method that works in rounds:

  • Start by evaluating many hyperparameter combinations with minimal resources;
  • After each round, keep only the best-performing candidates;
  • Allocate more resources to these candidates in the next round;
  • Repeat the process until you identify the top performers.

This approach quickly narrows down promising settings while saving computation by discarding poor options early.

Successive Halving: Reducing Computation

Successive halving streamlines hyperparameter search by focusing resources on the best candidates through an iterative process:

  • Begin with many hyperparameter combinations, each given minimal resources;
  • Evaluate all candidates and rank their performance;
  • Eliminate a fixed proportion of the lowest-performing candidates after each round;
  • Increase resources for the remaining, better-performing candidates;
  • Repeat these steps until only the top candidates remain.

This approach quickly narrows down the search, saving computation and time compared to exhaustive grid search.

12345678910111213141516171819202122232425262728293031
from sklearn.experimental import enable_halving_search_cv # noqa from sklearn.model_selection import HalvingGridSearchCV from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris # Load example data data = load_iris() X, y = data.data, data.target # Define a simple parameter grid param_grid = { 'n_estimators': [10, 50, 100], 'max_depth': [2, 4, 6] } # Initialize the classifier clf = RandomForestClassifier(random_state=42) # Set up HalvingGridSearchCV halving_search = HalvingGridSearchCV( estimator=clf, param_grid=param_grid, factor=2, random_state=42 ) # Fit the model halving_search.fit(X, y) # Show the best parameters print(halving_search.best_params_)
copy
Note
Note

HalvingGridSearchCV often delivers similar accuracy to regular GridSearchCV but is much more runtime efficient. It quickly eliminates underperforming hyperparameter combinations using fewer resources, so you spend less time training models that are unlikely to perform well. Regular GridSearchCV tests every possible combination, which can be slow for large search spaces but may guarantee finding the absolute best set if resources are unlimited.

HalvingGridSearchCV is still experimental in scikit-learn. To use it, you must enable experimental features by importing:

from sklearn.experimental import enable_halving_search_cv  # noqa
from sklearn.model_selection import HalvingGridSearchCV
question mark

What is the main trade-off when using successive halving or HalvingGridSearchCV for hyperparameter tuning?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt