Spec-Zone.ru › scikit-learn

validation_curve

sklearn.model_selection.validation_curve(estimator, X, y, *, param_name, param_range, groups=None, cv=None, scoring=None, n_jobs=None, pre_dispatch='all', verbose=0, error_score=nan, params=None)[исходный код]

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

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

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

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

Параметры:
estimatorобъект типа, реализующего метод “fit”

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

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

Обучающий вектор, где n_samples — количество образцов, а n_features — количество признаков.

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

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

param_namestr

Имя параметра, значения которого будут варьироваться.

param_rangeмассивоподобный объект формы (n_values,)

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

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

Метки групп для образцов, используемые при разделении набора данных на обучающую и тестовую выборки. Используется только совместно с объектом cv типа «Group» (например, 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;
  • разделитель для перекрёстной проверки;
  • итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.

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

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

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

scoringstr или вызываемый объект, по умолчанию None

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

  • str: варианты см. в разделе оцениватели с именами в виде строк.
  • вызываемый объект: вызываемый объект-оцениватель (например, функция) с сигнатурой scorer(estimator, X, y). Подробнее см. в разделе вызываемые оцениватели.
  • None: используется критерий оценки по умолчанию для estimator.
n_jobsint, по умолчанию None

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

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

Количество заранее отправляемых задач для параллельного выполнения (по умолчанию — все). Этот параметр может уменьшить объём выделяемой памяти. В качестве str можно указать выражение, например ‘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

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

Масштабирование параметра регуляризации для SVC

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

Spec-Zone.ru

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