HalvingGridSearchCV#
- класс sklearn.model_selection.HalvingGridSearchCV(estimator, param_grid, *, фактор=3, ресурс='n_samples', max_resources='auto', min_resources='exhaust', aggressive_elimination=False, cv=5, оценка=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словарь или список словарей
Словарь с именами параметров (строка) в качестве ключей и списками настроек параметров для перебора в качестве значений, или список таких словарей, в этом случае сетки, охватываемые каждым словарем в списке, исследуются. Это позволяет выполнять поиск по любой последовательности настроек параметров.
- факторint или float, по умолчанию=3
Параметр 'halving', который определяет долю кандидатов, выбираемых для каждой последующей итерации. Например,
factor=3означает, что выбирается только одна треть кандидатов.- ресурс
'n_samples'или str, по умолчанию='n_samples' Определяет ресурс, который увеличивается с каждой итерацией. По умолчанию ресурсом является количество образцов. Он также может быть установлен в любой параметр базового оценщика, принимающий положительные целочисленные значения, например 'n_iterations' или 'n_estimators' для градиентного бустинга. В этом случае
max_resourcesне может быть 'auto' и должен быть установлен явно.- max_resourcesint, по умолчанию='auto'
Максимальное количество ресурсов, которое любой кандидат может использовать для данной итерации. По умолчанию установлено
n_samplesкогдаresource='n_samples'(по умолчанию), иначе возникает ошибка.- min_resources{‘exhaust’, ‘smallest’} или int, default=’exhaust’
Минимальное количество ресурсов, которое разрешено использовать любому кандидату для данной итерации. Эквивалентно, это определяет количество ресурсов
r0которые выделяются для каждого кандидата на первой итерации.‘smallest’ — это эвристика, которая устанавливает
r0до небольшого значения:n_splits * 2когдаresource='n_samples'для задачи регрессииn_classes * n_splits * 2когдаresource='n_samples'для задачи классификации1когдаresource != 'n_samples'
'exhaust' установит
r0такой, что last итерация использует как можно больше ресурсов. А именно, последняя итерация будет использовать наибольшее значение меньшее, чемmax_resourcesкоторое кратно обоимmin_resourcesиfactor. В целом, использование 'exhaust' приводит к более точной оценке, но требует немного больше времени.
Обратите внимание, что количество ресурсов, используемых на каждой итерации, всегда кратно
min_resources.- aggressive_eliminationbool, по умолчанию=False
Это актуально только в случаях, когда недостаточно ресурсов для сокращения оставшихся кандидатов до максимум
factorпосле последней итерации. ЕслиTrue, тогда процесс поиска будет «воспроизводить» первую итерацию столько раз, сколько потребуется, пока количество кандидатов не станет достаточно малым. ЭтоFalseпо умолчанию, что означает, что последняя итерация может оценить больше, чемfactorкандидаты. См. Агрессивное исключение кандидатов для получения дополнительной информации.- cvint, генератор перекрестной проверки или итерируемый объект, по умолчанию=5
Определяет стратегию разделения для перекрестной проверки. Возможные значения для cv:
целое число, чтобы указать количество фолдов в
(Stratified)KFold,Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.
Для целочисленных/None входных данных, если оценщик является классификатором и
yявляется либо бинарным, либо многоклассовым,StratifiedKFoldиспользуется. Во всех остальных случаяхKFoldиспользуется. Эти сплиттеры создаются сshuffle=Falseтак что разбиения будут одинаковыми при всех вызовах.Обратитесь Руководство пользователя для различных стратегий перекрестной проверки, которые можно использовать здесь.
Примечание
Из-за особенностей реализации, фолды, созданные
cvдолжно быть одинаковым при множественных вызовахcv.split(). Для встроенныхscikit-learnитераторы, этого можно достичь, деактивируя перемешивание (shuffle=False), или установкойcv’srandom_stateпараметр в целое число.- оценкаstr или callable, по умолчанию=None
Метод оценки для проверки предсказаний на тестовом наборе.
str: см. Строковые имена скореров для опций.
callable: вызываемый объект scorer (например, функция) с сигнатурой
scorer(estimator, X, y). См. Вызываемые скореры подробности.None:estimator’s критерий оценки по умолчанию используется.
- refitbool или callable, по умолчанию=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_scorebool, по умолчанию=False
Если
False,cv_results_атрибут не будет включать оценки обучения. Вычисление оценок обучения используется для получения представления о том, как различные настройки параметров влияют на компромисс переобучения/недообучения. Однако вычисление оценок на обучающем наборе может быть вычислительно затратным и не является строго необходимым для выбора параметров, которые дают наилучшую производительность обобщения.- random_stateint, экземпляр RandomState или None, по умолчанию=None
Состояние генератора псевдослучайных чисел, используемое для субдискретизации набора данных когда
resources != 'n_samples'. Игнорируется в противном случае. Передайте целое число для воспроизводимого результата при многократных вызовах функции. См. Глоссарий.- n_jobsint или None, по умолчанию=None
Количество параллельно выполняемых задач.
Noneозначает 1, если только не вjoblib.parallel_backendконтекст.-1означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.- verboseint
Управляет подробностью вывода: чем выше, тем больше сообщений.
- Атрибуты:
- n_resources_список целых чисел
Количество ресурсов, используемых на каждой итерации.
- n_candidates_список целых чисел
Количество кандидатных параметров, оценённых на каждой итерации.
- 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_ifaggressive_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_словарь numpy (маскированных) ndarrays
Словарь с ключами в качестве заголовков столбцов и значениями в качестве столбцов, который можно импортировать в pandas
DataFrame. Он содержит много информации для анализа результатов поиска. Пожалуйста, обратитесь к Руководство пользователя для подробностей. Пример анализаcv_results_, см. Статистическое сравнение моделей с использованием поиска по сетке.- best_estimator_оценщик или словарь
Оценщик, выбранный поиском, т.е. оценщик, который дал наивысший балл (или наименьшие потери, если указано) на отложенных данных. Недоступно, если
refit=False.- best_score_float
Средний перекрёстно-валидированный счёт лучшего оценщика.
- best_params_dict
Настройка параметров, которая дала наилучшие результаты на отложенных данных.
- best_index_int
Индекс (из
cv_results_массивы), которые соответствуют наилучшей настройке параметров кандидата.Словарь в
search.cv_results_['params'][search.best_index_]даёт настройку параметров для лучшей модели, которая даёт наивысшее среднее значение оценки (search.best_score_).- scorer_функция или словарь
Функция оценки, используемая на отложенных данных для выбора лучших параметров модели.
- n_splits_int
Количество разбиений перекрестной проверки (фолдов/итераций).
- время повторного обученияfloat
Секунды, затраченные на переобучение лучшей модели на всем наборе данных.
Это присутствует только если
refitне является False.- multimetric_bool
Вычисляют ли скореры несколько метрик.
classes_ndarray формы (n_classes,)Метки классов.
n_features_in_intКоличество признаков, замеченных во время fit.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определено только если
best_estimator_определен (см. документацию дляrefitпараметр для получения дополнительных сведений) и чтоbest_estimator_предоставляетfeature_names_in_при обучении.Добавлено в версии 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}
- decision_function(X)[источник]#
Вызовите 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)
Результат функции принятия решений для
Xна основе оценщика с наилучшими найденными параметрами.
- fit(X, y=None, **params)[источник]#
Запустите fit со всеми наборами параметров.
- Параметры:
- Xarray-like, shape (n_samples, n_features)
Вектор обучения, где
n_samples— это количество образцов иn_featuresэто количество признаков.- yarray-like, форма (n_samples,) или (n_samples, n_output), опционально
Целевая переменная относительно X для классификации или регрессии; None для обучения без учителя.
- **paramsсловарь строк -> объект
Параметры, передаваемые в
fitметод оценщика.
- Возвращает:
- selfobject
Экземпляр обученного оценщика.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
Добавлено в версии 1.4.
- Возвращает:
- маршрутизацияMetadataRouter
A
MetadataRouterИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- 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_predndarray формы (n_samples,)
Предсказанные метки или значения для
Xна основе оценщика с наилучшими найденными параметрами.
- predict_log_proba(X)[источник]#
Вызовите predict_log_proba на оценщике с наилучшими найденными параметрами.
Доступно только если
refit=Trueи базовый оценчик поддерживаетpredict_log_proba.- Параметры:
- Xиндексируемый, длина n_samples
Должен соответствовать входным предположениям базового оценщика.
- Возвращает:
- y_predndarray формы (n_samples,) или (n_samples, n_classes)
Предсказанные логарифмические вероятности классов для
Xна основе оценщика с наилучшими найденными параметрами. Порядок классов соответствует порядку во встроенном атрибуте classes_.
- predict_proba(X)[источник]#
Вызвать predict_proba у оценщика с наилучшими найденными параметрами.
Доступно только если
refit=Trueи базовый оценчик поддерживаетpredict_proba.- Параметры:
- Xиндексируемый, длина n_samples
Должен соответствовать входным предположениям базового оценщика.
- Возвращает:
- y_predndarray формы (n_samples,) или (n_samples, n_classes)
Предсказанные вероятности классов для
Xна основе модели с наилучшими найденными параметрами. Порядок классов соответствует порядку в обученном атрибуте classes_.
- score(X, y=None, **params)[источник]#
Возвращает оценку на заданных данных, если оценщик был переобучен.
Это использует оценку, определенную
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
Параметры, передаваемые в базовый оценщик(и).
Добавлено в версии 1.4: Доступно только если
enable_metadata_routing=True. См. Руководство по маршрутизации метаданных для получения дополнительной информации.
- Возвращает:
- scorefloat
Оценка, определяемая
scoringесли предоставлен, иbest_estimator_.scoreметод в противном случае.
- score_samples(X)[источник]#
Вызовите score_samples на оценщике с наилучшими найденными параметрами.
Доступно только если
refit=Trueи базовый оценчик поддерживаетscore_samples.Добавлено в версии 0.24.
- Параметры:
- Xитерируемый объект
Данные для предсказания. Должны удовлетворять входным требованиям базового оценщика.
- Возвращает:
- y_scorendarray формы (n_samples,)
The
best_estimator_.score_samplesметод.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- преобразовать(X)[источник]#
Вызовите transform на оценщике с наилучшими найденными параметрами.
Доступно только если базовый оценщик поддерживает
transformиrefit=True.- Параметры:
- Xиндексируемый, длина n_samples
Должен соответствовать входным предположениям базового оценщика.
- Возвращает:
- Xt{ndarray, разреженная матрица} формы (n_samples, n_features)
Xпреобразованы в новом пространстве на основе оценщика с наилучшими найденными параметрами.
Примеры галереи#
Сравнение между поиском по сетке и последовательным сокращением вдвое