HalvingRandomSearchCV
- classsklearn.model_selection.HalvingRandomSearchCV(estimator, param_distributions, *, n_candidates='exhaust', factor=3, resource='n_samples', max_resources='auto', min_resources='smallest', aggressive_elimination=False, cv=5, scoring=None, refit=True, error_score=nan, return_train_score=True, random_state=None, n_jobs=None, verbose=0)[source]
-
Случайный поиск по гиперпараметрам.
Стратегия поиска начинает оценивать все кандидаты с небольшим количеством ресурсов и итеративно выбирает лучших кандидатов, используя всё больше и больше ресурсов.
Кандидаты случайным образом выбираются из пространства параметров, а количество выбранных кандидатов определяется значением
n_candidates.Подробнее см. в Руководстве пользователя.
Примечание
В настоящее время этот оценщик является экспериментальным: предсказания и API могут измениться без цикла устаревания. Для использования необходимо явно импортировать
enable_halving_search_cv.>>> # explicitly require this experimental feature >>> from sklearn.experimental import enable_halving_search_cv # noqa >>> # now you can import normally from model_selection >>> from sklearn.model_selection import HalvingRandomSearchCV
- Параметры:
-
- estimatorобъект оценщика
-
Предполагается, что он реализует интерфейс оценщика scikit-learn. Либо оценщик должен предоставить функцию
score, либо должен быть переданscoring. - param_distributionsсловарь или список словарей
-
Словарь с именами параметров (
str) в качестве ключей и распределений или списков параметров для попыток. Распределения должны предоставить методrvsдля выборки (такие, как из scipy.stats.distributions). Если передан список, он выбирается равномерно. Если передан список словарей, сначала равномерно выбирается словарь, а затем параметр выбирается с использованием этого словаря, как указано выше. - n_candidates“exhaust” или целое число, по умолчанию=”exhaust”
-
Количество параметров-кандидатов для выборки на первой итерации. Использование “exhaust” выберет достаточно кандидатов, чтобы последняя итерация использовала как можно больше ресурсов, на основе
min_resources,max_resourcesиfactor. В этом случаеmin_resourcesне может быть “exhaust”. - factorцелое или дробное число, по умолчанию=3
-
Параметр «удвоения», определяющий долю кандидатов, выбранных на каждой последующей итерации. Например,
factor=3означает, что выбирается только одна треть кандидатов. -
resource
'n_samples'или строка, по умолчанию=’n_samples’ -
Определяет ресурс, увеличивающийся на каждой итерации. По умолчанию ресурсом является количество выборок. Он также может быть задан любым параметром базового оценщика, принимающим положительные целые значения, например, ‘n_iterations’ или ‘n_estimators’ для оценщика градиентного бустинга. В этом случае
max_resourcesне может быть ‘auto’ и должен быть задан явно. - max_resourcesцелое число, по умолчанию=’auto’
-
Максимальное количество ресурсов, которое любой кандидат может использовать на данной итерации. По умолчанию это установлено
n_samplesкогдаresource='n_samples'(по умолчанию), иначе возникает ошибка. - min_resources{‘exhaust’, ‘smallest’} или целое число, по умолчанию=’smallest’
-
Минимальное количество ресурсов, которое любой кандидат может использовать на данной итерации. Эквивалентно, это определяет количество ресурсов
r0которые выделяются для каждого кандидата на первой итерации.-
‘smallest’ — эвристика, которая устанавливает
r0в небольшое значение:-
n_splits * 2когдаresource='n_samples'для задачи регрессии -
n_classes * n_splits * 2когдаresource='n_samples'для задачи классификации -
1когдаresource != 'n_samples'
-
- ‘exhaust’ установит
r0так, чтобы последняя итерация использовала как можно больше ресурсов. Иными словами, последняя итерация будет использовать наибольшее значение, меньшее чемmax_resources, которое является кратным какmin_resources, так иfactor. В общем случае использование ‘exhaust’ приводит к более точному оценщику, но немного более затратно по времени. ‘exhaust’ недоступен, когдаn_candidates='exhaust'.
Обратите внимание, что количество ресурсов, используемых на каждой итерации, всегда является кратным
min_resources. -
- aggressive_eliminationbool, по умолчанию=False
-
Это актуально только в тех случаях, когда ресурсов недостаточно для сокращения оставшихся кандидатов до максимум
factorпосле последней итерации. ЕслиTrue, процесс поиска «переиграет» первую итерацию до тех пор, пока количество кандидатов не станет достаточно маленьким. ЭтоFalseпо умолчанию, что означает, что последняя итерация может оценить более чемfactorкандидатов. Подробнее см. Агрессивное исключение кандидатов. - cvцелое число, генератор перекрестной проверки или итерируемый объект, по умолчанию=5
-
Определяет стратегию разделения данных для перекрестной проверки. Возможные входы для cv:
- целое число для указания количества фолдов в
(Stratified)KFold, - разделитель перекрестной проверки,
- итерируемый объект, возвращающий (обучающий, тестовый) сплит как массивы индексов.
Для целочисленных/None входов, если оценщик является классификатором и
yявляется двоичной или многоклассовой, используетсяStratifiedKFold. Во всех остальных случаях используетсяKFold. Эти разделители инициализируютсяshuffle=False, поэтому сплиты будут одинаковыми при вызовах.См. Руководство пользователя для различных стратегий перекрестной проверки, которые могут быть здесь использованы.
Примечание
Из-за особенностей реализации сплиты, созданные
cv, должны быть одинаковыми при нескольких вызовахcv.split(). Для встроенныхscikit-learnитераторов это можно добиться, отключив перемешивание (shuffle=False), или установив параметрcv’srandom_stateв целое число. - целое число для указания количества фолдов в
- scoringстрока, вызываемая функция или None, по умолчанию=None
-
Одна строка (см. Параметр scoring: определение правил оценки моделей) или вызываемая функция (см. Вызываемые функции оценщиков) для оценки предсказаний на тестовом наборе. Если None, используется метод score оценщика.
- refitbool, по умолчанию=True
-
Если True, переобучает оценщик с использованием наилучших найденных параметров на всем наборе данных.
Переобученный оценщик доступен в атрибуте
best_estimator_и позволяет использоватьpredictнепосредственно в этом экземпляреHalvingRandomSearchCV. - error_score‘raise’ или число
-
Значение, присваиваемое оценке, если при подгонке оценщика произошла ошибка. Если установлено ‘raise’, ошибка генерируется. Если задано числовое значение, генерируется предупреждение FitFailedWarning. Этот параметр не влияет на шаг переобучения, который всегда будет генерировать ошибку. По умолчанию
np.nan. - return_train_scorebool, по умолчанию=False
-
Если
False, атрибутcv_results_не будет включать тренировочные оценки. Вычисление тренировочных оценок используется для получения информации о том, как различные настройки параметров влияют на баланс переобучения/недообучения. Однако вычисление оценок на наборе обучения может быть вычислительно дорогим и строго не требуется для выбора параметров, которые обеспечивают лучшую обобщающую производительность. - random_stateцелое число, экземпляр RandomState или None, по умолчанию=None
-
Состояние генератора псевдослучайных чисел, используемое для подвыборки набора данных при
resources != 'n_samples'. Также используется для случайной равномерной выборки из списков возможных значений вместо scipy.stats распределений. Передайте целое число для воспроизводимого результата при нескольких вызовах функций. См. Словарь. - n_jobsцелое число или None, по умолчанию=None
-
Количество задач, которые нужно выполнять параллельно.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. См. Словарь для получения более подробной информации. - verboseцелое число
-
Управляет уровнем детализации сообщений: чем выше, тем больше сообщений.
- Атрибуты:
-
- n_resources_список целых чисел
-
Количество ресурсов, используемых на каждой итерации.
- n_candidates_список целых чисел
-
Количество кандидатов параметров, которые были оценены на каждой итерации.
- n_remaining_candidates_целое число
-
Количество кандидатов параметров, которые остались после последней итерации. Соответствует
ceil(n_candidates[-1] / factor) - max_resources_целое число
-
Максимальное количество ресурсов, которое любой кандидат может использовать для данной итерации. Обратите внимание, что так как количество ресурсов, используемых на каждой итерации, должно быть кратно
min_resources_, фактическое количество ресурсов, используемых на последней итерации, может быть меньшеmax_resources_ - min_resources_целое число
-
Количество ресурсов, выделенных для каждого кандидата на первой итерации.
- n_iterations_целое число
-
Фактическое количество выполненных итераций. Это равно
n_required_iterations_, еслиaggressive_eliminationравноTrue. В противном случае это равноmin(n_possible_iterations_, n_required_iterations_). - n_possible_iterations_целое число
-
Количество возможных итераций, начиная с
min_resources_ресурсов и без превышенияmax_resources_. - n_required_iterations_целое число
-
Количество итераций, необходимых для того, чтобы на последней итерации осталось меньше
factorкандидатов, начиная сmin_resources_ресурсов. Это значение будет меньшеn_possible_iterations_, если ресурсов недостаточно. - cv_results_словарь массивов NumPy (маскированных)
-
Словарь с ключами в виде заголовков столбцов и значениями в виде столбцов, которые можно импортировать в таблицу pandas
DataFrame. Он содержит много информации для анализа результатов поиска. Подробную информацию см. в Руководстве пользователя. - best_estimator_модель или словарь
-
Модель, выбранная в результате поиска, т.е. модель, которая дала наивысший результат (или наименьшую потерю, если указано) на оставленных данных. Недоступно, если
refit=False - best_score_число с плавающей точкой
-
Среднее значение перекрестной проверки результата для лучшей модели.
- best_params_словарь
-
Настройка параметров, которая дала лучшие результаты на данных, оставленных для проверки.
- best_index_целое число
-
Индекс (массивов
cv_results_), соответствующий лучшей настройке параметров кандидата.Словарь в
search.cv_results_['params'][search.best_index_]содержит настройки параметров для лучшей модели, которая даёт наивысшее среднее значение (search.best_score_). - scorer_функция или словарь
-
Функция подсчёта метрики, используемая для выбора лучших параметров модели на данных, оставленных для проверки.
- n_splits_целое число
-
Количество разделов перекрестной проверки (сгибов/итераций).
- refit_time_число с плавающей точкой
-
Время, затраченное на дообучение лучшей модели на всем наборе данных.
Это значение присутствует только если
refitне равно False. - multimetric_булево значение
-
Указывается, вычисляют ли функции оценки несколько метрик.
-
classes_массив NumPy формы (n_classes,) -
Метки классов.
-
n_features_in_целое число -
Количество признаков, увиденных во время fit.
-
feature_names_in_массив NumPy формы (
n_features_in_,) -
Имена признаков, увиденных во время fit. Определяется только, если
best_estimator_определено (см. документацию для параметраrefitдля получения более подробной информации) иbest_estimator_раскрываетfeature_names_in_при вызове fit.Добавлен в версии 1.0.
См. также
HalvingGridSearchCV-
Поиск по сетке параметров с использованием последовательного уменьшения.
Примечания
Выбранные параметры — это те, которые максимизируют результат на данных, оставленных для проверки, в соответствии с параметром scoring.
Все комбинации параметров с оценкой NaN имеют одинаковый низкий ранг.
Примеры
>>> from sklearn.datasets import load_iris >>> from sklearn.ensemble import RandomForestClassifier >>> from sklearn.experimental import enable_halving_search_cv # noqa >>> from sklearn.model_selection import HalvingRandomSearchCV >>> from scipy.stats import randint >>> import numpy as np ... >>> X, y = load_iris(return_X_y=True) >>> clf = RandomForestClassifier(random_state=0) >>> np.random.seed(0) ... >>> param_distributions = {"max_depth": [3, None], ... "min_samples_split": randint(2, 11)} >>> search = HalvingRandomSearchCV(clf, param_distributions, ... resource='n_estimators', ... max_resources=10, ... random_state=0).fit(X, y) >>> search.best_params_ {'max_depth': None, 'min_samples_split': 10, 'n_estimators': 9}- свойствоclasses_
-
Метки классов.
Доступно только, если
refit=Trueи модель является классификатором.
- decision_function(X)[source]
-
Вызов decision_function на модели с лучшими найденными параметрами.
Доступно только, если
refit=Trueи базовая модель поддерживаетdecision_function.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен соответствовать предположениям входных данных базовой модели.
- Возвращаемые значения:
-
- y_scoreмассив NumPy формы (n_samples,) или (n_samples, n_classes) или (n_samples, n_classes * (n_classes-1) / 2)
-
Результат decision_function для
Xна основе модели с лучшими найденными параметрами.
- fit(X, y=None, **params)[source]
-
Выполнить fit со всеми наборами параметров.
- Параметры:
-
- Xмассив, форма (n_samples, n_features)
-
Вектор обучающих данных, где
n_samples— количество образцов, аn_features— количество признаков. - yмассив, форма (n_samples,) или (n_samples, n_output), необязательно
-
Целевые значения относительно X для классификации или регрессии; None для несверхвизуального обучения.
- **paramsсловарь строка -> объект
-
Параметры, передаваемые в метод
fitмодели.
- Возвращаемые значения:
-
- selfобъект
-
Экземпляр обученной модели.
- get_metadata_routing()[source]
-
Получение маршрутизации метаданных этого объекта.
Пожалуйста, см. Руководство пользователя о том, как работает механизм маршрутизации.
Добавлен в версии 1.4.
- Возвращаемые значения:
-
- routingMetadataRouter
-
Объект
MetadataRouter, содержащий информацию о маршрутизации.
-
- get_params(deep=True)[source]
-
Получить параметры данного оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернет параметры данного оценщика и вложенных подобъектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- inverse_transform(X=None, Xt=None)[source]
-
Вызвать inverse_transform у оценщика с лучшими найденными параметрами.
Доступно только, если базовый оценщик реализует
inverse_transformиrefit=True.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять входным предположениям базового оценщика.
- Xtиндексируемый объект, длина n_samples
-
Должен удовлетворять входным предположениям базового оценщика.
Устарело начиная с версии 1.5:
Xtустарело в версии 1.5 и будет удалено в версии 1.7. ИспользуйтеXвместо этого.
- Возвращает:
-
- X{массив ndarray, разреженная матрица} формы (n_samples, n_features)
-
Результат функции
inverse_transformдляXtна основе оценщика с лучшими найденными параметрами.
- свойствоn_features_in_
-
Количество признаков, увиденных во время fit.
Доступно только при
refit=True.
- predict(X)[source]
-
Вызвать predict у оценщика с лучшими найденными параметрами.
Доступно только, если
refit=Trueи базовый оценщик поддерживаетpredict.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять входным предположениям базового оценщика.
- Возвращает:
-
- y_predмассив ndarray формы (n_samples,)
-
Предсказанные метки или значения для
Xна основе оценщика с лучшими найденными параметрами.
- predict_log_proba(X)[source]
-
Вызвать predict_log_proba у оценщика с лучшими найденными параметрами.
Доступно только, если
refit=Trueи базовый оценщик поддерживаетpredict_log_proba.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять входным предположениям базового оценщика.
- Возвращает:
-
- y_predмассив ndarray формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные логарифмы вероятностей классов для
Xна основе оценщика с лучшими найденными параметрами. Порядок классов соответствует порядку в атрибуте fitted classes_.
- predict_proba(X)[source]
-
Вызвать predict_proba у оценщика с лучшими найденными параметрами.
Доступно только, если
refit=Trueи базовый оценщик поддерживаетpredict_proba.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять входным предположениям базового оценщика.
- Возвращает:
-
- y_predмассив ndarray формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные вероятности классов для
Xна основе оценщика с лучшими найденными параметрами. Порядок классов соответствует порядку в атрибуте fitted classes_.
- score(X, y=None, **params)[source]
-
Возвращает оценку на заданных данных, если оценщик был переобучен.
Использует определенную оценку
scoringпри её наличии, иначе методbest_estimator_.score.- Параметры:
-
- Xмассив-подобный объект формы (n_samples, n_features)
-
Входные данные, где
n_samples— количество образцов, аn_features— количество признаков. - yмассив-подобный объект формы (n_samples, n_output) или (n_samples,), по умолчанию=None
-
Метки относительно X для классификации или регрессии; None для неконтролируемого обучения.
- **paramsdict
-
Параметры, передаваемые в базовый(е) функцию(и) оценки.
Добавлена в версии 1.4: Доступно только, если
enable_metadata_routing=True. См. Руководство пользователя по маршрутизации метаданных для получения дополнительной информации.
- Возвращает:
-
- scorefloat
-
Оценка, определенная
scoringесли она задана, и методbest_estimator_.scoreв противном случае.
- score_samples(X)[source]
-
Вызов метода score_samples для оценщика с лучшими найденными параметрами.
Доступно только, если
refit=Trueи базовый оценщик поддерживаетscore_samples.Добавлена в версии 0.24.
- Параметры:
-
- Xiterable
-
Данные для предсказания. Должны соответствовать требованиям ввода базового оценщика.
- Возвращаемое значение:
-
- y_scorendarray формы (n_samples,)
-
Результат метода
best_estimator_.score_samples.
- set_params(**params)[source]
-
Установка параметров этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры в формате<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращаемое значение:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Вызов метода transform для оценщика с лучшими найденными параметрами.
Доступно только, если базовый оценщик поддерживает
transformиrefit=True.- Параметры:
-
- Xиндексируемый объект длиной n_samples
-
Должен удовлетворять предположениям ввода базового оценщика.
- Возвращаемое значение:
-
- Xt{ndarray, разреженная матрица} формы (n_samples, n_features)
-
Xпреобразованный в новом пространстве на основе оценщика с лучшими найденными параметрами.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.HalvingRandomSearchCV.html