ParameterSampler#
- class sklearn.model_selection.ParameterSampler(param_distributions, n_iter, *, random_state=None)[source]#
- 从给定分布中采样参数的生成器。 - 用于超参数搜索的随机候选组合的非确定性迭代器。如果所有参数都以列表形式给出,则执行无放回抽样。如果至少一个参数以分布形式给出,则使用有放回抽样。强烈建议对连续参数使用连续分布。 - 更多信息请参见用户指南。 - 参数:
- param_distributionsdict
- 参数名称( - str)作为键的字典,以及要尝试的参数分布或列表。分布必须提供用于采样的- rvs方法(例如来自 scipy.stats.distributions 的那些方法)。如果给定列表,则对其进行均匀采样。如果给定字典列表,则首先均匀采样一个字典,然后使用该字典(如上所述)采样参数。
- n_iterint
- 生成的设置参数的数量。 
- random_stateint,RandomState 实例或 None,默认为 None
- 用于从可能的取值列表中进行随机均匀采样(而不是 scipy.stats 分布)的伪随机数生成器状态。为了在多次函数调用中获得可重复的输出,请传入一个整数。参见 词汇表。 
 
- 返回:
- paramsstr 到 any 的字典
- 生成将每个估计器参数映射到采样值的字典。 
 
 - 示例 - >>> 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 
