ParameterSampler#

class sklearn.model_selection.ParameterSampler(param_distributions, n_iter, *, random_state=None)[源代码]#

从给定分布中采样的参数生成器。

非确定性,可在随机候选组合上迭代以进行超参数搜索。如果所有参数均以列表形式呈现,则执行不替换的采样。如果至少有一个参数作为分布给出,则使用带替换的抽样。强烈建议对连续参数使用连续分布。

阅读更多的 User Guide .

参数:
param_distributionsdict

包含参数名称的字典 (str )作为要尝试的密钥和分布或参数列表。分发必须提供 rvs 抽样方法(例如来自scipy.stats. disposals的方法)。如果给出了列表,则会对其进行统一采样。如果给出了一个dict列表,首先对dict进行均匀采样,然后如上所述使用该dict对参数进行采样。

n_iterint

生成的参数设置数。

random_stateint,RandomState实例或无,默认=无

伪随机数生成器状态用于从可能值列表中随机均匀采样,而不是scipy.stats分布。传递一个int值,以便在多个函数调用中获得可重复的输出。看到 Glossary .

返回:
params字符串到任何

Yields 将每个估计器参数映射到采样值的字典。

示例

>>> from sklearn.model_selection import ParameterSampler
>>> from scipy.stats.distributions import expon
>>> import numpy as np
>>> rng = np.random.RandomState(0)
>>> param_grid = {'a':[1, 2], 'b': expon()}
>>> param_list = list(ParameterSampler(param_grid, n_iter=4,
...                                    random_state=rng))
>>> rounded_list = [dict((k, round(v, 6)) for (k, v) in d.items())
...                 for d in param_list]
>>> rounded_list == [{'b': 0.89856, 'a': 1},
...                  {'b': 0.923223, 'a': 1},
...                  {'b': 1.878964, 'a': 2},
...                  {'b': 1.038159, 'a': 2}]
True