cross_validate
- sklearn.model_selection.cross_validate(estimator, X, y=None, *, groups=None, scoring=None, cv=None, n_jobs=None, verbose=0, params=None, pre_dispatch='2*n_jobs', return_train_score=False, return_estimator=False, return_indices=False, error_score=nan)[source]
-
Оценить метрику(и) с помощью перекрестной проверки и также записать время обучения/оценки.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- estimatorобъект оценщика, реализующий «fit»
-
Объект, используемый для обучения данных.
- X{массив, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные. Например, список или массив.
- yмассив формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None
-
Целевая переменная для предсказания в случае задач обучения с учителем.
- groupsмассив формы (n_samples,), по умолчанию=None
-
Метки групп для выборок, используемые при разделении набора данных на обучающую и тестовую выборки. Используется только в сочетании с экземпляром «Группы» cv (например,
GroupKFold).Изменено в версии 1.4:
groupsможет быть передан только в том случае, если маршрутизация метаданных не включена с помощьюsklearn.set_config(enable_metadata_routing=True). При включенной маршрутизации передайтеgroupsвместе с другими метаданными через аргументparamsвместо него. Например:cross_validate(..., params={'groups': groups}). - scoringстрока, вызываемый объект, список, кортеж или словарь, по умолчанию=None
-
Стратегия для оценки производительности кросс-валидированной модели на тестовой выборке. Если
None, используется стандартный критерий оценки оценщика.Если
scoringпредставляет единственный показатель, можно использовать:- одну строку (см. Обзор API оценки);
- вызываемый объект (см. Вызываемые объекты-оценщики), возвращающий одно значение.
Если
scoringпредставляет собой несколько оценок, можно использовать:- список или кортеж уникальных строк;
- вызываемый объект, возвращающий словарь, где ключи — имена метрик, а значения — оценки метрик;
- словарь с именами метрик в качестве ключей и вызываемыми объектами в качестве значений.
См. Указание нескольких метрик для оценки для примера.
- cvцелое число, генератор перекрестной проверки или итерируемый объект, по умолчанию=None
-
Определяет стратегию разделения перекрестной проверки. Возможные входные данные для cv:
- None, для использования стандартной 5-кратной перекрестной проверки,
- целое число, для указания количества фолдов в
(Stratified)KFold, - разделитель перекрестной проверки,
- Итерируемый объект, возвращающий (train, test) разделения в виде массивов индексов.
Для целочисленных/None входных данных, если оценщик является классификатором и
yявляется двоичным или многоклассовым, используетсяStratifiedKFold. Во всех остальных случаях используетсяKFold. Эти разделители инициализируютсяshuffle=False, поэтому разделения будут одинаковыми при вызовах.См. Руководство пользователя для различных стратегий перекрестной проверки, которые могут быть здесь использованы.
Изменено в версии 0.22:
cvзначение по умолчанию при None изменено с 3-кратной на 5-кратную перекрестную проверку. - n_jobsцелое число, по умолчанию=None
-
Количество задач, выполняемых параллельно. Обучение оценщика и вычисление оценки параллелизуются по разбиениям перекрестной проверки.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. См. Словарь для получения дополнительных сведений. - verboseцелое число, по умолчанию=0
-
Уровень подробности.
- paramsсловарь, по умолчанию=None
-
Параметры, передаваемые в
fitбазового оценщика, оценщика и разделителя перекрестной проверки.Добавлен в версии 1.4.
- pre_dispatchцелое число или строка, по умолчанию=’2*n_jobs’
-
Управляет количеством задач, отправляемых во время параллельной обработки. Уменьшение этого числа может быть полезно для предотвращения чрезмерного потребления памяти, когда отправляется больше задач, чем процессоры могут обработать. Этот параметр может быть:
- Целым числом, задающим точное количество созданных задач
- Строкой, задающей выражение как функцию n_jobs, например, ‘2*n_jobs’
- return_train_scoreлогическое значение, по умолчанию=False
-
Включать ли оценки обучения. Вычисление оценок обучения используется для получения информации о том, как различные настройки параметров влияют на баланс переобучения/недообучения. Однако вычисление оценок на обучающем наборе может быть вычислительно затратным и не строго необходимо для выбора параметров, которые обеспечивают наилучшую обобщающую производительность.
Добавлен в версии 0.19.
Изменено в версии 0.21: Значение по умолчанию было изменено с
TrueнаFalse - return_estimatorлогическое значение, по умолчанию=False
-
Возвращать ли оценщики, обученные на каждом разбиении.
Добавлен в версии 0.20.
- return_indicesлогическое значение, по умолчанию=False
-
Возвращать ли индексы train-test, выбранные для каждого разбиения.
Добавлен в версии 1.3.
- error_score‘raise’ или число, по умолчанию=np.nan
-
Значение, присваиваемое оценке, если при обучении оценщика произошла ошибка. Если установлено в ‘raise’, ошибка генерируется. Если задано числовое значение, генерируется FitFailedWarning.
Добавлен в версии 0.20.
- Возвращает:
-
- scoresсловарь массивов с плавающей точкой формы (n_splits,)
-
Массив оценок оценщика для каждого выполнения перекрестной проверки.
Возвращается словарь массивов, содержащих массивы оценок/времени для каждого оценщика. Возможные ключи для этого
dict:test_score-
Массив оценок для оценок на тестовых выборках на каждом разбиении перекрестной проверки. Суффикс
_scoreвtest_scoreизменяется на определённую метрику, например,test_r2илиtest_auc, если в параметре scoring указано несколько метрик. train_score-
Массив оценок для оценок на обучающих выборках на каждом разбиении перекрестной проверки. Суффикс
_scoreвtrain_scoreизменяется на определённую метрику, например,train_r2илиtrain_auc, если в параметре scoring указано несколько метрик. Доступно только если параметрreturn_train_scoreравенTrue. fit_time-
Время обучения оценщика на обучающем наборе для каждого разбиения перекрестной проверки.
score_time-
Время оценки оценщика на тестовом наборе для каждого разбиения перекрестной проверки. (Обратите внимание, что время оценки на обучающем наборе не включается, даже если
return_train_scoreустановлено вTrue) estimator-
Объекты оценщиков для каждого разбиения перекрестной проверки. Доступно только если параметр
return_estimatorустановлен вTrue. indices-
Позиционные индексы обучающей/тестовой выборок для каждого разбиения перекрестной проверки. Возвращается словарь, где ключами являются либо
"train"или"test", а соответствующие значения — список целочисленных массивов NumPy с индексами. Доступно только еслиreturn_indices=True.
См. также
cross_val_score-
Выполнить перекрестную проверку для оценки одной метрики.
cross_val_predict-
Получить предсказания из каждого разбиения перекрестной проверки для диагностических целей.
sklearn.metrics.make_scorer-
Создать оценщик из метрики производительности или функции потерь.
Примеры
>>> from sklearn import datasets, linear_model >>> from sklearn.model_selection import cross_validate >>> from sklearn.metrics import make_scorer >>> from sklearn.metrics import confusion_matrix >>> from sklearn.svm import LinearSVC >>> diabetes = datasets.load_diabetes() >>> X = diabetes.data[:150] >>> y = diabetes.target[:150] >>> lasso = linear_model.Lasso()
Оценка одной метрики с помощью
cross_validate>>> cv_results = cross_validate(lasso, X, y, cv=3) >>> sorted(cv_results.keys()) ['fit_time', 'score_time', 'test_score'] >>> cv_results['test_score'] array([0.3315057 , 0.08022103, 0.03531816])
Оценка нескольких метрик с использованием
cross_validate(см. описание параметраscoringдля получения дополнительной информации)>>> scores = cross_validate(lasso, X, y, cv=3, ... scoring=('r2', 'neg_mean_squared_error'), ... return_train_score=True) >>> print(scores['test_neg_mean_squared_error']) [-3635.5... -3573.3... -6114.7...] >>> print(scores['train_r2']) [0.28009951 0.3908844 0.22784907]
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.cross_validate.html