Search Space Questions#

How do I define a continuous search space?#

Use NumPy to create arrays of values:

import numpy as np

search_space = {
    "learning_rate": np.logspace(-4, -1, 50),  # 0.0001 to 0.1
    "momentum": np.linspace(0.5, 0.99, 50),    # 0.5 to 0.99
}

Hyperactive samples from these arrays, so finer granularity gives more precision at the cost of a larger search space.

Can I mix discrete and continuous parameters?#

Yes, mix freely:

search_space = {
    "n_estimators": [10, 50, 100, 200],          # Discrete
    "max_depth": list(range(3, 20)),             # Discrete range
    "learning_rate": np.linspace(0.01, 0.3, 30), # Continuous
    "algorithm": ["SAMME", "SAMME.R"],           # Categorical
}

How do I include None as a parameter value?#

Include None directly in your list:

search_space = {
    "max_depth": [None, 3, 5, 10, 20],
}