skopt_tuner#

贝叶斯优化器。

模块内容#

类摘要#

SKOptTuner

贝叶斯优化器。

属性摘要#

内容#

evalml.tuners.skopt_tuner.logger#
class evalml.tuners.skopt_tuner.SKOptTuner(pipeline_hyperparameter_ranges, random_seed=0)[源]#

贝叶斯优化器。

参数
  • pipeline_hyperparameter_ranges (dict) – 与管道参数对应的一组超参数范围。

  • random_seed (int) – 随机数生成器的种子。默认为 0。

示例

>>> tuner = SKOptTuner({'My Component': {'param a': [0.0, 10.0], 'param b': ['a', 'b', 'c']}})
>>> proposal = tuner.propose()
...
>>> assert proposal.keys() == {'My Component'}
>>> assert proposal['My Component'] == {'param a': 5.928446182250184, 'param b': 'c'}

使用贝叶斯优化器方法确定点。

>>> for each in range(7):
...     print(tuner.propose())
{'My Component': {'param a': 8.57945617622757, 'param b': 'c'}}
{'My Component': {'param a': 6.235636967859724, 'param b': 'b'}}
{'My Component': {'param a': 2.9753460654447235, 'param b': 'a'}}
{'My Component': {'param a': 2.7265629458011325, 'param b': 'b'}}
{'My Component': {'param a': 8.121687287754932, 'param b': 'b'}}
{'My Component': {'param a': 3.927847961008298, 'param b': 'c'}}
{'My Component': {'param a': 3.3739616041726843, 'param b': 'b'}}

方法

add

将得分添加到样本中。

get_starting_parameters

根据管道超参数范围获取起始参数。

is_search_space_exhausted

可选。如果调优器的可能搜索空间是有限的,此方法指示是否已对所有可能的参数进行评分。

propose

根据搜索空间维度和先验样本,返回一组建议的参数用于训练和评分管道。

add(self, pipeline_parameters, score)[源]#

将得分添加到样本中。

参数
  • pipeline_parameters (dict) – 用于评估管道的参数字典。

  • score (float) – 使用提供的参数评估管道获得的得分。

返回

None

引发
  • Exception – 如果 skopt 调优器出错。

  • ParameterError – 如果 skopt 收到无效参数。

get_starting_parameters(self, hyperparameter_ranges, random_seed=0)#

根据管道超参数范围获取起始参数。

参数
  • hyperparameter_ranges (dict) – 搜索期间传入的自定义超参数范围。用于确定起始参数。

  • random_seed (int) – 要使用的随机种子。默认为 0。

返回

用于初始化管道的随机选择的起始参数。

返回类型

dict

is_search_space_exhausted(self)#

可选。如果调优器的可能搜索空间是有限的,此方法指示是否已对所有可能的参数进行评分。

返回

如果搜索空间中的所有可能参数都已评分,则返回 True。

返回类型

bool

propose(self)[源]#

根据搜索空间维度和先验样本,返回一组建议的参数用于训练和评分管道。

返回

建议的管道参数。

返回类型

dict