Tuners¶
EvalML tuner classes.
Package Contents¶
Classes Summary¶
Grid Search Optimizer, which generates all of the possible points to search for using a grid. |
|
Random Search Optimizer. |
|
Bayesian Optimizer. |
|
Base Tuner class. |
Exceptions Summary¶
Contents¶
-
class
evalml.tuners.
GridSearchTuner
(pipeline_hyperparameter_ranges, n_points=10, random_seed=0)[source]¶ Grid Search Optimizer, which generates all of the possible points to search for using a grid.
- Parameters
pipeline_hyperparameter_ranges (dict) – a set of hyperparameter ranges corresponding to a pipeline’s parameters
n_points (int) – The number of points to sample from along each dimension defined in the
space
argument. Defaults to 10.random_seed (int) – Seed for random number generator. Unused in this class, defaults to 0.
Example
>>> tuner = GridSearchTuner({'My Component': {'param a': [0.0, 10.0], 'param b': ['a', 'b', 'c']}}, n_points=5) >>> proposal = tuner.propose() >>> assert proposal.keys() == {'My Component'} >>> assert proposal['My Component'] == {'param a': 0.0, 'param b': 'a'}
Methods
Not applicable to grid search tuner as generated parameters are not dependent on scores of previous parameters.
Checks if it is possible to generate a set of valid parameters. Stores generated parameters in
self.curr_params
to be returned bypropose()
.Returns parameters from _grid_points iterations.
-
add
(self, pipeline_parameters, score)[source]¶ Not applicable to grid search tuner as generated parameters are not dependent on scores of previous parameters.
- Parameters
pipeline_parameters (dict) – a dict of the parameters used to evaluate a pipeline
score (float) – the score obtained by evaluating the pipeline with the provided parameters
-
is_search_space_exhausted
(self)[source]¶ Checks if it is possible to generate a set of valid parameters. Stores generated parameters in
self.curr_params
to be returned bypropose()
.- Returns
If no more valid parameters exists in the search space, return False.
- Return type
bool
- Raises
NoParamsException – If a search space is exhausted, then this exception is thrown.
-
exception
evalml.tuners.
NoParamsException
[source]¶ Raised when a tuner exhausts its search space and runs out of parameters to propose.
-
exception
evalml.tuners.
ParameterError
[source]¶ Raised when a tuner encounters an error with the parameters being used with it.
-
class
evalml.tuners.
RandomSearchTuner
(pipeline_hyperparameter_ranges, with_replacement=False, replacement_max_attempts=10, random_seed=0)[source]¶ Random Search Optimizer.
- Parameters
pipeline_hyperparameter_ranges (dict) – a set of hyperparameter ranges corresponding to a pipeline’s parameters
with_replacement (bool) – If false, only unique hyperparameters will be shown
replacement_max_attempts (int) – The maximum number of tries to get a unique set of random parameters. Only used if tuner is initalized with with_replacement=True
random_seed (int) – Seed for random number generator. Defaults to 0.
Example
>>> tuner = RandomSearchTuner({'My Component': {'param a': [0.0, 10.0], 'param b': ['a', 'b', 'c']}}, random_seed=42) >>> proposal = tuner.propose() >>> assert proposal.keys() == {'My Component'} >>> assert proposal['My Component'] == {'param a': 3.7454011884736254, 'param b': 'c'}
Methods
Not applicable to random search tuner as generated parameters are not dependent on scores of previous parameters.
Checks if it is possible to generate a set of valid parameters. Stores generated parameters in
self.curr_params
to be returned bypropose()
.Generate a unique set of parameters.
-
add
(self, pipeline_parameters, score)[source]¶ Not applicable to random search tuner as generated parameters are not dependent on scores of previous parameters.
- Parameters
pipeline_parameters (dict) – A dict of the parameters used to evaluate a pipeline
score (float) – The score obtained by evaluating the pipeline with the provided parameters
-
is_search_space_exhausted
(self)[source]¶ Checks if it is possible to generate a set of valid parameters. Stores generated parameters in
self.curr_params
to be returned bypropose()
.- Returns
If no more valid parameters exists in the search space, return False.
- Return type
bool
- Raises
NoParamsException – If a search space is exhausted, then this exception is thrown.
-
propose
(self)[source]¶ Generate a unique set of parameters.
If tuner was initialized with
with_replacement=True
and the tuner is unable to generate a unique set of parameters afterreplacement_max_attempts
tries, thenNoParamsException
is raised.- Returns
Proposed pipeline parameters
- Return type
dict
-
class
evalml.tuners.
SKOptTuner
(pipeline_hyperparameter_ranges, random_seed=0)[source]¶ Bayesian Optimizer.
- Parameters
pipeline_hyperparameter_ranges (dict) – A set of hyperparameter ranges corresponding to a pipeline’s parameters.
random_seed (int) – The seed for the random number generator. Defaults to 0.
Methods
Add score to sample.
Optional. If possible search space for tuner is finite, this method indicates whether or not all possible parameters have been scored.
Returns a suggested set of parameters to train and score a pipeline with, based off the search space dimensions and prior samples.
-
add
(self, pipeline_parameters, score)[source]¶ Add score to sample.
- Parameters
pipeline_parameters (dict) – A dict of the parameters used to evaluate a pipeline
score (float) – The score obtained by evaluating the pipeline with the provided parameters
- Returns
None
- Raises
Exception – If skopt tuner errors.
ParameterError – If skopt receives invalid parameters.
-
is_search_space_exhausted
(self)¶ Optional. If possible search space for tuner is finite, this method indicates whether or not all possible parameters have been scored.
- Returns
Returns true if all possible parameters in a search space has been scored.
- Return type
bool
-
class
evalml.tuners.
Tuner
(pipeline_hyperparameter_ranges, random_seed=0)[source]¶ Base Tuner class.
Tuners implement different strategies for sampling from a search space. They’re used in EvalML to search the space of pipeline hyperparameters.
- Parameters
pipeline_hyperparameter_ranges (dict) – a set of hyperparameter ranges corresponding to a pipeline’s parameters.
random_seed (int) – The random state. Defaults to 0.
Methods
Register a set of hyperparameters with the score obtained from training a pipeline with those hyperparameters.
Optional. If possible search space for tuner is finite, this method indicates whether or not all possible parameters have been scored.
Returns a suggested set of parameters to train and score a pipeline with, based off the search space dimensions and prior samples.
-
abstract
add
(self, pipeline_parameters, score)[source]¶ Register a set of hyperparameters with the score obtained from training a pipeline with those hyperparameters.
- Parameters
pipeline_parameters (dict) – a dict of the parameters used to evaluate a pipeline
score (float) – the score obtained by evaluating the pipeline with the provided parameters
- Returns
None