ParameterSampler#

класс sklearn.model_selection.ParameterSampler(param_distributions, n_iter, *, random_state=None)[источник]#

Генератор параметров, выбранных из заданных распределений.

Недетерминированный итерируемый объект по случайным кандидатам комбинаций для поиска гиперпараметров. Если все параметры представлены в виде списка, выполняется выборка без замены. Если хотя бы один параметр задан как распределение, используется выборка с заменой. Настоятельно рекомендуется использовать непрерывные распределения для непрерывных параметров.

Подробнее в Руководство пользователя.

Параметры:
param_distributionsdict

Словарь с именами параметров (str) в качестве ключей и распределений или списков параметров для перебора. Распределения должны предоставлять rvs метод для выборки (например, из scipy.stats.distributions). Если задан список, он выбирается равномерно. Если задан список словарей, сначала словарь выбирается равномерно, а затем параметр выбирается с использованием этого словаря, как указано выше.

n_iterint

Количество настроек параметров, которые производятся.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Состояние генератора псевдослучайных чисел, используемое для случайного равномерного выборки из списков возможных значений вместо распределений scipy.stats. Передайте целое число для воспроизводимого вывода при множественных вызовах функции. См. Глоссарий.

Возвращает:
paramsсловарь str в любой

Возвращает словари, сопоставляющие каждый параметр оценщика с выбранным значением.

Примеры

>>> 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