HalvingGridSearchCV
- classsklearn.model_selection.HalvingGridSearchCV(estimator, param_grid, *, factor=3, resource='n_samples', max_resources='auto', min_resources='exhaust', 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]
-
Поиск по заданным значениям параметров с последовательным удвоением.
Стратегия поиска начинает оценивать все кандидаты с небольшим количеством ресурсов и итеративно выбирает лучшие кандидаты, используя все больше и больше ресурсов.
Подробнее см. в Руководстве пользователя.
Примечание
Этот оценщик пока что является экспериментальным: прогнозы и 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 HalvingGridSearchCV
- Параметры:
-
- estimatorобъект оценщика
-
Предполагается, что он реализует интерфейс оценщика scikit-learn. Оценщик должен предоставлять функцию
score, илиscoringдолжен быть передан. - param_gridсловарь или список словарей
-
Словарь с именами параметров (строка) в качестве ключей и списками настроек параметров для проверки в качестве значений, или список таких словарей, в котором случае области поиска, охватываемые каждым словарем в списке, исследуются. Это позволяет искать по любой последовательности параметров.
- 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'} или целое число, по умолчанию='exhaust'
-
Минимальное количество ресурсов, которое может использовать любой кандидат для данной итерации. Эквивалентно, это определяет количество ресурсов
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’ приводит к более точному оценщику, но немного более затратно по времени.
Обратите внимание, что количество ресурсов, используемых на каждой итерации, всегда кратно
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параметрrandom_stateв целое число. - целое число, чтобы указать количество сгибов в
- scoringстрока, вызываемый объект или None, по умолчанию=None
-
Одна строка (см. Параметр scoring: определение правил оценки модели) или вызываемый объект (см. Вызываемые объекты-оценщики) для оценки прогнозов на тестовом наборе. Если None, используется метод score оценщика.
- refitbool, по умолчанию=True
-
Если True, переобучить оценщик, используя лучшие найденные параметры на всем наборе данных.
Переобученный оценщик доступен в атрибуте
best_estimator_и позволяет использоватьpredictнапрямую на этом экземпляреHalvingGridSearchCV. - error_score‘raise’ или числовое значение
-
Значение, присваиваемое оценке, если при подгонке оценщика возникла ошибка. Если установлено в ‘raise’, ошибка поднимается. Если задано числовое значение, поднимается предупреждение FitFailedWarning. Этот параметр не влияет на шаг refit, который всегда будет поднимать ошибку. По умолчанию
np.nan. - return_train_scorebool, по умолчанию=False
-
Если
False, атрибутcv_results_не будет включать оценки на обучающей выборке. Вычисление оценок на обучающей выборке используется для получения информации о влиянии различных настроек параметров на баланс переобучения/недообучения. Однако вычисление оценок на обучающей выборке может быть вычислительно дорогостоящим и не обязательно для выбора параметров, обеспечивающих лучшую обобщающую производительность. - random_stateцелое число, экземпляр RandomState или None, по умолчанию=None
-
Состояние генератора псевдослучайных чисел, используемое для подвыборки набора данных при
resources != 'n_samples'. Игнорируется в противном случае. Передайте целое число для воспроизводимого результата при нескольких вызовах функции. См. Словарь. - n_jobsцелое число или None, по умолчанию=None
-
Количество задач, выполняемых параллельно.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. Словарь. - verboseцелое число
-
Управляет подробностью сообщений: чем больше значение, тем больше сообщений.
- Атрибуты:
-
- n_resources_list of int
-
Количество ресурсов, используемых на каждой итерации.
- n_candidates_list of int
-
Количество кандидатов параметров, которые были оценены на каждой итерации.
- n_remaining_candidates_int
-
Количество оставшихся кандидатов параметров после последней итерации. Соответствует
ceil(n_candidates[-1] / factor) - max_resources_int
-
Максимальное количество ресурсов, которое любой кандидат может использовать для данной итерации. Обратите внимание, что поскольку количество ресурсов, используемых на каждой итерации, должно быть кратно
min_resources_, фактическое количество ресурсов, используемых на последней итерации, может быть меньшеmax_resources_ - min_resources_int
-
Количество ресурсов, выделяемых для каждого кандидата на первой итерации.
- n_iterations_int
-
Фактическое количество выполненных итераций. Равно
n_required_iterations_, еслиaggressive_eliminationравноTrue. В противном случае равноmin(n_possible_iterations_, n_required_iterations_) - n_possible_iterations_int
-
Количество возможных итераций, начиная с
min_resources_ресурсов и без превышенияmax_resources_ - n_required_iterations_int
-
Количество итераций, необходимых для получения менее
factorкандидатов на последней итерации, начиная сmin_resources_ресурсов. Будет меньшеn_possible_iterations_, если ресурсов недостаточно. - cv_results_dict of numpy (masked) ndarrays
-
Словарь с ключами в качестве заголовков столбцов и значениями в качестве столбцов, который можно импортировать в pandas
DataFrame. Содержит много информации для анализа результатов поиска. Подробности см. в Руководстве пользователя. - best_estimator_estimator or dict
-
Модель, выбранная в результате поиска, то есть модель, которая дала наивысший балл (или наименьшую потерю, если указано) на отложенных данных. Недоступно, если
refit=False - best_score_float
-
Средний перекрестно-валидированный балл лучшей модели.
- best_params_dict
-
Настройки параметров, которые дали лучшие результаты на отложенных данных.
- best_index_int
-
Индекс (массивов
cv_results_), соответствующий лучшим настройкам параметров кандидата.Словарь по адресу
search.cv_results_['params'][search.best_index_]содержит настройки параметров лучшей модели, обеспечивающие наивысший средний балл (search.best_score_). - scorer_function or a dict
-
Функция оценки, используемая на отложенных данных для выбора лучших параметров модели.
- n_splits_int
-
Количество разбиений перекрестной проверки (folds/итераций).
- refit_time_float
-
Время, затраченное на переобучение лучшей модели на всем наборе данных.
Присутствует только если
refitне равно False. - multimetric_bool
-
Указывает, вычисляют ли оценщики несколько метрик.
-
classes_ndarray of shape (n_classes,) -
Метки классов.
-
n_features_in_int -
Количество признаков, увиденных во время fit.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Имена признаков, увиденных во время fit. Определены только если
best_estimator_определено (см. документацию для параметраrefitдля получения более подробной информации) иbest_estimator_предоставляетfeature_names_in_при вызове fit.Добавлен в версии 1.0.
См. также
HalvingRandomSearchCV-
Случайный поиск по набору параметров с использованием последовательного уменьшения.
Примечания
Выбранные параметры — те, которые максимизируют балл отложенных данных в соответствии с параметром оценки.
Все комбинации параметров, оцененные как 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 HalvingGridSearchCV ... >>> X, y = load_iris(return_X_y=True) >>> clf = RandomForestClassifier(random_state=0) ... >>> param_grid = {"max_depth": [3, None], ... "min_samples_split": [5, 10]} >>> search = HalvingGridSearchCV(clf, param_grid, 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}- propertyclasses_
-
Метки классов.
Доступны только при
refit=Trueи если оценщик является классификатором.
- decision_function(X)[source]
-
Вызов decision_function на оценщике с лучшими найденными параметрами.
Доступны только если
refit=Trueи базовый оценщик поддерживаетdecision_function.- Параметры:
-
- Xиндексируемый, длина n_samples
-
Должен удовлетворять требованиям ввода базового оценщика.
- Возвращает:
-
- y_scorendarray формы (n_samples,) или (n_samples, n_classes) или (n_samples, n_classes * (n_classes-1) / 2)
-
Результат decision_function для
Xна основе оценщика с лучшими найденными параметрами.
- fit(X, y=None, **params)[source]
-
Выполнение fit со всеми наборами параметров.
- Параметры:
-
- Xarray-like, форма (n_samples, n_features)
-
Вектор обучающих данных, где
n_samples— количество объектов, аn_features— количество признаков. - yarray-like, форма (n_samples,) или (n_samples, n_output), необязательно
-
Цель, относящаяся к X для классификации или регрессии; None для неконтролируемого обучения.
- **paramsdict string -> object
-
Параметры, передаваемые методу
fitоценщика.
- Возвращает:
-
- selfobject
-
Экземпляр обученного оценщика.
- 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на основе оценщика с лучшими найденными параметрами.
- propertyn_features_in_
-
Количество признаков, увиденных во время fit.
Доступно только при
refit=True.
- predict(X)[source]
-
Вызов predict для оценщика с лучшими найденными параметрами.
Доступно только если
refit=Trueи базовый оценщик поддерживаетpredict.- Параметры:
-
- Xиндексируемый, длина n_samples
-
Должен удовлетворять предположениям ввода базового оценщика.
- Возвращает:
-
- y_predndarray формы (n_samples,)
-
Предсказанные метки или значения для
Xна основе оценщика с лучшими найденными параметрами.
- predict_log_proba(X)[source]
-
Вызов predict_log_proba для оценщика с лучшими найденными параметрами.
Доступно только если
refit=Trueи базовый оценщик поддерживаетpredict_log_proba.- Параметры:
-
- Xиндексируемый, длина n_samples
-
Должен удовлетворять предположениям ввода базового оценщика.
- Возвращает:
-
- y_predndarray формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные логарифмы вероятностей классов для
Xна основе оценщика с лучшими найденными параметрами. Порядок классов соответствует порядку в атрибуте fitted classes_.
- predict_proba(X)[source]
-
Вызов predict_proba для оценщика с лучшими найденными параметрами.
Доступно только если
refit=Trueи базовый оценщик поддерживаетpredict_proba.- Параметры:
-
- Xиндексируемый, длина n_samples
-
Должен удовлетворять предположениям ввода базового оценщика.
- Возвращает:
-
- y_predndarray формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные вероятности классов для
Xна основе оценщика с лучшими найденными параметрами. Порядок классов соответствует порядку в атрибуте fitted classes_.
- score(X, y=None, **params)[source]
-
Возвращает оценку на заданных данных, если оценщик был пересчитан.
Использует определение оценки, заданной
scoring, если она предоставлена, в противном случае методbest_estimator_.score.- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Входные данные, где
n_samples- количество образцов, аn_features- количество признаков. - yarray-like формы (n_samples, n_output) или (n_samples,), по умолчанию=None
-
Целевая переменная, относящаяся к X, для классификации или регрессии; None для обучения без учителя.
- **paramsdict
-
Параметры, которые необходимо передать в базовую функцию scorer(s).
Добавлена в версии 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.HalvingGridSearchCV.html