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)[исходный код]

Оценивает метрики с помощью перекрёстной проверки и также записывает время обучения и вычисления оценки.

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

Параметры:
estimatorобъект-оценщик, реализующий метод ‘fit’

Объект, используемый для обучения на данных.

X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Данные для обучения. Например, это может быть список или массив.

yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs), по умолчанию None

Целевая переменная, которую нужно предсказать в случае обучения с учителем.

groupsмассивоподобный объект формы (n_samples,), по умолчанию None

Метки групп образцов, используемые при разделении набора данных на обучающую и тестовую выборки. Используется только вместе с экземпляром cv типа “Group” (например, GroupKFold).

Изменено в версии 1.4: groups можно передавать, только если маршрутизация метаданных не включена с помощью sklearn.set_config(enable_metadata_routing=True). Если маршрутизация включена, передавайте groups вместе с другими метаданными через аргумент params. Например: cross_validate(..., params={'groups': groups}).

scoringstr, callable, list, tuple или dict, по умолчанию None

Стратегия оценки производительности estimator на разбиениях перекрёстной проверки.

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

  • одну строку (см. оценщики с именами в виде строк);
  • вызываемый объект (см. вызываемые оценщики), возвращающий одно значение.
  • None используется критерий оценки по умолчанию для estimator.

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

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

Пример см. в разделе указание нескольких метрик для оценки.

cvint, генератор разбиений для перекрёстной проверки или итерируемый объект, по умолчанию None

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

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

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

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

Изменено в версии 0.22: Значение cv по умолчанию для None изменено с 3 блоков на 5.

n_jobsint, по умолчанию None

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

verboseint, по умолчанию 0

Уровень подробности вывода.

paramsdict, по умолчанию None

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

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

pre_dispatchint или str, по умолчанию ’2*n_jobs’

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

  • int — точное общее количество создаваемых заданий;
  • str — выражение, задающее значение относительно n_jobs, например ‘2*n_jobs’.
return_train_scorebool, по умолчанию False

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

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

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

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

Нужно ли возвращать оценщики, обученные на каждом разбиении.

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

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

Нужно ли возвращать индексы обучающей и тестовой выборок, выбранные для каждого разбиения.

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

error_score‘raise’ или числовое значение, по умолчанию np.nan

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

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

Возвращает:
scoresсловарь массивов float формы (n_splits,)

Массив оценок оценщика для каждого запуска перекрёстной проверки.

Возвращается словарь массивов с оценками и временем для каждого оценщика метрик. Возможные ключи этого dict:

test_score

Массив оценок на тестовой выборке для каждого разбиения cv. Суффикс _score в test_score меняется на название конкретной метрики, например test_r2 или test_auc, если в параметре scoring задано несколько метрик.

train_score

Массив оценок на обучающей выборке для каждого разбиения cv. Суффикс _score в train_score меняется на название конкретной метрики, например train_r2 или train_auc, если в параметре scoring задано несколько метрик. Доступен, только если параметр return_train_score имеет значение True.

fit_time

Время обучения оценщика на обучающей выборке для каждого разбиения cv.

score_time

Время вычисления оценки оценщика на тестовой выборке для каждого разбиения cv. (Примечание: время вычисления оценки на обучающей выборке не включается, даже если return_train_score имеет значение True.)

estimator

Объекты оценщиков для каждого разбиения cv. Доступно, только если параметру return_estimator присвоено значение True.

indices

Позиционные индексы обучающей и тестовой выборок для каждого разбиения cv. Возвращается словарь, ключами которого являются либо "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
>>> 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]

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

Создание признаков, связанных со временем

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

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

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

Объединение прогнозирующих моделей с помощью стекинга

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

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

Разработка оценщиков с поддержкой маршрутизации метаданных

Построение графика прогнозов, полученных с помощью перекрёстной проверки

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

Точность-полнота

Рабочая характеристика приёмника (ROC) с перекрёстной проверкой

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

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

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

Основные нововведения scikit-learn 1.4

Основные нововведения scikit-learn 1.7

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

Spec-Zone.ru

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