validation_curve#

sklearn.model_selection.validation_curve(estimator, X, y, *, param_name, param_range, группы=None, cv=None, оценка=None, n_jobs=None, pre_dispatch='all', verbose=0, error_score=nan, params=None)[источник]#

Кривая валидации.

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

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

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

Параметры:
estimatorтип object, который реализует метод "fit"

Объект этого типа, который клонируется для каждой проверки. Он также должен реализовывать "predict", если только scoring это вызываемый объект, который не зависит от "predict" для вычисления счета.

X{array-like, sparse matrix} формы (n_samples, n_features)

Вектор обучения, где n_samples — это количество образцов и n_features это количество признаков.

yarray-like формы (n_samples,) или (n_samples, n_outputs) или None

Целевая переменная относительно X для классификации или регрессии; None для обучения без учителя.

param_namestr

Имя параметра, который будет варьироваться.

param_rangearray-like формы (n_values,)

Значения параметра, которые будут оценены.

группыarray-like формы (n_samples,), по умолчанию=None

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

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

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

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

  • None, чтобы использовать стандартную 5-кратную перекрестную проверку,

  • int, чтобы указать количество фолдов в (Stratified)KFold,

  • CV splitter,

  • Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.

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

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

Изменено в версии 0.22: cv значение по умолчанию, если None изменено с 3-кратного на 5-кратное.

оценкаstr или callable, по умолчанию=None

Метод оценки для использования при оценке обучающих и тестовых наборов.

n_jobsint, default=None

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

pre_dispatchint или str, по умолчанию='all'

Количество предварительно отправленных заданий для параллельного выполнения (по умолчанию все). Опция может уменьшить выделенную память. Строка может быть выражением типа '2*n_jobs'.

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

Управляет подробностью вывода: чем выше, тем больше сообщений.

error_score'raise' или числовое, по умолчанию=np.nan

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

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

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

Параметры для передачи оценщику, оценщику и объекту перекрёстной проверки.

  • Если enable_metadata_routing=False (по умолчанию): Параметры, напрямую передаваемые в fit метод оценщика.

  • Если enable_metadata_routing=True: Параметры, безопасно перенаправляемые в fit метод оценщика, к скореру и к объекту перекрестной проверки. См. Руководство по маршрутизации метаданных для получения дополнительной информации.

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

Возвращает:
train_scoresмассив формы (n_ticks, n_cv_folds)

Оценки на обучающих наборах.

test_scoresмассив формы (n_ticks, n_cv_folds)

Оценки на тестовом наборе.

Смотрите также

ValidationCurveDisplay.from_estimator

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

Примечания

См. Влияние регуляризации модели на ошибку обучения и тестирования

Примеры

>>> import numpy as np
>>> from sklearn.datasets import make_classification
>>> from sklearn.model_selection import validation_curve
>>> from sklearn.linear_model import LogisticRegression
>>> X, y = make_classification(n_samples=1_000, random_state=0)
>>> logistic_regression = LogisticRegression()
>>> param_name, param_range = "C", np.logspace(-8, 3, 10)
>>> train_scores, test_scores = validation_curve(
...     logistic_regression, X, y, param_name=param_name, param_range=param_range
... )
>>> print(f"The average train accuracy is {train_scores.mean():.2f}")
The average train accuracy is 0.81
>>> print(f"The average test accuracy is {test_scores.mean():.2f}")
The average test accuracy is 0.81