random_search_tuner#

Random Search Optimizer.

Module Contents#

Classes Summary#

RandomSearchTuner

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

add

Not applicable to random search tuner as generated parameters are not dependent on scores of previous parameters.

get_starting_parameters

Gets the starting parameters given the pipeline hyperparameter range.

is_search_space_exhausted

Checks if it is possible to generate a set of valid parameters. Stores generated parameters in self.curr_params to be returned by propose().

propose

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 by propose().

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 after replacement_max_attempts tries, then NoParamsException is raised.

Returns

Proposed pipeline parameters

Return type

dict