hyperparameters.parameters

hyperparameters.parameters

Classes

Name Description
ParameterSet User-friendly interface for defining hyperparameters.

ParameterSet

hyperparameters.parameters.ParameterSet()

User-friendly interface for defining hyperparameters.

This class allows for the definition of a set of hyperparameters including their types, bounds, default values, and transformations. It supports float, integer, and categorical parameters and provides a fluent interface for chaining parameter definitions.

Attributes

Name Type Description
_parameters List[Dict] List of parameter definitions.
_var_names List[str] List of parameter names.
_var_types List[str] List of parameter types (‘float’, ‘int’, ‘factor’).
_bounds List[Union[Tuple, List]] List of bounds for each parameter.
_defaults Dict[str, Any] Dictionary of default values.
_var_trans List[Optional[str]] List of variable transformations.

Examples

>>> ps = ParameterSet()
>>> ps.add_float("max_depth", 1, 10, default=3)
ParameterSet(
    max_depth=Parameter(name='max_depth', type='float', check_on_set=True, bounds=(1, 10), default=3),
)

Methods

Name Description
add_factor Add a factor (categorical) hyperparameter.
add_float Add a float hyperparameter.
add_int Add an integer hyperparameter.
names Returns a list of parameter names.
sample_default Returns the default configuration.
add_factor
hyperparameters.parameters.ParameterSet.add_factor(name, choices, default=None)

Add a factor (categorical) hyperparameter.

Parameters
Name Type Description Default
name str Name of the parameter. required
choices List[str] List of possible values for the parameter. required
default Optional[str] Default value for the parameter. None
Returns
Name Type Description
ParameterSet ParameterSet The instance itself to allow method chaining.
Examples
>>> from spotoptim.hyperparameters import ParameterSet
>>> ps = ParameterSet()
>>> ps.add_factor("optimizer", ["adam", "sgd"], default="adam")
add_float
hyperparameters.parameters.ParameterSet.add_float(
    name,
    low,
    high,
    default=None,
    transform=None,
)

Add a float hyperparameter.

Parameters
Name Type Description Default
name str Name of the parameter. required
low float Lower bound of the parameter range. required
high float Upper bound of the parameter range. required
default Optional[float] Default value for the parameter. None
transform Optional[str] Transformation string, e.g., “log”, “log(x)”, “pow(x, 2)”. None
Returns
Name Type Description
ParameterSet ParameterSet The instance itself to allow method chaining.
Examples
>>> from spotoptim.hyperparameters import ParameterSet
>>> ps = ParameterSet()
>>> ps.add_float("learning_rate", 0.0001, 0.1, default=0.01, transform="log")
add_int
hyperparameters.parameters.ParameterSet.add_int(
    name,
    low,
    high,
    default=None,
    transform=None,
)

Add an integer hyperparameter.

Parameters
Name Type Description Default
name str Name of the parameter. required
low int Lower bound of the parameter range (inclusive). required
high int Upper bound of the parameter range (inclusive). required
default Optional[int] Default value for the parameter. None
transform Optional[str] Transformation string, e.g., “log”, “log(x)”, “pow(x, 2)”. None
Returns
Name Type Description
ParameterSet ParameterSet The instance itself to allow method chaining.
Examples
>>> from spotoptim.hyperparameters import ParameterSet
>>> ps = ParameterSet()
>>> ps.add_int("n_estimators", 10, 100, default=50)
>>> ps.add_int("epochs", 2, 5, transform="log")
names
hyperparameters.parameters.ParameterSet.names()

Returns a list of parameter names.

Returns
Name Type Description
List[str] List[str]: The names of the parameters.
sample_default
hyperparameters.parameters.ParameterSet.sample_default()

Returns the default configuration.

Returns
Name Type Description
Dict[str, Any] Dict[str, Any]: A dictionary mapping parameter names to their default values.
Examples
>>> ps = ParameterSet()
>>> ps.add_int("x", 1, 10, default=5)
>>> ps.sample_default()
{'x': 5}