Spec-Zone.ru › scikit-learn

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 преобразован в новом пространстве на основе оценщика с лучшими найденными параметрами.

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

Основные моменты выпуска scikit-learn 0.24

Сравнение поиска сетки и поэтапного удвоения

Итерации поэтапного удвоения

© 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

Spec-Zone.ru

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