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