Spec-Zone.ru › scikit-learn

GridSearchCV

classsklearn.model_selection.GridSearchCV(estimator, param_grid, *, scoring=None, n_jobs=None, refit=True, cv=None, verbose=0, pre_dispatch='2*n_jobs', error_score=nan, return_train_score=False)[source]

Исчерпывающий поиск по заданным значениям параметров для оценщика.

Важными членами являются fit, predict.

GridSearchCV реализует методы «fit» и «score». Он также реализует «score_samples», «predict», «predict_proba», «decision_function», «transform» и «inverse_transform», если они реализованы в используемом оценщике.

Параметры используемого оценщика оптимизируются с помощью перекрестной проверки по сетке параметров.

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

Parameters:
estimatorобъект оценщика

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

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

Словарь с именами параметров (str) в качестве ключей и списками значений параметров для проверки в качестве значений, или список таких словарей, в котором случае исследуются сетки, охватываемые каждым словарем в списке. Это позволяет выполнять поиск по любому ряду значений параметров.

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

Стратегия оценки производительности кросс-валидируемой модели на тестовом наборе.

Если scoring представляет собой один показатель, можно использовать:

  • одну строку (см. Параметр scoring: определение правил оценки модели);
  • вызываемую функцию (см. Вызываемые функции-оценщики), которая возвращает единственное значение.

Если scoring представляет собой несколько показателей, можно использовать:

  • список или кортеж уникальных строк;
  • вызываемую функцию, возвращающую словарь, где ключи — имена метрик, а значения — значения метрик;
  • словарь с именами метрик в качестве ключей и вызываемыми функциями в качестве значений.

См. Указание нескольких метрик для оценки для примера.

n_jobsцелое число, по умолчанию=None

Количество задач, выполняемых параллельно. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. См. Словарь для получения дополнительных сведений.

Изменено в версии v0.20: n_jobs значение по умолчанию изменено с 1 на None

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

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

Для оценки по нескольким метрикам это должен быть str который обозначает оценщик, который будет использоваться для поиска лучших параметров для переобучения оценщика в конце.

В случаях, когда при выборе лучшего оценщика учитываются соображения, отличные от максимального значения, refit можно установить на функцию, которая возвращает выбранный best_index_ , заданный cv_results_. В этом случае best_estimator_ и best_params_ будут установлены в соответствии с возвращенным best_index_, в то время как атрибут best_score_ не будет доступен.

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

Также для оценки по нескольким метрикам атрибуты best_index_, best_score_ и best_params_ будут доступны только если refit установлен, и все они будут определены по отношению к этому конкретному оценщику.

См. параметр scoring для получения дополнительных сведений об оценке по нескольким метрикам.

См. Настройка стратегии переобучения поиска по сетке с перекрестной проверкой для того, как разработать пользовательскую стратегию выбора с помощью вызываемой функции посредством refit.

Изменено в версии 0.20: Добавлена поддержка вызываемых функций.

cvцелое число, генератор перекрестной проверки или итерируемый объект, по умолчанию=None

Определяет стратегию разделения перекрестной проверки. Возможные значения cv:

  • None, чтобы использовать по умолчанию 5-кратную перекрестную проверку,
  • целое число, чтобы указать количество слоев в (Stratified)KFold,
  • делитель перекрестной проверки,
  • Итерируемый объект, возвращающий (train, test) разделения как массивы индексов.

Для целочисленных/None значений, если оценщик является классификатором и y является бинарным или многоклассовым, используется StratifiedKFold. Во всех остальных случаях используется KFold. Эти делители инициализируются shuffle=False, поэтому разделения будут одинаковыми при вызовах.

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

Изменено в версии 0.22: cv значение по умолчанию при None изменено с 3-кратного на 5-кратный.

verboseцелое число

Управляет объемом вывода: чем выше, тем больше сообщений.

  • >1 : отображается время вычислений для каждого слоя и кандидата параметра;
  • >2 : отображается также оценка;
  • >3 : вместе с начальным временем вычисления отображаются также индексы слоя и кандидата параметра.
pre_dispatchцелое число или строка, по умолчанию=’2*n_jobs’

Управляет количеством задач, которые передаются во время выполнения параллельных задач. Уменьшение этого значения может быть полезно для предотвращения взрыва использования памяти, когда количество отправленных задач превышает количество процессоров. Этот параметр может быть:

  • None, в этом случае все задачи создаются и запускаются сразу. Используйте это для легких и быстро выполняемых задач, чтобы избежать задержек из-за по запросу запуска задач
  • Целое число, дающее точное количество созданных задач
  • Строка, задающая выражение как функцию от n_jobs, как в ‘2*n_jobs’
error_score‘raise’ или число, по умолчанию=np.nan

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

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

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

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

Изменено в версии 0.21: Значение по умолчанию было изменено с True на False

Attributes:
END_OF_DOCUMENT_MARKER
cv_results_dict of numpy (masked) ndarrays

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

Например, таблица ниже

param_kernel

param_gamma

param_degree

split0_test_score

…

rank_t…

‘poly’

–

2

0.80

…

2

‘poly’

–

3

0.70

…

4

‘rbf’

0.1

–

0.80

…

3

‘rbf’

0.2

–

0.93

…

1

будет представлен словарем:

cv_results_

ПРИМЕЧАНИЕ

Ключ 'params' используется для хранения списка словарей параметров для всех кандидатов параметров.

mean_fit_time, std_fit_time, mean_score_time и std_score_time - все в секундах.

Для многометрической оценки оценки всех оценщиков доступны в словаре cv_results_ в ключах, оканчивающихся именем оценщика ('_<scorer_name>') вместо '_score' показанном выше. (‘split0_test_precision’, ‘mean_train_precision’ и т. д.).

best_estimator_estimator

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

См. параметр refit для получения дополнительной информации о разрешённых значениях.

best_score_float

Среднее значение кросс-валидационной оценки best_estimator.

При многометрической оценке это присутствует только, если refit указано.

Этот атрибут недоступен, если refit является функцией.

best_params_dict

Параметры, которые дали лучшие результаты на контрольных данных.

При многометрической оценке это присутствует только, если refit указано.

best_index_int

Индекс (массивов cv_results_ ), который соответствует наилучшим настройкам параметров.

Словарь в search.cv_results_['params'][search.best_index_] даёт настройки параметров для лучшей модели, которая даёт наибольшее среднее значение (search.best_score_).

При многометрической оценке это присутствует только, если refit указано.

scorer_function or a dict

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

При многометрической оценке этот атрибут содержит валидированный scoring словарь, который сопоставляет ключ оценщика с вызываемым объектом оценщика.

n_splits_int

Количество разбиений кросс-валидации (слоёв/итераций).

refit_time_float

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

Это присутствует только если refit не False.

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

multimetric_bool

Указывает, вычисляют ли оценщики несколько метрик.

classes_ndarray of shape (n_classes,)

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

n_features_in_int

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

feature_names_in_ndarray of shape (n_features_in_,)

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

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

См. также

ParameterGrid

Генерирует все комбинации гиперпараметрической сетки.

train_test_split

Утилитарная функция для разделения данных на набор для обучения, используемый для подгонки экземпляра GridSearchCV, и набор для оценки для его окончательной оценки.

sklearn.metrics.make_scorer

Создаёт оценщик из метрики производительности или функции потерь.

Примечания

Выбранные параметры — те, которые максимизируют оценку оставленных данных, за исключением явного указания оценки, которая используется вместо этого.

Если n_jobs было установлено значением больше единицы, данные копируются для каждой точки в сетке (а не n_jobs раз). Это делается для повышения эффективности, если отдельные задачи занимают очень мало времени, но может вызвать ошибки, если набор данных большой, и доступной памяти недостаточно. В этом случае обходным путём является установка pre_dispatch. Тогда память копируется только pre_dispatch раз. Разумное значение для pre_dispatch - 2 * n_jobs.

Примеры

>>> from sklearn import svm, datasets
>>> from sklearn.model_selection import GridSearchCV
>>> iris = datasets.load_iris()
>>> parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
>>> svc = svm.SVC()
>>> clf = GridSearchCV(svc, parameters)
>>> clf.fit(iris.data, iris.target)
GridSearchCV(estimator=SVC(),
             param_grid={'C': [1, 10], 'kernel': ('linear', 'rbf')})
>>> sorted(clf.cv_results_.keys())
['mean_fit_time', 'mean_score_time', 'mean_test_score',...
 'param_C', 'param_kernel', 'params',...
 'rank_test_score', 'split0_test_score',...
 'split2_test_score', ...
 'std_fit_time', 'std_score_time', 'std_test_score']
свойствоclasses_

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

Доступно только тогда, когда 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]

Выполнить подгонку со всеми наборами параметров.

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

Векторы обучения, где n_samples — число образцов, а n_features — число признаков. Для предварительно вычисленного ядра или матрицы расстояний ожидаемая форма X — (n_samples, n_samples).

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

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

**paramsdict str -> object

Параметры, передаваемые методу fit оценщика, оценщика и разделителя CV.

Если параметр подгонки является массивоподобным, длина которого равна num_samples, то он будет разделен на кросс-валидацию вместе с X и y. Например, параметр sample_weight разделяется, потому что len(sample_weights) = len(X). Однако это поведение не относится к groups , который передаётся разделителю, настроенному через параметр cv конструктора. Таким образом, groups используется для выполнения разделения и определяет, какие образцы назначаются на каждую сторону разбиения.

Возвращает:
selfobject

Экземпляр обученного оценщика.

get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

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

Возвращает:
routingMetadataRouter

A MetadataRouter encapsulating routing information.

get_params(deep=True)[source]

Получить параметры для этого оценщика.

Параметры:
deepbool, default=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 was deprecated in 1.5 and will be removed in 1.7. Use X instead.

Возвращает:
X{ndarray, sparse matrix} of shape (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 of shape (n_samples,)

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

predict_log_proba(X)[source]

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

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

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

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

Возвращает:
y_predndarray of shape (n_samples,) or (n_samples, n_classes)

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

predict_proba(X)[source]

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

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

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

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

Возвращает:
y_predndarray of shape (n_samples,) or (n_samples, n_classes)

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

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

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

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

Параметры:
Xarray-like of shape (n_samples, n_features)

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

yarray-like of shape (n_samples, n_output) or (n_samples,), default=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 1.4

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

Агломерация признаков против селекции по одному признаку

Оценка ковариации сжатия: LedoitWolf против OAS и максимального правдоподобия

Выбор модели с помощью Probabilistic PCA и Factor Analysis (FA)

Сравнение моделей Random Forests и Histogram Gradient Boosting

Выбор модели Gaussian Mixture Model

Сравнение ядерной регрессии с опорой на опорные векторы (KRR и SVR)

Отображение конвейеров

Балансировка сложности модели и оценки с перекрестной проверкой

Сравнение случайного поиска и поиска по сетке для оценки гиперпараметров

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

Настройка стратегии повторного обучения поиска по сетке с перекрестной проверкой

Демонстрация оценки по нескольким метрикам на cross_val_score и GridSearchCV

Вложенная против невложенной перекрестной проверки

Настройка порога решения для обучения с учётом стоимости

Пример конвейера для извлечения текстовых признаков и оценки

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

Обзор метаоценщиков для многоклассового обучения

Кэширование ближайших соседей

Оценка плотности ядра

Преобразователь столбцов со смешанными типами

Объединение нескольких методов извлечения признаков

Использование конвейера: цепочка PCA и логистической регрессии

Выбор метода понижения размерности с помощью Pipeline и GridSearchCV

Дискретизация признаков

Графики разделяющих границ с разными ядрами SVM

Параметры RBF ядра SVM

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.GridSearchCV.html

Spec-Zone.ru

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