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:
-
- 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
MetadataRouterencapsulating 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:
Xtwas deprecated in 1.5 and will be removed in 1.7. UseXinstead.
- Возвращает:
-
- 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в новом пространстве на основе оценщика с лучшими найденными параметрами.
Примеры из галереи
© 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