Spec-Zone.ru › scikit-learn

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

Словарь, в котором ключи — это заголовки столбцов, а значения — столбцы; его можно импортировать в DataFrame pandas. Содержит много информации для анализа результатов поиска. Подробнее см. в руководстве пользователя. Пример анализа 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, преобразованный в новое пространство на основе оценщика с наилучшими найденными параметрами.

Примеры из галереи

Сравнение поиска по сетке и последовательного сокращения

Итерации последовательного сокращения

Основные нововведения scikit-learn 0.24

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API