Spec-Zone.ru › scikit-learn

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]

Примеры из галереи

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

Поддержка категориальных признаков в градиентном бустинге

Объединение предикторов с помощью стекинга

Функции в деревьях градиентного бустинга на основе гистограмм

Отложенные признаки для прогнозирования временных рядов

Инженерия временных признаков

Квантильная регрессия

Общие ошибки в интерпретации коэффициентов линейных моделей

Маршрутизация метаданных

Отношения правдоподобия классов для измерения производительности классификации

Визуализация кросс-валидированных прогнозов

Настройка порогового значения функции принятия решения после обучения

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

Сравнение Target Encoder с другими кодировщиками

© 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

Spec-Zone.ru

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