Spec-Zone.ru › scikit-learn

HalvingRandomSearchCV

classsklearn.model_selection.HalvingRandomSearchCV(estimator, param_distributions, *, n_candidates='exhaust', factor=3, resource='n_samples', max_resources='auto', min_resources='smallest', 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]

Случайный поиск по гиперпараметрам.

Стратегия поиска начинает оценивать все кандидаты с небольшим количеством ресурсов и итеративно выбирает лучших кандидатов, используя всё больше и больше ресурсов.

Кандидаты случайным образом выбираются из пространства параметров, а количество выбранных кандидатов определяется значением n_candidates.

Подробнее см. в Руководстве пользователя.

Примечание

В настоящее время этот оценщик является экспериментальным: предсказания и 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 HalvingRandomSearchCV
Параметры:
estimatorобъект оценщика

Предполагается, что он реализует интерфейс оценщика scikit-learn. Либо оценщик должен предоставить функцию score, либо должен быть передан scoring.

param_distributionsсловарь или список словарей

Словарь с именами параметров (str) в качестве ключей и распределений или списков параметров для попыток. Распределения должны предоставить метод rvs для выборки (такие, как из scipy.stats.distributions). Если передан список, он выбирается равномерно. Если передан список словарей, сначала равномерно выбирается словарь, а затем параметр выбирается с использованием этого словаря, как указано выше.

n_candidates“exhaust” или целое число, по умолчанию=”exhaust”

Количество параметров-кандидатов для выборки на первой итерации. Использование “exhaust” выберет достаточно кандидатов, чтобы последняя итерация использовала как можно больше ресурсов, на основе min_resources, max_resources и factor. В этом случае min_resources не может быть “exhaust”.

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’} или целое число, по умолчанию=’smallest’

Минимальное количество ресурсов, которое любой кандидат может использовать на данной итерации. Эквивалентно, это определяет количество ресурсов 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’ приводит к более точному оценщику, но немного более затратно по времени. ‘exhaust’ недоступен, когда n_candidates='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’s random_state в целое число.

scoringстрока, вызываемая функция или None, по умолчанию=None

Одна строка (см. Параметр scoring: определение правил оценки моделей) или вызываемая функция (см. Вызываемые функции оценщиков) для оценки предсказаний на тестовом наборе. Если None, используется метод score оценщика.

refitbool, по умолчанию=True

Если True, переобучает оценщик с использованием наилучших найденных параметров на всем наборе данных.

Переобученный оценщик доступен в атрибуте best_estimator_ и позволяет использовать predict непосредственно в этом экземпляре HalvingRandomSearchCV.

error_score‘raise’ или число

Значение, присваиваемое оценке, если при подгонке оценщика произошла ошибка. Если установлено ‘raise’, ошибка генерируется. Если задано числовое значение, генерируется предупреждение FitFailedWarning. Этот параметр не влияет на шаг переобучения, который всегда будет генерировать ошибку. По умолчанию np.nan.

return_train_scorebool, по умолчанию=False

Если False, атрибут cv_results_ не будет включать тренировочные оценки. Вычисление тренировочных оценок используется для получения информации о том, как различные настройки параметров влияют на баланс переобучения/недообучения. Однако вычисление оценок на наборе обучения может быть вычислительно дорогим и строго не требуется для выбора параметров, которые обеспечивают лучшую обобщающую производительность.

random_stateцелое число, экземпляр RandomState или None, по умолчанию=None

Состояние генератора псевдослучайных чисел, используемое для подвыборки набора данных при resources != 'n_samples'. Также используется для случайной равномерной выборки из списков возможных значений вместо scipy.stats распределений. Передайте целое число для воспроизводимого результата при нескольких вызовах функций. См. Словарь.

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 (маскированных)

Словарь с ключами в виде заголовков столбцов и значениями в виде столбцов, которые можно импортировать в таблицу pandas DataFrame. Он содержит много информации для анализа результатов поиска. Подробную информацию см. в Руководстве пользователя.

best_estimator_модель или словарь

Модель, выбранная в результате поиска, т.е. модель, которая дала наивысший результат (или наименьшую потерю, если указано) на оставленных данных. Недоступно, если refit=False

best_score_число с плавающей точкой

Среднее значение перекрестной проверки результата для лучшей модели.

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_массив NumPy формы (n_classes,)

Метки классов.

n_features_in_целое число

Количество признаков, увиденных во время fit.

feature_names_in_массив NumPy формы (n_features_in_,)

Имена признаков, увиденных во время fit. Определяется только, если best_estimator_ определено (см. документацию для параметра refit для получения более подробной информации) и best_estimator_ раскрывает feature_names_in_ при вызове fit.

Добавлен в версии 1.0.

См. также

HalvingGridSearchCV

Поиск по сетке параметров с использованием последовательного уменьшения.

Примечания

Выбранные параметры — это те, которые максимизируют результат на данных, оставленных для проверки, в соответствии с параметром 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 HalvingRandomSearchCV
>>> from scipy.stats import randint
>>> import numpy as np
...
>>> X, y = load_iris(return_X_y=True)
>>> clf = RandomForestClassifier(random_state=0)
>>> np.random.seed(0)
...
>>> param_distributions = {"max_depth": [3, None],
...                        "min_samples_split": randint(2, 11)}
>>> search = HalvingRandomSearchCV(clf, param_distributions,
...                                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}
свойствоclasses_

Метки классов.

Доступно только, если refit=True и модель является классификатором.

decision_function(X)[source]

Вызов decision_function на модели с лучшими найденными параметрами.

Доступно только, если refit=True и базовая модель поддерживает decision_function.

Параметры:
Xиндексируемый объект, длина n_samples

Должен соответствовать предположениям входных данных базовой модели.

Возвращаемые значения:
y_scoreмассив NumPy формы (n_samples,) или (n_samples, n_classes) или (n_samples, n_classes * (n_classes-1) / 2)

Результат decision_function для X на основе модели с лучшими найденными параметрами.

fit(X, y=None, **params)[source]

Выполнить fit со всеми наборами параметров.

Параметры:
Xмассив, форма (n_samples, n_features)

Вектор обучающих данных, где n_samples — количество образцов, а n_features — количество признаков.

yмассив, форма (n_samples,) или (n_samples, n_output), необязательно

Целевые значения относительно X для классификации или регрессии; None для несверхвизуального обучения.

**paramsсловарь строка -> объект

Параметры, передаваемые в метод fit модели.

Возвращаемые значения:
selfобъект

Экземпляр обученной модели.

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

свойствоn_features_in_

Количество признаков, увиденных во время fit.

Доступно только при refit=True.

predict(X)[source]

Вызвать predict у оценщика с лучшими найденными параметрами.

Доступно только, если refit=True и базовый оценщик поддерживает predict.

Параметры:
Xиндексируемый объект, длина n_samples

Должен удовлетворять входным предположениям базового оценщика.

Возвращает:
y_predмассив ndarray формы (n_samples,)

Предсказанные метки или значения для X на основе оценщика с лучшими найденными параметрами.

predict_log_proba(X)[source]

Вызвать predict_log_proba у оценщика с лучшими найденными параметрами.

Доступно только, если refit=True и базовый оценщик поддерживает predict_log_proba.

Параметры:
Xиндексируемый объект, длина n_samples

Должен удовлетворять входным предположениям базового оценщика.

Возвращает:
y_predмассив ndarray формы (n_samples,) или (n_samples, n_classes)

Предсказанные логарифмы вероятностей классов для X на основе оценщика с лучшими найденными параметрами. Порядок классов соответствует порядку в атрибуте fitted classes_.

predict_proba(X)[source]

Вызвать predict_proba у оценщика с лучшими найденными параметрами.

Доступно только, если refit=True и базовый оценщик поддерживает predict_proba.

Параметры:
Xиндексируемый объект, длина n_samples

Должен удовлетворять входным предположениям базового оценщика.

Возвращает:
y_predмассив ndarray формы (n_samples,) или (n_samples, n_classes)

Предсказанные вероятности классов для X на основе оценщика с лучшими найденными параметрами. Порядок классов соответствует порядку в атрибуте fitted classes_.

score(X, y=None, **params)[source]

Возвращает оценку на заданных данных, если оценщик был переобучен.

Использует определенную оценку scoring при её наличии, иначе метод best_estimator_.score.

Параметры:
Xмассив-подобный объект формы (n_samples, n_features)

Входные данные, где n_samples — количество образцов, а n_features — количество признаков.

yмассив-подобный объект формы (n_samples, n_output) или (n_samples,), по умолчанию=None

Метки относительно X для классификации или регрессии; None для неконтролируемого обучения.

**paramsdict

Параметры, передаваемые в базовый(е) функцию(и) оценки.

Добавлена в версии 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.HalvingRandomSearchCV.html

Spec-Zone.ru

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