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)[исходный код]
-
Исчерпывающий поиск по заданным значениям параметров оценщика.
Основные методы: fit, predict.
GridSearchCV реализует методы “fit” и “score”. Он также реализует методы “score_samples”, “predict”, “predict_proba”, “decision_function”, “transform” и “inverse_transform”, если они реализованы используемым оценщиком.
Параметры оценщика, используемого для вызова этих методов, оптимизируются с помощью поиска по сетке параметров с перекрёстной проверкой.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- estimatorestimator object
-
Предполагается, что этот объект реализует интерфейс оценщика scikit-learn. Оценщик должен предоставлять функцию
scoreлибо необходимо передатьscoring. - param_griddict or list of dictionaries
-
Словарь, в котором ключами являются имена параметров (
str), а значениями — списки проверяемых настроек параметров, либо список таких словарей. Во втором случае выполняется поиск по сеткам, заданным каждым словарём в списке. Это позволяет искать по любой последовательности настроек параметров. - scoringstr, callable, list, tuple or dict, default=None
-
Стратегия оценки качества модели, прошедшей перекрёстную проверку, на тестовом наборе.
Если
scoringпредставляет собой одну метрику, можно использовать:- одну строку (см. оценщики, задаваемые именем-строкой);
- вызываемый объект (см. вызываемые оценщики), возвращающий одно значение;
-
None— используется критерий оценки по умолчанию дляestimator.
Если
scoringпредставляет собой несколько метрик, можно использовать:- список или кортеж уникальных строк;
- вызываемый объект, возвращающий словарь, в котором ключи — имена метрик, а значения — оценки по метрикам;
- словарь, в котором ключи — имена метрик, а значения — вызываемые объекты.
Пример см. в разделе Указание нескольких метрик для оценки.
- n_jobsint, default=None
-
Количество параллельно выполняемых задач. Значение
Noneозначает 1, если только не используется контекстjoblib.parallel_backend. Значение-1означает использование всех процессоров. Подробнее см. в глоссарии.Изменено в версии v0.20: значение
n_jobsпо умолчанию изменено с 1 на None - refitbool, str, or callable, default=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, см. Пользовательская стратегия повторного обучения при поиске по сетке с перекрёстной проверкой.Пример использования
refit=callableдля балансировки сложности модели и оценки при перекрёстной проверке см. в этом примере.Изменено в версии 0.20: добавлена поддержка вызываемых объектов.
- cvint, cross-validation generator or an iterable, default=None
-
Определяет стратегию разбиения для перекрёстной проверки. Возможные значения cv:
- None — использовать перекрёстную проверку с 5 блоками по умолчанию;
- целое число — задать количество блоков в
(Stratified)KFold; - разбиватель CV;
- итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.
Для целочисленных значений и None, если оценщик является классификатором, а
yимеет значение binary или multiclass, используетсяStratifiedKFold. Во всех остальных случаях используетсяKFold. Эти разбиватели создаются сshuffle=False, поэтому разбиения будут одинаковыми при каждом вызове.Различные стратегии перекрёстной проверки, которые можно использовать здесь, описаны в руководстве пользователя.
Изменено в версии 0.22: значение
cvпо умолчанию при None изменено с 3 блоков на 5. - verboseint, default=0
-
Управляет подробностью сообщений, выводимых во время обучения: чем выше значение, тем подробнее журнал.
- 0: сообщения не выводятся;
- >=1: сводка общего количества запусков обучения;
- >=2: время вычислений для каждого блока и кандидата параметров;
- >=3: индексы блоков и оценки;
- >=10: индексы кандидатов параметров и сообщения START перед каждым запуском обучения.
- pre_dispatchint, or str, default=’2*n_jobs’
-
Управляет количеством задач, запускаемых при параллельном выполнении. Уменьшение этого числа может помочь избежать чрезмерного потребления памяти, когда задач запускается больше, чем процессоры могут обработать. Параметр может принимать следующие значения:
- None — все задачи сразу создаются и запускаются. Это значение подходит для лёгких и быстро выполняющихся задач, чтобы избежать задержек из-за запуска задач по требованию;
- целое число — точное общее количество запускаемых задач;
- строка — выражение, задающее количество задач через n_jobs, например ‘2*n_jobs’.
- error_score‘raise’ or numeric, default=np.nan
-
Значение, присваиваемое оценке в случае ошибки при обучении оценщика. Если задано ‘raise’, ошибка вызывается. Если задано числовое значение, вызывается FitFailedWarning. Этот параметр не влияет на этап повторного обучения, который всегда приводит к вызову ошибки.
- return_train_scorebool, default=False
-
Если
False, атрибутcv_results_не будет содержать оценки на обучающих данных. Вычисление оценок на обучающих данных позволяет понять, как различные настройки параметров влияют на компромисс между переобучением и недообучением. Однако вычисление оценок на обучающем наборе может требовать значительных вычислительных ресурсов и не является строго необходимым для выбора параметров, обеспечивающих наилучшую способность к обобщению.Добавлено в версии 0.19.
Изменено в версии 0.21: значение по умолчанию изменено с
TrueнаFalse
- Атрибуты:
-
- cv_results_dict of numpy (masked) ndarrays
-
Словарь, где ключи — заголовки столбцов, а значения — столбцы; его можно импортировать в
DataFramepandas.Например, приведённая ниже таблица
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_со следующим содержимым:{ 'param_kernel': masked_array(data = ['poly', 'poly', 'rbf', 'rbf'], mask = [False False False False]...) 'param_gamma': masked_array(data = [-- -- 0.1 0.2], mask = [ True True False False]...), 'param_degree': masked_array(data = [2.0 3.0 -- --], mask = [False False True True]...), 'split0_test_score' : [0.80, 0.70, 0.80, 0.93], 'split1_test_score' : [0.82, 0.50, 0.70, 0.78], 'mean_test_score' : [0.81, 0.60, 0.75, 0.85], 'std_test_score' : [0.01, 0.10, 0.05, 0.08], 'rank_test_score' : [2, 4, 3, 1], 'split0_train_score' : [0.80, 0.92, 0.70, 0.93], 'split1_train_score' : [0.82, 0.55, 0.70, 0.87], 'mean_train_score' : [0.81, 0.74, 0.70, 0.90], 'std_train_score' : [0.01, 0.19, 0.00, 0.03], 'mean_fit_time' : [0.73, 0.63, 0.43, 0.49], 'std_fit_time' : [0.01, 0.02, 0.01, 0.01], 'mean_score_time' : [0.01, 0.06, 0.04, 0.04], 'std_score_time' : [0.00, 0.00, 0.00, 0.01], 'params' : [{'kernel': 'poly', 'degree': 2}, ...], }Пример визуализации и интерпретации результатов GridSearch см. в разделе Статистическое сравнение моделей с помощью поиска по сетке.
Примечание
Ключ
'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
-
Средняя оценка лучшего оценщика по результатам перекрёстной проверки.
При оценке по нескольким метрикам доступен только в том случае, если указан
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']- decision_function(X)[исходный код]
-
Вызывает decision_function у оценщика с наилучшими найденными параметрами.
Доступен только в том случае, если задано
refit=Trueи базовый оценщик поддерживаетdecision_function.- Параметры:
-
- Xindexable, length n_samples
-
Должен удовлетворять требованиям базового оценщика к входным данным.
- Возвращает:
-
- y_scorendarray of shape (n_samples,) or (n_samples, n_classes) or (n_samples, n_classes * (n_classes-1) / 2)
-
Результат функции принятия решения для
X, полученный с помощью оценщика с наилучшими найденными параметрами.
- fit(X, y=None, **params)[исходный код]
-
Выполняет обучение со всеми наборами параметров.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features) or (n_samples, n_samples)
-
Обучающие векторы, где
n_samples— количество образцов, аn_features— количество признаков. Для заранее вычисленного ядра или матрицы расстояний ожидаемая форма X — (n_samples, n_samples). - yarray-like of shape (n_samples, n_output) or (n_samples,), default=None
-
Целевая переменная, соответствующая X, для классификации или регрессии; None для обучения без учителя.
- **paramsdict of str -> object
-
Параметры, передаваемые методу
fitоценщика, оценщику и разбивателю CV.Если длина параметра обучения, являющегося массивом или подобным массиву объектом, равна
num_samples, он будет разбит при перекрёстной проверке вместе сXиy. Например, параметр sample_weight разбивается, посколькуlen(sample_weights) = len(X). Однако это правило не применяется кgroups, который передаётся разбивателю, настроенному с помощью параметраcvконструктора. Таким образом,groupsиспользуется для выполнения разбиения и определяет, какие образцы назначаются каждой стороне разбиения.
- Возвращает:
-
- selfobject
-
Экземпляр обученного оценщика.
- get_metadata_routing()[исходный код]
-
Получает маршрутизацию метаданных этого объекта.
Ознакомьтесь с руководством пользователя, чтобы узнать, как работает механизм маршрутизации.
Добавлено в версии 1.4.
- Возвращает:
-
- routingMetadataRouter
-
Объект
MetadataRouter, содержащий информацию о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получает параметры этого оценщика.
- Параметры:
-
- deepbool, default=True
-
Если True, возвращает параметры этого оценщика и содержащихся в нём подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные их значениям.
- inverse_transform(X)[исходный код]
-
Вызывает inverse_transform у оценщика с наилучшими найденными параметрами.
Доступен только в том случае, если базовый оценщик реализует
inverse_transformиrefit=True.- Параметры:
-
- Xindexable, length n_samples
-
Должен удовлетворять требованиям базового оценщика к входным данным.
- Возвращает:
-
- X_original{ndarray, sparse matrix} of shape (n_samples, n_features)
-
Результат функции
inverse_transformдляX, полученный с помощью оценщика с наилучшими найденными параметрами.
- predict(X)[исходный код]
-
Вызывает predict у оценщика с наилучшими найденными параметрами.
Доступен только в том случае, если задано
refit=Trueи базовый оценщик поддерживаетpredict.- Параметры:
-
- Xindexable, length n_samples
-
Должен удовлетворять требованиям базового оценщика к входным данным.
- Возвращает:
-
- y_predndarray of shape (n_samples,)
-
Предсказанные метки или значения для
X, полученные с помощью оценщика с наилучшими найденными параметрами.
- predict_log_proba(X)[исходный код]
-
Вызывает predict_log_proba у оценщика с наилучшими найденными параметрами.
Доступен только в том случае, если задано
refit=Trueи базовый оценщик поддерживаетpredict_log_proba.- Параметры:
-
- Xindexable, length n_samples
-
Должен удовлетворять требованиям базового оценщика к входным данным.
- Возвращает:
-
- y_predndarray of shape (n_samples,) or (n_samples, n_classes)
-
Предсказанные логарифмы вероятностей классов для
X, полученные с помощью оценщика с наилучшими найденными параметрами. Порядок классов соответствует порядку в обученном атрибуте classes_.
- predict_proba(X)[исходный код]
-
Вызывает predict_proba у оценщика с наилучшими найденными параметрами.
Доступен только в том случае, если задано
refit=Trueи базовый оценщик поддерживаетpredict_proba.- Параметры:
-
- Xindexable, length 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в противном случае.- Параметры:
-
- 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)[source]
-
Вызывает score_samples для оценщика с наилучшими найденными параметрами.
Доступно, только если
refit=Trueи базовый оценщик поддерживаетscore_samples.Добавлено в версии 0.24.
- Параметры:
-
- Xитерируемый объект
-
Данные для предсказания. Должны соответствовать требованиям к входным данным базового оценщика.
- Возвращает:
-
- y_scorendarray формы (n_samples,)
-
Метод
best_estimator_.score_samples.
- set_callbacks(*callbacks)[source]
-
Задаёт функции обратного вызова для оценщика.
- Параметры:
-
- *callbacksэкземпляры функций обратного вызова
-
Функции обратного вызова, которые нужно задать.
- Возвращает:
-
- selfэкземпляр оценщика
-
Сам экземпляр оценщика.
- set_params(**params)[source]
-
Задаёт параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). Последние имеют параметры вида<component>__<parameter>, благодаря чему можно обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsсловарь
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Вызывает transform для оценщика с наилучшими найденными параметрами.
Доступно, только если базовый оценщик поддерживает
transformиrefit=True.- Параметры:
-
- Xиндексируемый объект длины n_samples
-
Должен соответствовать требованиям к входным данным базового оценщика.
- Возвращает:
-
- Xt{ndarray, разреженная матрица} формы (n_samples, n_features)
-
Преобразованный
Xв новое пространство на основе оценщика с наилучшими найденными параметрами.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.model_selection.GridSearchCV.html