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