random_search_tuner#
Random Search Optimizer.
Module Contents#
Classes Summary#
Random Search Optimizer. |
Contents#
- class evalml.tuners.random_search_tuner.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'}
Determines points using a random search approach.
>>> for each in range(7): ... print(tuner.propose()) {'My Component': {'param a': 7.3199394181140525, 'param b': 'b'}} {'My Component': {'param a': 1.5601864044243654, 'param b': 'a'}} {'My Component': {'param a': 0.5808361216819947, 'param b': 'c'}} {'My Component': {'param a': 6.011150117432089, 'param b': 'c'}} {'My Component': {'param a': 0.2058449429580245, 'param b': 'c'}} {'My Component': {'param a': 8.32442640800422, 'param b': 'a'}} {'My Component': {'param a': 1.8182496720710064, 'param b': 'a'}}
Methods
Not applicable to random search tuner as generated parameters are not dependent on scores of previous parameters.
Gets the starting parameters given the pipeline hyperparameter range.
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
- get_starting_parameters(self, hyperparameter_ranges, random_seed=0)#
Gets the starting parameters given the pipeline hyperparameter range.
- Parameters
hyperparameter_ranges (dict) – The custom hyperparameter ranges passed in during search. Used to determine the starting parameters.
random_seed (int) – The random seed to use. Defaults to 0.
- Returns
The starting parameters, randomly chosen, to initialize a pipeline with.
- Return type
dict
- 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