HalvingGridSearchCV
- классsklearn.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)[исходный код]
-
Поиск по заданным значениям параметров с последовательным уменьшением числа кандидатов.
Стратегия поиска начинается с оценки всех кандидатов при небольшом объёме ресурсов и итеративно выбирает лучших кандидатов, используя всё больше ресурсов.
Подробнее см. в руководстве пользователя.
Примечание
Пока этот оценщик всё ещё находится в статусе экспериментального: предсказания и 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_eliminationлогическое значение, по умолчанию=False
-
Имеет значение только в случаях, когда ресурсов недостаточно, чтобы после последней итерации сократить число оставшихся кандидатов до
factorили менее. ЕслиTrue, процесс поиска будет повторять первую итерацию столько раз, сколько потребуется, пока число кандидатов не станет достаточно малым. По умолчанию этоFalse, а значит, на последней итерации может оцениваться болееfactorкандидатов. Подробнее см. раздел Агрессивное исключение кандидатов. - cvцелое число, генератор перекрёстной проверки или итерируемый объект, по умолчанию=5
-
Определяет стратегию разбиения для перекрёстной проверки. Для cv допустимы следующие значения:
- целое число, задающее количество блоков при
(Stratified)KFold, - разбиение для перекрёстной проверки,
- итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.
Для целочисленных значений и None, если оценщик является классификатором, а
y— бинарным или многоклассовым, используетсяStratifiedKFold. Во всех остальных случаях используетсяKFold. Эти разбиения создаются сshuffle=False, поэтому при каждом вызове разбиения будут одинаковыми.См. руководство пользователя, чтобы ознакомиться с различными стратегиями перекрёстной проверки, которые можно использовать здесь.
Примечание
Из-за особенностей реализации разбиения, создаваемые
cv, должны оставаться одинаковыми при нескольких вызовахcv.split(). Для встроенных итераторовscikit-learnэтого можно добиться, отключив перемешивание (shuffle=False) или задав целое число для параметраrandom_stateобъектаcv. - целое число, задающее количество блоков при
- scoringстрока или вызываемый объект, по умолчанию=None
-
Метод оценки, используемый для оценки предсказаний на тестовом наборе.
- строка: варианты см. в разделе Оценщики с именами в виде строк.
- вызываемый объект: вызываемый объект-оценщик (например, функция) с сигнатурой
scorer(estimator, X, y). Подробнее см. в разделе Вызываемые оценщики. -
None: используется критерий оценки по умолчанию дляestimator.
- refitлогическое значение или вызываемый объект, по умолчанию=True
-
Повторно обучить оценщик на всём наборе данных, используя найденные наилучшие параметры.
Если при выборе лучшего оценщика нужно учитывать факторы помимо максимального значения оценки,
refitможно задать как функцию, которая возвращает выбранныйbest_index_с учётомcv_results_. В этом случаеbest_estimator_иbest_params_будут установлены в соответствии с возвращённымbest_index_, а атрибутbest_score_будет недоступен.Повторно обученный оценщик доступен через атрибут
best_estimator_, что позволяет напрямую использоватьpredictдля этого экземпляраHalvingGridSearchCV.Пример использования
refit=callableдля поиска компромисса между сложностью модели и оценкой по перекрёстной проверке см. в этом примере. - error_score‘raise’ или числовое значение
-
Значение, присваиваемое оценке в случае ошибки при обучении оценщика. Если задано значение ‘raise’, ошибка вызывается повторно. Если задано числовое значение, возникает предупреждение FitFailedWarning. Этот параметр не влияет на этап повторного обучения, на котором ошибка будет вызвана в любом случае. Значение по умолчанию —
np.nan. - return_train_scoreлогическое значение, по умолчанию=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_список целых чисел
-
Объём ресурсов, использованных на каждой итерации.
- 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
-
Словарь, в котором ключи — это заголовки столбцов, а значения — столбцы; его можно импортировать в
DataFramepandas. Содержит много информации для анализа результатов поиска. Подробнее см. в руководстве пользователя. Пример анализаcv_results_см. в разделе Статистическое сравнение моделей с помощью поиска по сетке. - best_estimator_оценщик или словарь
-
Оценщик, выбранный в ходе поиска, то есть оценщик, показавший наилучшую оценку (или наименьшую потерю, если она задана) на отложенных данных. Недоступен, если
refit=False. - best_score_число с плавающей точкой
-
Средняя оценка по перекрёстной проверке для best_estimator.
- 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_массив ndarray формы (n_classes,) -
Метки классов.
-
n_features_in_целое число -
Количество признаков, обнаруженных при обучении.
-
feature_names_in_массив ndarray формы (
n_features_in_,) -
Имена признаков, обнаруженных при обучении. Определяется, только если задан
best_estimator_(подробнее см. документацию параметраrefit) иbest_estimator_предоставляетfeature_names_in_при обучении.Добавлено в версии 1.0.
См. также
HalvingRandomSearchCV-
Случайный поиск по набору параметров с последовательным уменьшением числа кандидатов.
Примечания
Выбираются параметры, максимизирующие оценку на отложенных данных согласно параметру 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 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}- decision_function(X)[исходный код]
-
Вызвать decision_function для оценщика с найденными наилучшими параметрами.
Доступно, только если
refit=Trueи базовый оценщик поддерживаетdecision_function.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять требованиям к входным данным базового оценщика.
- Возвращает:
-
- y_scoreмассив ndarray формы (n_samples,), (n_samples, n_classes) или (n_samples, n_classes * (n_classes-1) / 2)
-
Результат работы функции принятия решения для
Xна основе оценщика с найденными наилучшими параметрами.
- fit(X, y=None, **params)[исходный код]
-
Выполнить обучение со всеми наборами параметров.
- Параметры:
-
- Xобъект, подобный массиву, форма (n_samples, n_features)
-
Обучающий вектор, где
n_samples— количество образцов, аn_features— количество признаков. - yобъект, подобный массиву, форма (n_samples,) или (n_samples, n_output), необязательно
-
Целевые значения относительно X для классификации или регрессии; None для обучения без учителя.
- **paramsсловарь строка -> объект
-
Параметры, передаваемые методу
fitоценщика.
- Возвращает:
-
- selfобъект
-
Экземпляр обученного оценщика.
- get_metadata_routing()[исходный код]
-
Получить информацию о маршрутизации метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в руководстве пользователя.
Добавлено в версии 1.4.
- Возвращает:
-
- routingMetadataRouter
-
Объект
MetadataRouter, содержащий информацию о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepлогическое значение, по умолчанию=True
-
Если True, будут возвращены параметры этого оценщика и содержащихся в нём подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsсловарь
-
Имена параметров и соответствующие им значения.
- inverse_transform(X)[исходный код]
-
Вызвать inverse_transform для оценщика с найденными наилучшими параметрами.
Доступно, только если базовый оценщик реализует
inverse_transformиrefit=True.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять требованиям к входным данным базового оценщика.
- Возвращает:
-
- X_original{ndarray, разреженная матрица} формы (n_samples, n_features)
-
Результат функции
inverse_transformдляXна основе оценщика с найденными наилучшими параметрами.
- predict(X)[исходный код]
-
Вызвать predict для оценщика с найденными наилучшими параметрами.
Доступно, только если
refit=Trueи базовый оценщик поддерживаетpredict.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять требованиям к входным данным базового оценщика.
- Возвращает:
-
- y_predмассив ndarray формы (n_samples,)
-
Предсказанные метки или значения для
Xна основе оценщика с найденными наилучшими параметрами.
- predict_log_proba(X)[исходный код]
-
Вызвать predict_log_proba для оценщика с найденными наилучшими параметрами.
Доступно, только если
refit=Trueи базовый оценщик поддерживаетpredict_log_proba.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять требованиям к входным данным базового оценщика.
- Возвращает:
-
- y_predмассив ndarray формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные логарифмы вероятностей классов для
Xна основе оценщика с найденными наилучшими параметрами. Порядок классов соответствует порядку в обученном атрибуте classes_.
- predict_proba(X)[исходный код]
-
Вызвать predict_proba для оценщика с найденными наилучшими параметрами.
Доступно, только если
refit=Trueи базовый оценщик поддерживаетpredict_proba.- Параметры:
-
- Xиндексируемый объект, длина n_samples
-
Должен удовлетворять требованиям к входным данным базового оценщика.
- Возвращает:
-
- y_predмассив ndarray формы (n_samples,) или (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.HalvingGridSearchCV.html