RandomizedSearchCV
- classsklearn.model_selection.RandomizedSearchCV(estimator, param_distributions, *, n_iter=10, scoring=None, n_jobs=None, refit=True, cv=None, verbose=0, pre_dispatch='2*n_jobs', random_state=None, error_score=nan, return_train_score=False)[исходный код]
-
Случайный поиск по гиперпараметрам.
RandomizedSearchCV реализует методы “fit” и “score”. Он также реализует “score_samples”, “predict”, “predict_proba”, “decision_function”, “transform” и “inverse_transform”, если они реализованы в используемом оценщике.
Параметры оценщика, используемые для применения этих методов, оптимизируются с помощью поиска по настройкам параметров с перекрёстной проверкой.
В отличие от GridSearchCV, проверяются не все значения параметров: из заданных распределений выбирается фиксированное число настроек параметров. Число проверяемых настроек параметров задаётся параметром n_iter.
Если все параметры представлены в виде списков, выборка выполняется без возвращения. Если хотя бы один параметр задан распределением, используется выборка с возвращением. Для непрерывных параметров настоятельно рекомендуется использовать непрерывные распределения.
Подробнее см. в руководстве пользователя.
Добавлено в версии 0.14.
- Параметры:
-
- estimatorобъект оценщика
-
Объект этого типа создаётся для каждой точки сетки. Предполагается, что он реализует интерфейс оценщика scikit-learn. Оценщик должен предоставлять функцию
scoreлибо необходимо передатьscoring. - param_distributionsdict или list of dicts
-
Словарь, в котором ключами являются имена параметров (
str), а значениями — распределения или списки параметров для проверки. Распределения должны предоставлять методrvsдля выборки (например, распределения из scipy.stats.distributions). Если задан список, элементы выбираются равномерно. Если задан список словарей, сначала равномерно выбирается словарь, а затем параметр выбирается из этого словаря, как описано выше. - n_iterint, default=10
-
Число выбираемых настроек параметров. Параметр n_iter задаёт компромисс между временем выполнения и качеством решения.
- scoringstr, callable, list, tuple or dict, default=None
-
Стратегия оценки производительности модели с перекрёстной проверкой на тестовом наборе.
Если
scoringзадаёт одну метрику, можно использовать:- одну строку (см. оценщики, задаваемые строковым именем);
- вызываемый объект (см. вызываемые оценщики), возвращающий одно значение;
-
Noneиспользуется критерий оценки по умолчанию дляestimator.
Если
scoringзадаёт несколько метрик, можно использовать:- список или кортеж уникальных строк;
- вызываемый объект, возвращающий словарь, в котором ключи — это имена метрик, а значения — оценки метрик;
- словарь, в котором ключи — это имена метрик, а значения — вызываемые объекты.
Пример см. в разделе задание нескольких метрик для оценки.
Если значение равно None, используется метод score оценщика.
- n_jobsint, default=None
-
Число задач, выполняемых параллельно.
Noneозначает 1, если только не используется контекстjoblib.parallel_backend.-1означает использование всех процессоров. Дополнительные сведения см. в глоссарии.Изменено в версии v0.20: значение
n_jobsпо умолчанию изменено с 1 на None - refitbool, str, or callable, default=True
-
Повторно обучить оценщик на всём наборе данных, используя найденные наилучшие параметры.
При оценке по нескольким метрикам здесь необходимо указать
str, задающий оценщик, который будет использоваться для поиска наилучших параметров при повторном обучении оценщика в конце.Если при выборе наилучшего оценщика нужно учитывать факторы, помимо максимальной оценки,
refitможно задать функцией, которая возвращает выбранныйbest_index_с учётомcv_results_. В этом случаеbest_estimator_иbest_params_будут заданы в соответствии с возвращённымbest_index_, а атрибутbest_score_будет недоступен.Повторно обученный оценщик доступен через атрибут
best_estimator_, что позволяет напрямую использоватьpredictдля этого экземпляраRandomizedSearchCV.Также при оценке по нескольким метрикам атрибуты
best_index_,best_score_иbest_params_будут доступны только в том случае, если заданrefit, и все они будут определяться относительно этого конкретного оценщика.Подробнее об оценке по нескольким метрикам см. описание параметра
scoring.Пример использования
refit=callableдля поиска баланса между сложностью модели и оценкой перекрёстной проверки см. в этом примере.Изменено в версии 0.20: добавлена поддержка вызываемых объектов.
- cvint, генератор перекрёстной проверки или итерируемый объект, default=None
-
Определяет стратегию разбиения для перекрёстной проверки. Для cv можно указать:
- None, чтобы использовать перекрёстную проверку с 5 блоками по умолчанию;
- целое число, задающее число блоков в
(Stratified)KFold; - разделитель для перекрёстной проверки;
- итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.
Для целочисленных значений и None, если оценщик является классификатором, а
y— бинарным или многоклассовым, используетсяStratifiedKFold. Во всех остальных случаях используетсяKFold. Эти разделители создаются с параметромshuffle=False, поэтому разбиения будут одинаковыми при каждом вызове.Различные стратегии перекрёстной проверки, которые можно использовать здесь, описаны в руководстве пользователя.
Изменено в версии 0.22: значение
cvпо умолчанию для None изменено с 3 блоков на 5. - verboseint, default = 0
-
Управляет подробностью информации, выводимой во время обучения: чем больше значение, тем подробнее журнал.
- 0 : сообщения не выводятся;
- >=1 : сводка общего числа обучений;
- >=2 : время вычислений для каждого блока и кандидата параметров;
- >=3 : индексы блоков и оценки;
- >=10 : индексы кандидатов параметров и сообщения START перед каждым обучением.
- pre_dispatchint, or str, default=’2*n_jobs’
-
Управляет числом задач, отправляемых на выполнение в параллельном режиме. Уменьшение этого числа может помочь избежать чрезмерного потребления памяти, если задач отправляется больше, чем процессоры могут обработать. Этот параметр может принимать следующие значения:
- None — все задачи сразу создаются и запускаются. Используйте это значение для лёгких и быстро выполняющихся задач, чтобы избежать задержек из-за запуска задач по мере необходимости;
- целое число, задающее точное общее число запускаемых задач;
- строка, задающая выражение через n_jobs, например ‘2*n_jobs’.
- random_stateint, экземпляр RandomState или None, default=None
-
Состояние генератора псевдослучайных чисел, используемого для равномерной случайной выборки из списков возможных значений вместо распределений scipy.stats. Передайте целое число, чтобы получать воспроизводимые результаты при многократных вызовах функции. См. глоссарий.
- error_score‘raise’ или числовое значение, default=np.nan
-
Значение, присваиваемое оценке в случае ошибки при обучении оценщика. Если задано значение ‘raise’, ошибка вызывается повторно. Если указано числовое значение, вызывается FitFailedWarning. Этот параметр не влияет на этап повторного обучения, при котором ошибка всегда будет вызвана.
- return_train_scorebool, default=False
-
Если
False, атрибутcv_results_не будет содержать оценки на обучающих данных. Вычисление оценок на обучающих данных помогает понять, как различные настройки параметров влияют на компромисс между переобучением и недообучением. Однако вычисление оценок на обучающем наборе может быть затратным с вычислительной точки зрения и не является строго необходимым для выбора параметров, обеспечивающих наилучшую способность к обобщению.Добавлено в версии 0.19.
Изменено в версии 0.21: значение по умолчанию изменено с
TrueнаFalse
- Атрибуты:
-
- cv_results_dict of numpy (masked) ndarrays
-
Словарь, в котором ключи — это заголовки столбцов, а значения — сами столбцы; его можно импортировать в pandas
DataFrame.Например, приведённая ниже таблица
param_kernel
param_gamma
split0_test_score
…
rank_test_score
‘rbf’
0.1
0.80
…
1
‘rbf’
0.2
0.84
…
3
‘rbf’
0.3
0.70
…
2
будет представлена словарём
cv_results_вида:{ 'param_kernel' : masked_array(data = ['rbf', 'rbf', 'rbf'], mask = False), 'param_gamma' : masked_array(data = [0.1 0.2 0.3], mask = False), 'split0_test_score' : [0.80, 0.84, 0.70], 'split1_test_score' : [0.82, 0.50, 0.70], 'mean_test_score' : [0.81, 0.67, 0.70], 'std_test_score' : [0.01, 0.24, 0.00], 'rank_test_score' : [1, 3, 2], 'split0_train_score' : [0.80, 0.92, 0.70], 'split1_train_score' : [0.82, 0.55, 0.70], 'mean_train_score' : [0.81, 0.74, 0.70], 'std_train_score' : [0.01, 0.19, 0.00], 'mean_fit_time' : [0.73, 0.63, 0.43], 'std_fit_time' : [0.01, 0.02, 0.01], 'mean_score_time' : [0.01, 0.06, 0.04], 'std_score_time' : [0.00, 0.00, 0.00], 'params' : [{'kernel' : 'rbf', 'gamma' : 0.1}, ...], }Пример анализа
cv_results_см. в разделе статистическое сравнение моделей с помощью поиска по сетке.ПРИМЕЧАНИЕ
Ключ
'params'используется для хранения списка словарей настроек параметров для всех кандидатов параметров.Значения
mean_fit_time,std_fit_time,mean_score_timeиstd_score_timeзадаются в секундах.При оценке по нескольким метрикам оценки всех оценщиков доступны в словаре
cv_results_по ключам, оканчивающимся именем соответствующего оценщика ('_<scorer_name>'), а не'_score', как показано выше. (например, ‘split0_test_precision’, ‘mean_train_precision’ и т. д.) - best_estimator_оценщик
-
Оценщик, выбранный в результате поиска, то есть оценщик, показавший наибольшую оценку (или наименьшие потери, если они заданы) на отложенных данных. Недоступен, если задан
refit=False.При оценке по нескольким метрикам этот атрибут присутствует только в том случае, если задан
refit.Дополнительные сведения о допустимых значениях см. в описании параметра
refit. - best_score_float
-
Средняя оценка лучшего оценщика best_estimator с перекрёстной проверкой.
При оценке по нескольким метрикам этот атрибут недоступен, если
refitимеет значениеFalse. Дополнительные сведения см. в описании параметраrefit.Этот атрибут недоступен, если
refitявляется функцией. - best_params_dict
-
Настройка параметров, обеспечившая наилучшие результаты на отложенных данных.
При оценке по нескольким метрикам этот атрибут недоступен, если
refitимеет значениеFalse. Дополнительные сведения см. в описании параметраrefit. - best_index_int
-
Индекс (в массивах
cv_results_), соответствующий наилучшему кандидату настройки параметров.Словарь по ключу
search.cv_results_['params'][search.best_index_]задаёт настройку параметров для наилучшей модели, обеспечивающей наивысшую среднюю оценку (search.best_score_).При оценке по нескольким метрикам этот атрибут недоступен, если
refitимеет значениеFalse. Дополнительные сведения см. в описании параметраrefit. - scorer_функция или словарь
-
Функция-оценщик, применённая к отложенным данным для выбора наилучших параметров модели.
При оценке по нескольким метрикам этот атрибут содержит проверенный словарь
scoring, сопоставляющий ключ оценщика вызываемому объекту-оценщику. - n_splits_int
-
Число разбиений (блоков/итераций) при перекрёстной проверке.
- refit_time_float
-
Время в секундах, затраченное на повторное обучение лучшей модели на всём наборе данных.
Этот атрибут присутствует, только если
refitне равно False.Добавлено в версии 0.20.
- multimetric_bool
-
Вычисляют ли оценщики несколько метрик.
-
classes_ndarray of shape (n_classes,) -
Метки классов.
-
n_features_in_int -
Число признаков, учтённых во время обучения.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Имена признаков, учтённых во время обучения. Определяется только в том случае, если определён
best_estimator_(подробнее см. документацию параметраrefit) и этотbest_estimator_предоставляетfeature_names_in_при обучении.Добавлено в версии 1.0.
См. также
GridSearchCV-
Выполняет исчерпывающий поиск по сетке параметров.
ParameterSampler-
Генератор настроек параметров, создаваемый на основе param_distributions.
Примечания
Выбираются параметры, максимизирующие оценку на отложенных данных в соответствии с параметром scoring.
Если для
n_jobsзадано значение больше единицы, данные копируются для каждой настройки параметров (а неn_jobsраз). Это делается для повышения эффективности, если отдельные задачи выполняются очень быстро, но может привести к ошибкам, если набор данных велик и памяти недостаточно. В этом случае можно задатьpre_dispatch. Тогда данные будут копироваться толькоpre_dispatchраз. Разумное значение дляpre_dispatch—2 * n_jobs.Примеры
>>> from sklearn.datasets import load_iris >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.model_selection import RandomizedSearchCV >>> from scipy.stats import uniform >>> iris = load_iris() >>> logistic = LogisticRegression(solver='saga', tol=1e-2, max_iter=200, ... random_state=0) >>> distributions = dict(C=uniform(loc=0, scale=4), ... l1_ratio=[0, 1]) >>> clf = RandomizedSearchCV(logistic, distributions, random_state=0) >>> search = clf.fit(iris.data, iris.target) >>> search.best_params_ {'C': np.float64(2.195...), 'l1_ratio': 1}- decision_function(X)[исходный код]
-
Вызвать decision_function у оценщика с найденными наилучшими параметрами.
Доступен только в том случае, если задан
refit=Trueи используемый оценщик поддерживаетdecision_function.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен соответствовать требованиям используемого оценщика к входным данным.
- Возвращает:
-
- y_scorendarray of shape (n_samples,) or (n_samples, n_classes) or (n_samples, n_classes * (n_classes-1) / 2)
-
Результат функции принятия решения для
X, вычисленный оценщиком с найденными наилучшими параметрами.
- fit(X, y=None, **params)[исходный код]
-
Выполнить обучение со всеми наборами параметров.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features) or (n_samples, n_samples)
-
Обучающие векторы, где
n_samples— число образцов, аn_features— число признаков. Для заранее вычисленного ядра или матрицы расстояний ожидаемая форма X — (n_samples, n_samples). - yarray-like of shape (n_samples, n_output) or (n_samples,), default=None
-
Целевые значения, соответствующие X, для классификации или регрессии; None для обучения без учителя.
- **paramsdict of str -> object
-
Параметры, передаваемые методу
fitоценщика, оценщику и разделителю для перекрёстной проверки.Если длина параметра обучения, являющегося массивоподобным объектом, равна
num_samples, он будет разбит при перекрёстной проверке вместе сXиy. Например, параметр sample_weight разбивается, посколькуlen(sample_weights) = len(X). Однако это поведение не применяется кgroups, который передаётся разделителю, настроенному через параметрcvконструктора. Таким образом,groupsиспользуется для выполнения разбиения и определяет, какие образцы относятся к каждой стороне разбиения.
- Возвращает:
-
- selfobject
-
Экземпляр обученного оценщика.
- get_metadata_routing()[исходный код]
-
Получить маршрутизацию метаданных этого объекта.
Описание работы механизма маршрутизации см. в руководстве пользователя.
Добавлено в версии 1.4.
- Возвращает:
-
- routingMetadataRouter
-
MetadataRouter, содержащий информацию о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, default=True
-
Если значение True, будут возвращены параметры этого оценщика и содержащихся в нём подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные их значениям.
- inverse_transform(X)[исходный код]
-
Вызвать inverse_transform у оценщика с найденными наилучшими параметрами.
Доступен только в том случае, если используемый оценщик реализует
inverse_transformиrefit=True.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен соответствовать требованиям используемого оценщика к входным данным.
- Возвращает:
-
- X_original{ndarray, sparse matrix} of shape (n_samples, n_features)
-
Результат функции
inverse_transformдляX, вычисленный оценщиком с найденными наилучшими параметрами.
- predict(X)[исходный код]
-
Вызвать predict у оценщика с найденными наилучшими параметрами.
Доступен только в том случае, если задан
refit=Trueи используемый оценщик поддерживаетpredict.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен соответствовать требованиям используемого оценщика к входным данным.
- Возвращает:
-
- y_predndarray of shape (n_samples,)
-
Предсказанные метки или значения для
X, вычисленные оценщиком с найденными наилучшими параметрами.
- predict_log_proba(X)[исходный код]
-
Вызвать predict_log_proba у оценщика с найденными наилучшими параметрами.
Доступен только в том случае, если задан
refit=Trueи используемый оценщик поддерживаетpredict_log_proba.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен соответствовать требованиям используемого оценщика к входным данным.
- Возвращает:
-
- y_predndarray of shape (n_samples,) or (n_samples, n_classes)
-
Предсказанные логарифмы вероятностей классов для
X, вычисленные оценщиком с найденными наилучшими параметрами. Порядок классов соответствует порядку в обученном атрибуте classes_.
- predict_proba(X)[исходный код]
-
Вызвать predict_proba у оценщика с найденными наилучшими параметрами.
Доступен только в том случае, если задан
refit=Trueи используемый оценщик поддерживаетpredict_proba.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен соответствовать требованиям используемого оценщика к входным данным.
- Возвращает:
-
- y_predndarray of shape (n_samples,) or (n_samples, n_classes)
-
Предсказанные вероятности классов для
X, вычисленные оценщиком с найденными наилучшими параметрами. Порядок классов соответствует порядку в обученном атрибуте classes_.
- score(X, y=None, **params)[исходный код]
-
Возвращает оценку для заданных данных, если оценщик был переобучен.
Здесь используется оценка, определённая
scoring, если она указана, и методbest_estimator_.scoreв противном случае.- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Входные данные, где
n_samples— количество образцов, аn_features— количество признаков. - yмассивоподобный объект формы (n_samples, n_output) или (n_samples,), по умолчанию None
-
Целевая переменная для X при классификации или регрессии; None для обучения без учителя.
- **paramsсловарь
-
Параметры, передаваемые используемым оценщикам.
Добавлено в версии 1.4: Доступно только если
enable_metadata_routing=True. Подробнее см. в руководстве пользователя по маршрутизации метаданных.
- Возвращает:
-
- scoreчисло с плавающей точкой
-
Оценка, определённая
scoring, если она указана, и методbest_estimator_.scoreв противном случае.
- score_samples(X)[исходный код]
-
Вызывает score_samples для оценщика с наилучшими найденными параметрами.
Доступно только если
refit=Trueи используемый оценщик поддерживаетscore_samples.Добавлено в версии 0.24.
- Параметры:
-
- Xитерируемый объект
-
Данные, для которых нужно выполнить предсказание. Должны соответствовать требованиям к входным данным используемого оценщика.
- Возвращает:
-
- y_scorendarray формы (n_samples,)
-
Метод
best_estimator_.score_samples.
- set_callbacks(*callbacks)[исходный код]
-
Устанавливает обратные вызовы для оценщика.
- Параметры:
-
- *callbacksэкземпляры обратных вызовов
-
Обратные вызовы, которые нужно установить.
- Возвращает:
-
- selfэкземпляр оценщика
-
Сам экземпляр оценщика.
- set_params(**params)[исходный код]
-
Устанавливает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsсловарь
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[исходный код]
-
Вызывает transform для оценщика с наилучшими найденными параметрами.
Доступно только если используемый оценщик поддерживает
transformиrefit=True.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен соответствовать требованиям используемого оценщика к входным данным.
- Возвращает:
-
- Xt{ndarray, разреженная матрица} формы (n_samples, n_features)
-
X, преобразованный в новое пространство на основе оценщика с наилучшими найденными параметрами.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.model_selection.RandomizedSearchCV.html